From a61245613fbe9085724a089f716e588d108b7a75 Mon Sep 17 00:00:00 2001 From: rijusougata13 Date: Mon, 4 Oct 2021 03:02:14 +0530 Subject: [PATCH] fixed navbar issue link --- React-frontend/package-lock.json | 841 ++++++++++++++---- React-frontend/src/App.js | 243 ++--- React-frontend/src/components/Sidebar.js | 197 ++-- .../src/components/core/HomeLogo.js | 251 +++--- React-frontend/src/components/core/Navbar.js | 443 +++++---- React-frontend/src/pages/ContactPage.js | 25 +- React-frontend/src/pages/HomePage.js | 104 ++- 7 files changed, 1328 insertions(+), 776 deletions(-) diff --git a/React-frontend/package-lock.json b/React-frontend/package-lock.json index ce2194e4..7c539bb1 100644 --- a/React-frontend/package-lock.json +++ b/React-frontend/package-lock.json @@ -8,18 +8,27 @@ "name": "gsoc1", "version": "0.1.0", "dependencies": { + "@date-io/date-fns": "^1.3.13", "@material-ui/core": "^4.10.2", + "@material-ui/data-grid": "*", "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "*", + "@material-ui/pickers": "^3.3.10", + "@react-google-maps/api": "^2.2.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "axios": "^0.21.1", "bootstrap": "^4.5.0", + "date-fns": "^2.22.1", "mdbreact": "^4.27.0", - "react": "^16.13.1", + "moment": "^2.24.0", + "papaparse": "^5.3.1", + "react": "^17.0.0", "react-bootstrap": "^1.0.1", "react-bootstrap-sidebar": "0.0.1", - "react-dom": "^16.13.1", + "react-chartjs-2": "^2.9.0", + "react-dom": "^17.0.0", "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "react-scripts": "3.4.1", @@ -27,7 +36,8 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "styled-components": "^5.1.1", - "uuid": "^8.3.2" + "uuid": "^8.3.2", + "vega-lite-api": "^5.0.0" }, "devDependencies": { "redux-devtools-extension": "^2.13.8" @@ -1092,11 +1102,14 @@ } }, "node_modules/@babel/runtime": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", - "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "dependencies": { "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { @@ -1172,6 +1185,22 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "node_modules/@date-io/core": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@date-io/core/-/core-1.3.13.tgz", + "integrity": "sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==" + }, + "node_modules/@date-io/date-fns": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-1.3.13.tgz", + "integrity": "sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA==", + "dependencies": { + "@date-io/core": "^1.3.13" + }, + "peerDependencies": { + "date-fns": "^2.0.0" + } + }, "node_modules/@date-io/moment": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-1.3.5.tgz", @@ -1213,6 +1242,14 @@ "node": ">=6" } }, + "node_modules/@googlemaps/js-api-loader": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.12.4.tgz", + "integrity": "sha512-CG2ldySYFP+Pf6ymtAp9fUQGltEdOJCv2+LEiQjVZySqSN9QhqVbIFdFDKOu6cirqXXvpVcKYYLsg/K1H8XN0Q==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1473,25 +1510,39 @@ } }, "node_modules/@material-ui/core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.10.2.tgz", - "integrity": "sha512-Uf4iDLi9sW6HKbVQDyDZDr1nMR4RUAE7w/RIIJZGNVZResC0xwmpLRZMtaUdSO43N0R0yJehfxTi4Z461Cd49A==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", + "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", "dependencies": { "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.10.0", - "@material-ui/system": "^4.9.14", - "@material-ui/types": "^5.1.0", - "@material-ui/utils": "^4.10.2", + "@material-ui/styles": "^4.11.4", + "@material-ui/system": "^4.12.1", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", "@types/react-transition-group": "^4.2.0", "clsx": "^1.0.4", "hoist-non-react-statics": "^3.3.2", "popper.js": "1.16.1-lts", "prop-types": "^15.7.2", - "react-is": "^16.8.0", + "react-is": "^16.8.0 || ^17.0.0", "react-transition-group": "^4.4.0" }, "engines": { "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@material-ui/core/node_modules/popper.js": { @@ -1499,6 +1550,49 @@ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, + "node_modules/@material-ui/data-grid": { + "version": "4.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/@material-ui/data-grid/-/data-grid-4.0.0-alpha.37.tgz", + "integrity": "sha512-3T2AG31aad/lWLMLwn1XUP4mUf3H9YZES17dGuYByzkRLCXbBZHBTPEnCctWukajzwm+v0KGg3QpwitGoiDAjA==", + "deprecated": "The name of the package has changed, more details in https://github.com/mui-org/material-ui-x/releases/tag/v4.0.0", + "dependencies": { + "@material-ui/utils": "^5.0.0-alpha.14", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "reselect": "^4.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@material-ui/core": "^4.12.0 || ^5.0.0-beta.0", + "@material-ui/styles": "^4.11.4 || ^5.0.0-beta.0", + "react": "^17.0.0" + } + }, + "node_modules/@material-ui/data-grid/node_modules/@material-ui/utils": { + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-5.0.0-beta.5.tgz", + "integrity": "sha512-wtJ3ovXWZdTAz5eLBqvMpYH/IBJb3qMQbGCyL1i00+sf7AUlAuv4QLx+QtX/siA6L7IpxUQVfqpoCpQH1eYRpQ==", + "dependencies": { + "@babel/runtime": "^7.14.8", + "@types/prop-types": "^15.7.4", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "react": "^17.0.2" + } + }, + "node_modules/@material-ui/data-grid/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, "node_modules/@material-ui/icons": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz", @@ -1510,62 +1604,148 @@ "node": ">=8.0.0" } }, + "node_modules/@material-ui/lab": { + "version": "4.0.0-alpha.60", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.60.tgz", + "integrity": "sha512-fadlYsPJF+0fx2lRuyqAuJj7hAS1tLDdIEEdov5jlrpb5pp4b+mRDUqQTUxi4inRZHS1bEXpU8QWUhO6xX88aA==", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.2", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "@material-ui/core": "^4.12.1", + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/pickers": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.3.10.tgz", + "integrity": "sha512-hS4pxwn1ZGXVkmgD4tpFpaumUaAg2ZzbTrxltfC5yPw4BJV+mGkfnQOB4VpWEYZw2jv65Z0wLwDE/piQiPPZ3w==", + "dependencies": { + "@babel/runtime": "^7.6.0", + "@date-io/core": "1.x", + "@types/styled-jsx": "^2.2.8", + "clsx": "^1.0.2", + "react-transition-group": "^4.0.0", + "rifm": "^0.7.0" + }, + "peerDependencies": { + "@date-io/core": "^1.3.6", + "@material-ui/core": "^4.0.0", + "prop-types": "^15.6.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, "node_modules/@material-ui/styles": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz", - "integrity": "sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q==", + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", + "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", "dependencies": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", - "@material-ui/types": "^5.1.0", - "@material-ui/utils": "^4.9.6", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", "clsx": "^1.0.4", "csstype": "^2.5.2", "hoist-non-react-statics": "^3.3.2", - "jss": "^10.0.3", - "jss-plugin-camel-case": "^10.0.3", - "jss-plugin-default-unit": "^10.0.3", - "jss-plugin-global": "^10.0.3", - "jss-plugin-nested": "^10.0.3", - "jss-plugin-props-sort": "^10.0.3", - "jss-plugin-rule-value-function": "^10.0.3", - "jss-plugin-vendor-prefixer": "^10.0.3", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", "prop-types": "^15.7.2" }, "engines": { "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@material-ui/system": { - "version": "4.9.14", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz", - "integrity": "sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", + "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", "dependencies": { "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.9.6", + "@material-ui/utils": "^4.11.2", "csstype": "^2.5.2", "prop-types": "^15.7.2" }, "engines": { "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@material-ui/types": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, "node_modules/@material-ui/utils": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz", - "integrity": "sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw==", + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", + "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", "dependencies": { "@babel/runtime": "^7.4.4", "prop-types": "^15.7.2", - "react-is": "^16.8.0" + "react-is": "^16.8.0 || ^17.0.0" }, "engines": { "node": ">=8.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, "node_modules/@mrmlnc/readdir-enhanced": { @@ -1593,6 +1773,32 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.2.tgz", "integrity": "sha512-JlGTGRYHC2QK+DDbePyXdBdooxFq2+noLfWpRqJtkxcb/oYWzOF0kcbfvvbWrwevCC1l6hLUg1wHYT+ona5BWQ==" }, + "node_modules/@react-google-maps/api": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.4.1.tgz", + "integrity": "sha512-uGB9QLlZSQxxB9/iu5cWVpmub97PQOypfDnow1cACU49BTUEB7s7/3/A30IR9WxVx3TP+CbYYuGDmKkwhYTJMg==", + "dependencies": { + "@googlemaps/js-api-loader": "1.12.4", + "@react-google-maps/infobox": "2.4.0", + "@react-google-maps/marker-clusterer": "2.4.0", + "@types/google.maps": "3.45.6", + "invariant": "2.2.4" + }, + "peerDependencies": { + "react": "^16.6.3 || ^17.0.0", + "react-dom": "^16.6.3 || ^17.0.0" + } + }, + "node_modules/@react-google-maps/infobox": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.4.0.tgz", + "integrity": "sha512-ABxPQLOjT1s5w0DtNvVuLLLtUAW/VtN9rVci/qBo+Hx1wo2QWcGRcmc7+lnheCO8B98A1InHDfxCR6wIMwrcoA==" + }, + "node_modules/@react-google-maps/marker-clusterer": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.4.0.tgz", + "integrity": "sha512-bqSyv0zBf4CTwVKQCXhpeSX7d/OGJIRoKMLLTzwk9C5z5Vj7gXJadaDoNHoYs2x8t54d3bR+ODK5uNq70IHX0w==" + }, "node_modules/@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", @@ -1981,6 +2187,11 @@ "@types/node": "*" } }, + "node_modules/@types/google.maps": { + "version": "3.45.6", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.45.6.tgz", + "integrity": "sha512-BzGzxs8UXFxeP8uN/0nRgGbsbpYQxSCKsv/7S8OitU7wwhfFcqQSm5aAcL1nbwueMiJ/VVmIZKPq69s0kX5W+Q==" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", @@ -2033,9 +2244,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "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==" + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "node_modules/@types/q": { "version": "1.5.4", @@ -2059,6 +2270,14 @@ "@types/react": "*" } }, + "node_modules/@types/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-2+L0ilcAEG8udkDnvx8B0upwXFBbNnVwOsSCTxW3SDOkmar9NyEeLG0ZLa3uOEw9zyYf/fQapcnfXAVmDKlyHw==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-text-mask": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/@types/react-text-mask/-/react-text-mask-5.4.6.tgz", @@ -2080,6 +2299,14 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, + "node_modules/@types/styled-jsx": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.9.tgz", + "integrity": "sha512-W/iTlIkGEyTBGTEvZCey8EgQlQ5l0DwMqi3iOXlLs2kyBwYTXHKEiU6IZ5EwoRwngL8/dGYuzezSup89ttVHLw==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/testing-library__dom": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", @@ -5124,6 +5351,18 @@ "webidl-conversions": "^4.0.2" } }, + "node_modules/date-fns": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.24.0.tgz", + "integrity": "sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debounce": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", @@ -9479,14 +9718,18 @@ } }, "node_modules/jss": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.3.0.tgz", - "integrity": "sha512-B5sTRW9B6uHaUVzSo9YiMEOEp3UX8lWevU0Fsv+xtRnsShmgCfIYX44bTH8bPJe6LQKqEXku3ulKuHLbxBS97Q==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.8.0.tgz", + "integrity": "sha512-6fAMLJrVQ8epM5ghghxWqCwRR0ZamP2cKbOAtzPudcCMSNdAqtvmzQvljUZYR8OXJIeb/IpZeOXA1sDXms4R1w==", "dependencies": { "@babel/runtime": "^7.3.1", - "csstype": "^2.6.5", + "csstype": "^3.0.2", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" } }, "node_modules/jss-camel-case": { @@ -9524,70 +9767,70 @@ } }, "node_modules/jss-plugin-camel-case": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.3.0.tgz", - "integrity": "sha512-tadWRi/SLWqLK3EUZEdDNJL71F3ST93Zrl9JYMjV0QDqKPAl0Liue81q7m/nFUpnSTXczbKDy4wq8rI8o7WFqA==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.0.tgz", + "integrity": "sha512-yxlXrXwcCdGw+H4BC187dEu/RFyW8joMcWfj8Rk9UPgWTKu2Xh7Sib4iW3xXjHe/t5phOHF1rBsHleHykWix7g==", "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "node_modules/jss-plugin-default-unit": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.3.0.tgz", - "integrity": "sha512-tT5KkIXAsZOSS9WDSe8m8lEHIjoEOj4Pr0WrG0WZZsMXZ1mVLFCSsD2jdWarQWDaRNyMj/I4d7czRRObhOxSuw==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.0.tgz", + "integrity": "sha512-9XJV546cY9zV9OvIE/v/dOaxSi4062VfYQQfwbplRExcsU2a79Yn+qDz/4ciw6P4LV1Naq90U+OffAGRHfNq/Q==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "node_modules/jss-plugin-global": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.3.0.tgz", - "integrity": "sha512-etYTG/y3qIR/vxZnKY+J3wXwObyBDNhBiB3l/EW9/pE3WHE//BZdK8LFvQcrCO48sZW1Z6paHo6klxUPP7WbzA==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.8.0.tgz", + "integrity": "sha512-H/8h/bHd4e7P0MpZ9zaUG8NQSB2ie9rWo/vcCP6bHVerbKLGzj+dsY22IY3+/FNRS8zDmUyqdZx3rD8k4nmH4w==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "node_modules/jss-plugin-nested": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.3.0.tgz", - "integrity": "sha512-qWiEkoXNEkkZ+FZrWmUGpf+zBsnEOmKXhkjNX85/ZfWhH9dfGxUCKuJFuOWFM+rjQfxV4csfesq4hY0jk8Qt0w==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.8.0.tgz", + "integrity": "sha512-MhmINZkSxyFILcFBuDoZmP1+wj9fik/b9SsjoaggkGjdvMQCES21mj4K5ZnRGVm448gIXyi9j/eZjtDzhaHUYQ==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0", + "jss": "10.8.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-props-sort": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.3.0.tgz", - "integrity": "sha512-boetORqL/lfd7BWeFD3K+IyPqyIC+l3CRrdZr+NPq7Noqp+xyg/0MR7QisgzpxCEulk+j2CRcEUoZsvgPC4nTg==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.0.tgz", + "integrity": "sha512-VY+Wt5WX5GMsXDmd+Ts8+O16fpiCM81svbox++U3LDbJSM/g9FoMx3HPhwUiDfmgHL9jWdqEuvSl/JAk+mh6mQ==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "node_modules/jss-plugin-rule-value-function": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.3.0.tgz", - "integrity": "sha512-7WiMrKIHH3rwxTuJki9+7nY11r1UXqaUZRhHvqTD4/ZE+SVhvtD5Tx21ivNxotwUSleucA/8boX+NF21oXzr5Q==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.0.tgz", + "integrity": "sha512-R8N8Ma6Oye1F9HroiUuHhVjpPsVq97uAh+rMI6XwKLqirIu2KFb5x33hPj+vNBMxSHc9jakhf5wG0BbQ7fSDOg==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0", + "jss": "10.8.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.3.0.tgz", - "integrity": "sha512-sZQbrcZyP5V0ADjCLwUA1spVWoaZvM7XZ+2fSeieZFBj31cRsnV7X70FFDerMHeiHAXKWzYek+67nMDjhrZAVQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.0.tgz", + "integrity": "sha512-G1zD0J8dFwKZQ+GaZaay7A/Tg7lhDw0iEkJ/iFFA5UPuvZFpMprCMQttXcTBhLlhhWnyZ8YPn4yqp+amrhQekw==", "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "node_modules/jss-props-sort": { @@ -9611,6 +9854,11 @@ "is-in-browser": "^1.0.2" } }, + "node_modules/jss/node_modules/csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, "node_modules/jsx-ast-utils": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", @@ -10178,6 +10426,33 @@ "loose-envify": "^1.0.0" } }, + "node_modules/mdbreact/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdbreact/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, "node_modules/mdbreact/node_modules/react-transition-group": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", @@ -10189,6 +10464,15 @@ "prop-types": "^15.6.2" } }, + "node_modules/mdbreact/node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -11309,6 +11593,11 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, + "node_modules/papaparse": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.1.tgz", + "integrity": "sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA==" + }, "node_modules/parallel-transform": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", @@ -13039,13 +13328,12 @@ } }, "node_modules/react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" }, "engines": { "node": ">=0.10.0" @@ -13355,14 +13643,16 @@ } }, "node_modules/react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" } }, "node_modules/react-error-overlay": { @@ -13456,14 +13746,6 @@ "react-is": "^16.13.1" } }, - "node_modules/react-redux/node_modules/@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/react-router": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", @@ -14020,6 +14302,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, + "node_modules/reselect": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz", + "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==" + }, "node_modules/resolve": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", @@ -14198,6 +14485,17 @@ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" }, + "node_modules/rifm": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz", + "integrity": "sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ==", + "dependencies": { + "@babel/runtime": "^7.3.1" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -14362,9 +14660,9 @@ } }, "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -16289,6 +16587,11 @@ "node": ">= 0.8" } }, + "node_modules/vega-lite-api": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-lite-api/-/vega-lite-api-5.0.0.tgz", + "integrity": "sha512-rjNLkfOuBG1KTpIgQpX81LlGiqEb92lHlGiIuofs/EgntFVxD1REW18YKLpYdb1Mm7166zIOqNMdpchwjhstbQ==" + }, "node_modules/vendors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", @@ -18564,9 +18867,9 @@ } }, "@babel/runtime": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", - "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -18635,6 +18938,19 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "@date-io/core": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@date-io/core/-/core-1.3.13.tgz", + "integrity": "sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==" + }, + "@date-io/date-fns": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-1.3.13.tgz", + "integrity": "sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA==", + "requires": { + "@date-io/core": "^1.3.13" + } + }, "@date-io/moment": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-1.3.5.tgz", @@ -18673,6 +18989,14 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz", "integrity": "sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw==" }, + "@googlemaps/js-api-loader": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.12.4.tgz", + "integrity": "sha512-CG2ldySYFP+Pf6ymtAp9fUQGltEdOJCv2+LEiQjVZySqSN9QhqVbIFdFDKOu6cirqXXvpVcKYYLsg/K1H8XN0Q==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -18899,21 +19223,21 @@ } }, "@material-ui/core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.10.2.tgz", - "integrity": "sha512-Uf4iDLi9sW6HKbVQDyDZDr1nMR4RUAE7w/RIIJZGNVZResC0xwmpLRZMtaUdSO43N0R0yJehfxTi4Z461Cd49A==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", + "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", "requires": { "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.10.0", - "@material-ui/system": "^4.9.14", - "@material-ui/types": "^5.1.0", - "@material-ui/utils": "^4.10.2", + "@material-ui/styles": "^4.11.4", + "@material-ui/system": "^4.12.1", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", "@types/react-transition-group": "^4.2.0", "clsx": "^1.0.4", "hoist-non-react-statics": "^3.3.2", "popper.js": "1.16.1-lts", "prop-types": "^15.7.2", - "react-is": "^16.8.0", + "react-is": "^16.8.0 || ^17.0.0", "react-transition-group": "^4.4.0" }, "dependencies": { @@ -18924,6 +19248,36 @@ } } }, + "@material-ui/data-grid": { + "version": "4.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/@material-ui/data-grid/-/data-grid-4.0.0-alpha.37.tgz", + "integrity": "sha512-3T2AG31aad/lWLMLwn1XUP4mUf3H9YZES17dGuYByzkRLCXbBZHBTPEnCctWukajzwm+v0KGg3QpwitGoiDAjA==", + "requires": { + "@material-ui/utils": "^5.0.0-alpha.14", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "reselect": "^4.0.0" + }, + "dependencies": { + "@material-ui/utils": { + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-5.0.0-beta.5.tgz", + "integrity": "sha512-wtJ3ovXWZdTAz5eLBqvMpYH/IBJb3qMQbGCyL1i00+sf7AUlAuv4QLx+QtX/siA6L7IpxUQVfqpoCpQH1eYRpQ==", + "requires": { + "@babel/runtime": "^7.14.8", + "@types/prop-types": "^15.7.4", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, "@material-ui/icons": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz", @@ -18932,36 +19286,60 @@ "@babel/runtime": "^7.4.4" } }, + "@material-ui/lab": { + "version": "4.0.0-alpha.60", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.60.tgz", + "integrity": "sha512-fadlYsPJF+0fx2lRuyqAuJj7hAS1tLDdIEEdov5jlrpb5pp4b+mRDUqQTUxi4inRZHS1bEXpU8QWUhO6xX88aA==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.2", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + } + }, + "@material-ui/pickers": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.3.10.tgz", + "integrity": "sha512-hS4pxwn1ZGXVkmgD4tpFpaumUaAg2ZzbTrxltfC5yPw4BJV+mGkfnQOB4VpWEYZw2jv65Z0wLwDE/piQiPPZ3w==", + "requires": { + "@babel/runtime": "^7.6.0", + "@types/styled-jsx": "^2.2.8", + "clsx": "^1.0.2", + "react-transition-group": "^4.0.0", + "rifm": "^0.7.0" + } + }, "@material-ui/styles": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz", - "integrity": "sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q==", + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", + "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", "requires": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", - "@material-ui/types": "^5.1.0", - "@material-ui/utils": "^4.9.6", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", "clsx": "^1.0.4", "csstype": "^2.5.2", "hoist-non-react-statics": "^3.3.2", - "jss": "^10.0.3", - "jss-plugin-camel-case": "^10.0.3", - "jss-plugin-default-unit": "^10.0.3", - "jss-plugin-global": "^10.0.3", - "jss-plugin-nested": "^10.0.3", - "jss-plugin-props-sort": "^10.0.3", - "jss-plugin-rule-value-function": "^10.0.3", - "jss-plugin-vendor-prefixer": "^10.0.3", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", "prop-types": "^15.7.2" } }, "@material-ui/system": { - "version": "4.9.14", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz", - "integrity": "sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", + "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", "requires": { "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.9.6", + "@material-ui/utils": "^4.11.2", "csstype": "^2.5.2", "prop-types": "^15.7.2" } @@ -18969,16 +19347,17 @@ "@material-ui/types": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "requires": {} }, "@material-ui/utils": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz", - "integrity": "sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw==", + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", + "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", "requires": { "@babel/runtime": "^7.4.4", "prop-types": "^15.7.2", - "react-is": "^16.8.0" + "react-is": "^16.8.0 || ^17.0.0" } }, "@mrmlnc/readdir-enhanced": { @@ -19000,6 +19379,28 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.2.tgz", "integrity": "sha512-JlGTGRYHC2QK+DDbePyXdBdooxFq2+noLfWpRqJtkxcb/oYWzOF0kcbfvvbWrwevCC1l6hLUg1wHYT+ona5BWQ==" }, + "@react-google-maps/api": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.4.1.tgz", + "integrity": "sha512-uGB9QLlZSQxxB9/iu5cWVpmub97PQOypfDnow1cACU49BTUEB7s7/3/A30IR9WxVx3TP+CbYYuGDmKkwhYTJMg==", + "requires": { + "@googlemaps/js-api-loader": "1.12.4", + "@react-google-maps/infobox": "2.4.0", + "@react-google-maps/marker-clusterer": "2.4.0", + "@types/google.maps": "3.45.6", + "invariant": "2.2.4" + } + }, + "@react-google-maps/infobox": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.4.0.tgz", + "integrity": "sha512-ABxPQLOjT1s5w0DtNvVuLLLtUAW/VtN9rVci/qBo+Hx1wo2QWcGRcmc7+lnheCO8B98A1InHDfxCR6wIMwrcoA==" + }, + "@react-google-maps/marker-clusterer": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.4.0.tgz", + "integrity": "sha512-bqSyv0zBf4CTwVKQCXhpeSX7d/OGJIRoKMLLTzwk9C5z5Vj7gXJadaDoNHoYs2x8t54d3bR+ODK5uNq70IHX0w==" + }, "@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", @@ -19314,6 +19715,11 @@ "@types/node": "*" } }, + "@types/google.maps": { + "version": "3.45.6", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.45.6.tgz", + "integrity": "sha512-BzGzxs8UXFxeP8uN/0nRgGbsbpYQxSCKsv/7S8OitU7wwhfFcqQSm5aAcL1nbwueMiJ/VVmIZKPq69s0kX5W+Q==" + }, "@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", @@ -19366,9 +19772,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@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==" + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "@types/q": { "version": "1.5.4", @@ -19392,6 +19798,14 @@ "@types/react": "*" } }, + "@types/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-2+L0ilcAEG8udkDnvx8B0upwXFBbNnVwOsSCTxW3SDOkmar9NyEeLG0ZLa3uOEw9zyYf/fQapcnfXAVmDKlyHw==", + "requires": { + "@types/react": "*" + } + }, "@types/react-text-mask": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/@types/react-text-mask/-/react-text-mask-5.4.6.tgz", @@ -19413,6 +19827,14 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, + "@types/styled-jsx": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.9.tgz", + "integrity": "sha512-W/iTlIkGEyTBGTEvZCey8EgQlQ5l0DwMqi3iOXlLs2kyBwYTXHKEiU6IZ5EwoRwngL8/dGYuzezSup89ttVHLw==", + "requires": { + "@types/react": "*" + } + }, "@types/testing-library__dom": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", @@ -22034,6 +22456,11 @@ } } }, + "date-fns": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.24.0.tgz", + "integrity": "sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw==" + }, "debounce": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", @@ -25650,14 +26077,21 @@ } }, "jss": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.3.0.tgz", - "integrity": "sha512-B5sTRW9B6uHaUVzSo9YiMEOEp3UX8lWevU0Fsv+xtRnsShmgCfIYX44bTH8bPJe6LQKqEXku3ulKuHLbxBS97Q==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.8.0.tgz", + "integrity": "sha512-6fAMLJrVQ8epM5ghghxWqCwRR0ZamP2cKbOAtzPudcCMSNdAqtvmzQvljUZYR8OXJIeb/IpZeOXA1sDXms4R1w==", "requires": { "@babel/runtime": "^7.3.1", - "csstype": "^2.6.5", + "csstype": "^3.0.2", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + } } }, "jss-camel-case": { @@ -25697,70 +26131,70 @@ } }, "jss-plugin-camel-case": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.3.0.tgz", - "integrity": "sha512-tadWRi/SLWqLK3EUZEdDNJL71F3ST93Zrl9JYMjV0QDqKPAl0Liue81q7m/nFUpnSTXczbKDy4wq8rI8o7WFqA==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.0.tgz", + "integrity": "sha512-yxlXrXwcCdGw+H4BC187dEu/RFyW8joMcWfj8Rk9UPgWTKu2Xh7Sib4iW3xXjHe/t5phOHF1rBsHleHykWix7g==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "jss-plugin-default-unit": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.3.0.tgz", - "integrity": "sha512-tT5KkIXAsZOSS9WDSe8m8lEHIjoEOj4Pr0WrG0WZZsMXZ1mVLFCSsD2jdWarQWDaRNyMj/I4d7czRRObhOxSuw==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.0.tgz", + "integrity": "sha512-9XJV546cY9zV9OvIE/v/dOaxSi4062VfYQQfwbplRExcsU2a79Yn+qDz/4ciw6P4LV1Naq90U+OffAGRHfNq/Q==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "jss-plugin-global": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.3.0.tgz", - "integrity": "sha512-etYTG/y3qIR/vxZnKY+J3wXwObyBDNhBiB3l/EW9/pE3WHE//BZdK8LFvQcrCO48sZW1Z6paHo6klxUPP7WbzA==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.8.0.tgz", + "integrity": "sha512-H/8h/bHd4e7P0MpZ9zaUG8NQSB2ie9rWo/vcCP6bHVerbKLGzj+dsY22IY3+/FNRS8zDmUyqdZx3rD8k4nmH4w==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "jss-plugin-nested": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.3.0.tgz", - "integrity": "sha512-qWiEkoXNEkkZ+FZrWmUGpf+zBsnEOmKXhkjNX85/ZfWhH9dfGxUCKuJFuOWFM+rjQfxV4csfesq4hY0jk8Qt0w==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.8.0.tgz", + "integrity": "sha512-MhmINZkSxyFILcFBuDoZmP1+wj9fik/b9SsjoaggkGjdvMQCES21mj4K5ZnRGVm448gIXyi9j/eZjtDzhaHUYQ==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0", + "jss": "10.8.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.3.0.tgz", - "integrity": "sha512-boetORqL/lfd7BWeFD3K+IyPqyIC+l3CRrdZr+NPq7Noqp+xyg/0MR7QisgzpxCEulk+j2CRcEUoZsvgPC4nTg==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.0.tgz", + "integrity": "sha512-VY+Wt5WX5GMsXDmd+Ts8+O16fpiCM81svbox++U3LDbJSM/g9FoMx3HPhwUiDfmgHL9jWdqEuvSl/JAk+mh6mQ==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "jss-plugin-rule-value-function": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.3.0.tgz", - "integrity": "sha512-7WiMrKIHH3rwxTuJki9+7nY11r1UXqaUZRhHvqTD4/ZE+SVhvtD5Tx21ivNxotwUSleucA/8boX+NF21oXzr5Q==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.0.tgz", + "integrity": "sha512-R8N8Ma6Oye1F9HroiUuHhVjpPsVq97uAh+rMI6XwKLqirIu2KFb5x33hPj+vNBMxSHc9jakhf5wG0BbQ7fSDOg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.3.0", + "jss": "10.8.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-vendor-prefixer": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.3.0.tgz", - "integrity": "sha512-sZQbrcZyP5V0ADjCLwUA1spVWoaZvM7XZ+2fSeieZFBj31cRsnV7X70FFDerMHeiHAXKWzYek+67nMDjhrZAVQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.0.tgz", + "integrity": "sha512-G1zD0J8dFwKZQ+GaZaay7A/Tg7lhDw0iEkJ/iFFA5UPuvZFpMprCMQttXcTBhLlhhWnyZ8YPn4yqp+amrhQekw==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "^10.3.0" + "jss": "10.8.0" } }, "jss-props-sort": { @@ -26280,6 +26714,27 @@ } } }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, "react-transition-group": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", @@ -26290,6 +26745,15 @@ "loose-envify": "^1.4.0", "prop-types": "^15.6.2" } + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } } } }, @@ -27216,6 +27680,11 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, + "papaparse": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.1.tgz", + "integrity": "sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA==" + }, "parallel-transform": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", @@ -28665,13 +29134,12 @@ } }, "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" } }, "react-app-polyfill": { @@ -28918,14 +29386,13 @@ } }, "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" } }, "react-error-overlay": { @@ -29017,16 +29484,6 @@ "loose-envify": "^1.4.0", "prop-types": "^15.7.2", "react-is": "^16.13.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } } }, "react-router": { @@ -29512,6 +29969,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, + "reselect": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz", + "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==" + }, "resolve": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", @@ -29658,6 +30120,14 @@ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" }, + "rifm": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz", + "integrity": "sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ==", + "requires": { + "@babel/runtime": "^7.3.1" + } + }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -29791,9 +30261,9 @@ } }, "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -31423,6 +31893,11 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "vega-lite-api": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-lite-api/-/vega-lite-api-5.0.0.tgz", + "integrity": "sha512-rjNLkfOuBG1KTpIgQpX81LlGiqEb92lHlGiIuofs/EgntFVxD1REW18YKLpYdb1Mm7166zIOqNMdpchwjhstbQ==" + }, "vendors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", diff --git a/React-frontend/src/App.js b/React-frontend/src/App.js index fb10cf9b..79208220 100644 --- a/React-frontend/src/App.js +++ b/React-frontend/src/App.js @@ -1,121 +1,158 @@ // Importing Dependecies -import React, { useEffect } from 'react'; -import './App.css'; -import { Redirect, Route, Switch } from 'react-router-dom'; -import { useDispatch, useSelector } from 'react-redux'; -import HomePage from './pages/HomePage'; -import AboutPage from './pages/AboutPage'; -import ContactPage from './pages/ContactPage'; -import AdminPage from './pages/admin/AdminPage'; -import Alert from './components/core/Alert'; -import { loadUser } from './store/actions/auth'; -import MemberList from './pages/admin/MemberList'; -import CircularProgress from '@material-ui/core/CircularProgress'; -import NotFound from './pages/NotFound'; -import SelectedMember from './pages/admin/SelectedMember'; -import CreateTask from './pages/admin/CreateTask'; -import ShowTasks from './pages/admin/ShowTasks'; -import CaseTreePage from './pages/Management/CaseTreePage'; -import FileExplorerPage from './pages/Management/FileExplorerPage'; -import CaseDirsPage from './pages/Management/CaseDirsPage'; -import CaseFilePage from './pages/Management/CaseFilePage'; -import CompletedtaskPage from './pages/Management/CompletedTaskPage'; -import TodoTaskPage from './pages/Management/TodoTaskPage'; -import ReportMain from './pages/Management/Report/ReportMain'; -import DataVisualizer from './pages/Management/Report/DataVisualizer'; -import LiveDevices from './pages/Extractor/LiveDevices'; -import ExtractedCasesPage from './pages/Extractor/ExtractedCasesPage'; -import AnalyticsPage from './pages/Management/AnalyticsPage'; -import CommonWordsPage from './pages/Management/CommonWordsPage'; -import KeywordSearchPage from './pages/Management/KeywordSearchPage'; -import FilterCasePage from './pages/Management/FilterCasePage'; -import ShowFilePage from './pages/Management/ShowFilePage'; -import LocationPage from './pages/Management/LocationPage' -import ForgotPassword from './pages/ForgotPassword'; -import ResetPassword from './pages/ResetPassword'; -import VerifyEmail from './pages/VerifyEmail'; -import ComparePage from './pages/Management/ComparePage'; - +import React, { useEffect } from "react"; +import "./App.css"; +import { Redirect, Route, Switch } from "react-router-dom"; +import { useDispatch, useSelector } from "react-redux"; +import HomePage from "./pages/HomePage"; +import AboutPage from "./pages/AboutPage"; +import ContactPage from "./pages/ContactPage"; +import AdminPage from "./pages/admin/AdminPage"; +import Alert from "./components/core/Alert"; +import { loadUser } from "./store/actions/auth"; +import MemberList from "./pages/admin/MemberList"; +import CircularProgress from "@material-ui/core/CircularProgress"; +import NotFound from "./pages/NotFound"; +import SelectedMember from "./pages/admin/SelectedMember"; +import CreateTask from "./pages/admin/CreateTask"; +import ShowTasks from "./pages/admin/ShowTasks"; +import CaseTreePage from "./pages/Management/CaseTreePage"; +import FileExplorerPage from "./pages/Management/FileExplorerPage"; +import CaseDirsPage from "./pages/Management/CaseDirsPage"; +import CaseFilePage from "./pages/Management/CaseFilePage"; +import CompletedtaskPage from "./pages/Management/CompletedTaskPage"; +import TodoTaskPage from "./pages/Management/TodoTaskPage"; +import ReportMain from "./pages/Management/Report/ReportMain"; +import DataVisualizer from "./pages/Management/Report/DataVisualizer"; +import LiveDevices from "./pages/Extractor/LiveDevices"; +import ExtractedCasesPage from "./pages/Extractor/ExtractedCasesPage"; +import AnalyticsPage from "./pages/Management/AnalyticsPage"; +import CommonWordsPage from "./pages/Management/CommonWordsPage"; +import KeywordSearchPage from "./pages/Management/KeywordSearchPage"; +import FilterCasePage from "./pages/Management/FilterCasePage"; +import ShowFilePage from "./pages/Management/ShowFilePage"; +import LocationPage from "./pages/Management/LocationPage"; +import ForgotPassword from "./pages/ForgotPassword"; +import ResetPassword from "./pages/ResetPassword"; +import VerifyEmail from "./pages/VerifyEmail"; +import ComparePage from "./pages/Management/ComparePage"; // private route accessbile for only authenticated users -function PrivateRoute ({component: Component, ...rest}) { - const auth = useSelector(state => state.auth) - const dispatch = useDispatch() +function PrivateRoute({ component: Component, ...rest }) { + const auth = useSelector((state) => state.auth); + const dispatch = useDispatch(); useEffect(() => { - dispatch(loadUser()) - }, [dispatch]) + dispatch(loadUser()); + }, [dispatch]); - return { - if(auth.isLoading){ - return - } else if(!auth.isAuthenticated){ - return - } else { - return - } - }} - /> + return ( + { + if (auth.isLoading) { + return ; + } else if (!auth.isAuthenticated) { + return ; + } else { + return ; + } + }} + /> + ); } // Public routes accessible to all users. -function PublicRoute ({ component: Component, restricted, ...rest }) { - const auth = useSelector(state => state.auth) - const dispatch = useDispatch() +function PublicRoute({ component: Component, restricted, ...rest }) { + const auth = useSelector((state) => state.auth); + const dispatch = useDispatch(); - useEffect(() => dispatch(loadUser()), [dispatch]) + useEffect(() => dispatch(loadUser()), [dispatch]); - return { - // if (auth.isLoading) { - // return - // } - if (auth.isAuthenticated && restricted) { - return - } else { - return - } - }} /> + return ( + { + // if (auth.isLoading) { + // return + // } + if (auth.isAuthenticated && restricted) { + return ; + } else { + return ; + } + }} + /> + ); } - function App() { return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
); } diff --git a/React-frontend/src/components/Sidebar.js b/React-frontend/src/components/Sidebar.js index 7a59c6a5..ca312311 100644 --- a/React-frontend/src/components/Sidebar.js +++ b/React-frontend/src/components/Sidebar.js @@ -1,11 +1,11 @@ /* -* main sidebar component for admin. -*/ + * main sidebar component for admin. + */ // Import Dependecies -import React, { useState } from 'react'; -import { useSelector} from 'react-redux'; -import { useHistory } from 'react-router-dom'; +import React, { useState } from "react"; +import { useSelector } from "react-redux"; +import { useHistory } from "react-router-dom"; import { Drawer, Typography, @@ -13,150 +13,154 @@ import { List, ListItem, ListItemText, - ListItemIcon -} from '@material-ui/core'; -import { makeStyles } from '@material-ui/core/styles'; -import AccountCircleIcon from '@material-ui/icons/AccountCircle'; -import SupervisorAccountIcon from '@material-ui/icons/SupervisorAccount'; -import PersonAddIcon from '@material-ui/icons/PersonAdd'; -import SearchIcon from '@material-ui/icons/Search'; -import AddIcon from '@material-ui/icons/Add'; -import AssignmentIcon from '@material-ui/icons/Assignment'; -import HomeIcon from '@material-ui/icons/Home'; -import InfoIcon from '@material-ui/icons/Info'; -import ContactSupportIcon from '@material-ui/icons/ContactSupport'; -import { useLocation } from 'react-router-dom/cjs/react-router-dom.min'; -import AddMemberModel from './Admin/AddMemberModel'; -import VerifyButton from './Utils/VerifyButton'; + ListItemIcon, +} from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import AccountCircleIcon from "@material-ui/icons/AccountCircle"; +import SupervisorAccountIcon from "@material-ui/icons/SupervisorAccount"; +import PersonAddIcon from "@material-ui/icons/PersonAdd"; +import SearchIcon from "@material-ui/icons/Search"; +import AddIcon from "@material-ui/icons/Add"; +import AssignmentIcon from "@material-ui/icons/Assignment"; +import HomeIcon from "@material-ui/icons/Home"; +import InfoIcon from "@material-ui/icons/Info"; +import ContactSupportIcon from "@material-ui/icons/ContactSupport"; +import { useLocation } from "react-router-dom/cjs/react-router-dom.min"; +import AddMemberModel from "./Admin/AddMemberModel"; +import VerifyButton from "./Utils/VerifyButton"; // styles const useStyles = makeStyles((theme) => ({ drawer: { - width: '250px', - backgroundColor: '#f0f0f0', + width: "250px", + backgroundColor: "#f0f0f0", zIndex: 900, - padding: '2vh 0' + padding: "2vh 0", }, paper: { - width: '250px', - padding: '2vh 0', + width: "250px", + padding: "2vh 0", }, toolbar: theme.mixins.toolbar, profileDetails: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - margin: '0px', + display: "flex", + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + margin: "0px", }, Icon: { - position: 'relative', - '&::before': { + position: "relative", + "&::before": { content: `"Admin"`, - textAlign: 'center', - fontWeight: '600', + textAlign: "center", + fontWeight: "600", fontSize: theme.spacing(1.2), - color: '#fff', - position: 'absolute', + color: "#fff", + position: "absolute", top: theme.spacing(5.2), left: theme.spacing(5), - padding: '2px 10px', - borderRadius: '10px', + padding: "2px 10px", + borderRadius: "10px", backgroundColor: theme.palette.primary.light, - zIndex: 999 - } + zIndex: 999, + }, }, profileIcon: { - position: 'relative', + position: "relative", fontSize: theme.spacing(8), }, profileText: { - color: '#404040', - fontWeight: '600', + color: "#404040", + fontWeight: "600", fontSize: theme.spacing(1.3), }, activeItem: { - backgroundColor: '#f4f4f4' - } -})) - + backgroundColor: "#f4f4f4", + }, +})); function Sidebar() { - // invoking custom styles - const classes = useStyles() + const classes = useStyles(); // history - const history = useHistory() + const history = useHistory(); // location object - const location = useLocation() + const location = useLocation(); // get auth reducer - const auth = useSelector(state => state.auth) + const auth = useSelector((state) => state.auth); // state for add member model - const [isAddMemberModelOpen, setToggleAddMemberModel] = useState(false) + const [isAddMemberModelOpen, setToggleAddMemberModel] = useState(false); // User management related list items(For Admin) - const userManagementItems = [ ['All Members', , "/list-members"], - ['Add Member', , "/create-member"], - ['Search User', , "/"] - ] + const userManagementItems = [ + [ + "All Members", + , + "/list-members", + ], + ["Add Member", , "/create-member"], + ["Search User", , "/"], + ]; // Task Management related list items(For Admin) const taskManagementItems = [ - ['All Tasks', , "/task/list"], - ['Create Task', , "/task/create"] - ] + ["All Tasks", , "/task/list"], + ["Create Task", , "/task/create"], + ]; // Other items const otherItems = [ - ['Home', ], - ['Contact', ], - ['About', ] - ] + ["Home", , "/"], + ["Contact", , "/contact"], + ["About", , "/about"], + ]; return (
{/* Listing User profile related Details */} - + -
- +
- {(auth.user && !auth.isLoading) ? - auth.user.name : - (wait...) - } + {auth.user && !auth.isLoading ? ( + auth.user.name + ) : ( + wait... + )} - {(auth.user && !auth.isLoading) ? - auth.user.email : - (wait...) - } + {auth.user && !auth.isLoading ? ( + auth.user.email + ) : ( + wait... + )} - {(auth.user && !auth.isLoading) ? - () : - (wait...) - } + {auth.user && !auth.isLoading ? ( + + ) : ( + wait... + )} -
@@ -169,8 +173,14 @@ function Sidebar() { setToggleAddMemberModel(true): () => history.push(item[2])} + className={ + location.pathname === item[2] ? classes.activeItem : null + } + onClick={ + index === 1 + ? () => setToggleAddMemberModel(true) + : () => history.push(item[2]) + } > {item[1]} @@ -178,12 +188,13 @@ function Sidebar() { ))}
- {/* Add Member Model */} - - + {/* Mapping task management items @@ -194,7 +205,9 @@ function Sidebar() { history.push(item[2])} > {item[1]} @@ -209,16 +222,14 @@ function Sidebar() { {otherItems.map((item, index) => ( - + history.push(item[2])}> {item[1]} - + ))} - - - ) + ); } -export default Sidebar +export default Sidebar; diff --git a/React-frontend/src/components/core/HomeLogo.js b/React-frontend/src/components/core/HomeLogo.js index 39773be5..50bff89f 100644 --- a/React-frontend/src/components/core/HomeLogo.js +++ b/React-frontend/src/components/core/HomeLogo.js @@ -1,10 +1,10 @@ /* -* HomeLogo component that would be -* Wrapped by HomePage Component. -*/ + * HomeLogo component that would be + * Wrapped by HomePage Component. + */ -import React, { useState } from 'react' -import { makeStyles } from '@material-ui/core/styles'; +import React, { useState } from "react"; +import { makeStyles } from "@material-ui/core/styles"; import { Container, Grid, @@ -13,148 +13,145 @@ import { Link, Dialog, DialogContent, - DialogActions -} from '@material-ui/core'; -import { Link as RouterLink} from 'react-router-dom'; -import LoginForm from '../LoginForm'; -import RegisterForm from '../RegisterForm'; -import logo from '../../images/HomeLogo.png'; -import { useSelector } from 'react-redux'; - + DialogActions, +} from "@material-ui/core"; +import { Link as RouterLink } from "react-router-dom"; +import LoginForm from "../LoginForm"; +import RegisterForm from "../RegisterForm"; +import logo from "../../images/HomeLogo.png"; +import { useSelector } from "react-redux"; // Custom Styles const useStyles = makeStyles((theme) => ({ root: { - marginTop: '10vh', - height: '82.5vh', - padding: '0' + marginTop: "10vh", + height: "82.5vh", + padding: "0", }, left: { - width: '35%', - height: '82.5vh', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center' + width: "35%", + height: "82.5vh", + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center", }, logo: { width: theme.spacing(30), height: theme.spacing(30), - margin: `${theme.spacing(3)}px 0` + margin: `${theme.spacing(3)}px 0`, }, buttons: { - width: '40%', - display: 'flex', - justifyContent: 'space-between', - marginBottom: theme.spacing(3) + width: "40%", + display: "flex", + justifyContent: "space-between", + marginBottom: theme.spacing(3), }, Btn: { backgroundColor: theme.palette.primary.extraLight, - color: '#fff', - width: '100px', - height: '40px', + color: "#fff", + width: "100px", + height: "40px", borderRadius: theme.spacing(2), - textAlign: 'center', - lineHeight: '40px', - border: 'none', - outline:'none', - '&:hover': { + textAlign: "center", + lineHeight: "40px", + border: "none", + outline: "none", + "&:hover": { backgroundColor: theme.palette.primary.light, }, - '&:focus': { - outline: 'none' - } + "&:focus": { + outline: "none", + }, }, knowMoreBtn: { - width: '140px', - height: '40px', - fontWeight: 'bold', + width: "140px", + height: "40px", + fontWeight: "bold", borderRadius: theme.spacing(2), - textAlign: 'center', - lineHeight: '30px', + textAlign: "center", + lineHeight: "30px", }, right: { - position: 'relative', - width: '65%', - height: '82.5vh', - display: 'flex', - justifyContent: 'center', - alignItems: 'center' + position: "relative", + width: "65%", + height: "82.5vh", + display: "flex", + justifyContent: "center", + alignItems: "center", }, rightInner: { - width: '80%', - height: '80%', + width: "80%", + height: "80%", borderRadius: theme.spacing(2), - backgroundColor: '#fafafa', + backgroundColor: "#fafafa", padding: theme.spacing(5), - clipPath: 'circle(10% at 0% 0%)', - transition: 'clip-path .4s ease-in', + clipPath: "circle(10% at 0% 0%)", + transition: "clip-path .4s ease-in", zIndex: 999, - '&:hover': { - clipPath: 'circle(150% at 0% 0%)' + "&:hover": { + clipPath: "circle(150% at 0% 0%)", }, }, rightInner2: { - position: 'absolute', - width: '80%', - minHeight: '80%', + position: "absolute", + width: "80%", + minHeight: "80%", borderRadius: theme.spacing(2), - backgroundColor: '#fff', + backgroundColor: "#fff", padding: theme.spacing(5), }, title: { fontSize: theme.spacing(3), - fontWeight: 'bold', + fontWeight: "bold", marginBottom: theme.spacing(3), }, textBody: { fontSize: theme.spacing(1.5), fontWeight: 600, - color: '#909090' - } -})) - + color: "#909090", + }, +})); // Main Component function HomeLogo() { - // Invoke custom classes - const classes = useStyles() + const classes = useStyles(); // Get auth Reducer - const auth = useSelector(state => state.auth) + const auth = useSelector((state) => state.auth); // State to hold modal opening variables - const [openLogin, setOpenLogin] = useState(false) - const [openSignUp, setOpenSignUp] = useState(false) + const [openLogin, setOpenLogin] = useState(false); + const [openSignUp, setOpenSignUp] = useState(false); // function to handle login modal open state const handleOpenLogin = () => { - setOpenLogin(true) - } + setOpenLogin(true); + }; // Function to handle login modal close state const handleCloseLogin = () => { - setOpenLogin(false) - } + setOpenLogin(false); + }; // Function to handle Signup Modal open state const handleOpenSignUp = () => { - setOpenSignUp(true) - } + setOpenSignUp(true); + }; // Function to handle Signup modal close state const handleCloseSignUp = () => { - setOpenSignUp(false) - } + setOpenSignUp(false); + }; // Returning JSX return ( - openMF - {(auth && !auth.isAuthenticated) && ( + openMF + {auth && !auth.isAuthenticated && (
- - - + + + - - - + + +
- + How OpenMF Works ? - - Step 1: Lorem Ipsum is simply dummy text of the printing and typesetting industry. - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + + Step 1: Lorem Ipsum is simply dummy text of the printing and + typesetting industry. Lorem Ipsum has been the industry's standard + dummy text ever since the 1500s,

- - Step 2: Lorem Ipsum is simply dummy text of the printing and typesetting industry. - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + + Step 2: Lorem Ipsum is simply dummy text of the printing and + typesetting industry. Lorem Ipsum has been the industry's standard + dummy text ever since the 1500s,

- - Step 3: Lorem Ipsum is simply dummy text of the printing and typesetting industry. - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + + Step 3: Lorem Ipsum is simply dummy text of the printing and + typesetting industry. Lorem Ipsum has been the industry's standard + dummy text ever since the 1500s,

- - Step 4: Lorem Ipsum is simply dummy text of the printing and typesetting industry. - Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + + Step 4: Lorem Ipsum is simply dummy text of the printing and + typesetting industry. Lorem Ipsum has been the industry's standard + dummy text ever since the 1500s,
- ) + ); } -export default HomeLogo - +export default HomeLogo; diff --git a/React-frontend/src/components/core/Navbar.js b/React-frontend/src/components/core/Navbar.js index 1e96044c..afa1a9db 100644 --- a/React-frontend/src/components/core/Navbar.js +++ b/React-frontend/src/components/core/Navbar.js @@ -1,4 +1,4 @@ -import React, {useState} from 'react' +import React, { useState } from "react"; import { AppBar, @@ -14,136 +14,135 @@ import { MenuItem, Dialog, DialogContent, - DialogActions -} from '@material-ui/core'; -import { makeStyles } from '@material-ui/core/styles'; -import { deepPurple } from '@material-ui/core/colors'; -import { Link as RouterLink, useHistory } from 'react-router-dom'; -import logo from '../../images/logo2.png'; -import { useSelector, useDispatch } from 'react-redux'; -import { logout } from '../../store/actions/auth'; -import RegisterForm from '../RegisterForm'; -import LoginForm from '../LoginForm'; - + DialogActions, +} from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import { deepPurple } from "@material-ui/core/colors"; +import { Link as RouterLink, useHistory } from "react-router-dom"; +import logo from "../../images/logo2.png"; +import { useSelector, useDispatch } from "react-redux"; +import { logout } from "../../store/actions/auth"; +import RegisterForm from "../RegisterForm"; +import LoginForm from "../LoginForm"; const useStyles = makeStyles((theme) => ({ appBar: { - height: '8vh', + height: "8vh", borderBottom: `1px solid ${theme.palette.divider}`, - backgroundColor: '#0f0f0f', - color: '#fff', - position: 'fixed', + backgroundColor: "#0f0f0f", + color: "#fff", + position: "fixed", }, toolbar: { - flexWrap: 'wrap' + flexWrap: "wrap", }, toolbarTitle: { flexGrow: 1, - fontWeight: 'bold', - '&:hover': { - backgroundColor: '#000', - TextDecoration: 'none' - } + fontWeight: "bold", + "&:hover": { + backgroundColor: "#000", + TextDecoration: "none", + }, }, toolbarTitleLink: { - '&:hover': { - color: '#fff', - } + "&:hover": { + color: "#fff", + }, }, link: { margin: theme.spacing(1, 1.5), - color: '#fff', - '&:hover': { - TextDecoration: 'none', - color: '#fff' - } + color: "#fff", + "&:hover": { + TextDecoration: "none", + color: "#fff", + }, }, button: { marginRight: theme.spacing(0.7), - color: '#fff', + color: "#fff", borderRadius: theme.spacing(3.7), borderColor: theme.palette.primary.extraLight, - '&:hover': { - backgroundColor: '#000', - color: '#fff' + "&:hover": { + backgroundColor: "#000", + color: "#fff", + }, + "&:focus": { + outline: "none", }, - '&:focus': { - outline: 'none' - } }, small: { - position: 'relative', + position: "relative", width: theme.spacing(3.7), height: theme.spacing(3.7), marginRight: theme.spacing(5), - '&::after': { - position: 'absolute', + "&::after": { + position: "absolute", content: '" "', width: theme.spacing(8), height: theme.spacing(8), backgroundImage: `url(${logo})`, - backgroundPosition: 'center', - backgroundSize: 'contain', - backgroundRepeat:'no-repeat', + backgroundPosition: "center", + backgroundSize: "contain", + backgroundRepeat: "no-repeat", zIndex: 999, }, - '&::before': { - position: 'absolute', + "&::before": { + position: "absolute", content: '" "', left: theme.spacing(3), top: theme.spacing(2), width: theme.spacing(6), height: theme.spacing(2), - backgroundColor: '#fff', - zIndex: 998 + backgroundColor: "#fff", + zIndex: 998, + }, + "&:hover": { + backgroundColor: "#000", + borderColor: "#000", }, - '&:hover': { - backgroundColor: '#000', - borderColor: '#000', + "&:onFocus": { + border: "none", + outline: "none", }, - '&:onFocus': { - border: 'none', - outline: 'none' - } }, purple: { width: theme.spacing(3.75), height: theme.spacing(3.75), color: theme.palette.getContrastText(deepPurple[500]), backgroundColor: deepPurple[500], - fontSize: '17px' - } -})) + fontSize: "17px", + }, +})); // Common navbar for Dashboard, Home, Simulator, Gallery, etc. -export function Header () { - const history = useHistory() - const classes = useStyles() - const dispatch = useDispatch() - const [anchorEl, setAnchorEl] = React.useState(null) - const auth = useSelector(state => state.auth) - const [openLogin, setOpenLogin] = useState(false) - const [openSignUp, setOpenSignUp] = useState(false) +export function Header() { + const history = useHistory(); + const classes = useStyles(); + const dispatch = useDispatch(); + const [anchorEl, setAnchorEl] = React.useState(null); + const auth = useSelector((state) => state.auth); + const [openLogin, setOpenLogin] = useState(false); + const [openSignUp, setOpenSignUp] = useState(false); const handleClick = (event) => { - setAnchorEl(event.currentTarget) - } + setAnchorEl(event.currentTarget); + }; const handleClose = () => { - setAnchorEl(null) - } + setAnchorEl(null); + }; const handleOpenLogin = () => { - setOpenLogin(true) - } + setOpenLogin(true); + }; const handleCloseLogin = () => { - setOpenLogin(false) - } + setOpenLogin(false); + }; const handleOpenSignUp = () => { - setOpenSignUp(true) - } + setOpenSignUp(true); + }; const handleCloseSignUp = () => { - setOpenSignUp(false) - } + setOpenSignUp(false); + }; return ( <> {/* Display logo */} @@ -158,97 +157,102 @@ export function Header () { noWrap className={classes.toolbarTitle} > - + OpenMF {/* Display relative link to other pages */} {/* Display login option or user menu as per authenticated status */} - { - (!auth.isAuthenticated ? ( + {!auth.isAuthenticated ? ( <> @@ -282,80 +282,76 @@ export function Header () { Register - + - - ) - : (<> - - + ) : ( + <> + + + {auth && auth.user ? ( + auth.user.name.charAt(0).toUpperCase() + ) : ( + wait... + )} + + + + - - {(auth && auth.user) ? auth.user.name.charAt(0).toUpperCase(): (wait...)} - - - + + - - - - - My Profile - - - Dashboard - - { - dispatch(logout(history)) - }}> - Logout - - - - ) - ) - } + My Profile + + + Dashboard + + { + dispatch(logout(history)); + }} + > + Logout + + + + )} - ) + ); } -export default function Navbar () { - const classes = useStyles() +export default function Navbar() { + const classes = useStyles(); return ( -
- ) + ); } diff --git a/React-frontend/src/pages/ContactPage.js b/React-frontend/src/pages/ContactPage.js index f6da39d9..9bb2df3f 100644 --- a/React-frontend/src/pages/ContactPage.js +++ b/React-frontend/src/pages/ContactPage.js @@ -1,19 +1,18 @@ /* -* Contact Page Component -*/ + * Contact Page Component + */ // Import Dependecies -import React from 'react'; -import Layout from '../components/core/Layout'; - +import React from "react"; +import Layout from "../components/core/Layout"; // Main AboutPage Component -const AboutPage = () => { - return ( - -

Contact page

-
- ) -} +const ContactPage = () => { + return ( + +

Contact page

+
+ ); +}; -export default AboutPage +export default ContactPage; diff --git a/React-frontend/src/pages/HomePage.js b/React-frontend/src/pages/HomePage.js index 6157773f..bedeb7aa 100644 --- a/React-frontend/src/pages/HomePage.js +++ b/React-frontend/src/pages/HomePage.js @@ -1,54 +1,62 @@ /* -* Wrapper for homepage including -* Layout, Sidebar and HomeLogo components. -*/ + * Wrapper for homepage including + * Layout, Sidebar and HomeLogo components. + */ -import React from 'react' -import Layout from '../components/core/Layout' -import HomeLogo from '../components/core/HomeLogo'; -import { useSelector } from 'react-redux'; -import ManagementLayout from '../components/Management/ManagementLayout'; -import ExtractorLayout from '../components/Extractor/ExtractorLayout'; +import React from "react"; +import Layout from "../components/core/Layout"; +import HomeLogo from "../components/core/HomeLogo"; +import { useSelector } from "react-redux"; +import ManagementLayout from "../components/Management/ManagementLayout"; +import ExtractorLayout from "../components/Extractor/ExtractorLayout"; const HomePage = () => { + // auth reducer + const auth = useSelector((state) => state.auth); - // auth reducer - const auth = useSelector(state => state.auth) - - // Check for admin User - if(auth && auth.isAuthenticated && auth.user && auth.user.role === "admin"){ - return ( - - - - ) - } - - // Check for management User - else if(auth && auth.isAuthenticated && auth.user && auth.user.role === "management"){ - return ( - - - - ) - } - - // Check for Extractor user - else if (auth && auth.isAuthenticated && auth.user && auth.user.role === "extractor"){ - return ( - - - - ) - } - - // If user is not authenticated + // Check for admin User + if (auth && auth.isAuthenticated && auth.user && auth.user.role === "admin") { return ( - - - - ) - -} - -export default HomePage + + + + ); + } + + // Check for management User + else if ( + auth && + auth.isAuthenticated && + auth.user && + auth.user.role === "management" + ) { + return ( + + + + ); + } + + // Check for Extractor user + else if ( + auth && + auth.isAuthenticated && + auth.user && + auth.user.role === "extractor" + ) { + return ( + + + + ); + } + + // If user is not authenticated + return ( + + + + ); +}; + +export default HomePage;