diff --git a/package-lock.json b/package-lock.json index 194783f7..ef45520f 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1554,6 +1554,354 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, + "@firebase/analytics": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.4.2.tgz", + "integrity": "sha512-WCoeUAO3lP6ikHJ3/XYptV90fpTidzTS9VpAfiVQK8gl9w1zvvKSavY9U3+EVG3frOPCFdE5DBO4MYrUw4gaqw==", + "requires": { + "@firebase/analytics-types": "0.3.1", + "@firebase/component": "0.1.18", + "@firebase/installations": "0.4.16", + "@firebase/logger": "0.2.6", + "@firebase/util": "0.3.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/analytics-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.3.1.tgz", + "integrity": "sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA==" + }, + "@firebase/app": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.10.tgz", + "integrity": "sha512-USg/AbgqBERhY0LayrKmmp7pka08WPa7OlFI46kaNW1pA2mUNf/ifTaxhCr2hGg/eWI0zPhpbEvtGQhSJ/QqWg==", + "requires": { + "@firebase/app-types": "0.6.1", + "@firebase/component": "0.1.18", + "@firebase/logger": "0.2.6", + "@firebase/util": "0.3.1", + "dom-storage": "2.1.0", + "tslib": "^1.11.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/app-types": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", + "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==" + }, + "@firebase/auth": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.14.9.tgz", + "integrity": "sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w==", + "requires": { + "@firebase/auth-types": "0.10.1" + } + }, + "@firebase/auth-interop-types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", + "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==" + }, + "@firebase/auth-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", + "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==" + }, + "@firebase/component": { + "version": "0.1.18", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.18.tgz", + "integrity": "sha512-c8gd1k/e0sbBTR0xkLIYUN8nVkA0zWxcXGIvdfYtGEsNw6n7kh5HkcxKXOPB8S7bcPpqZkGgBIfvd94IyG2gaQ==", + "requires": { + "@firebase/util": "0.3.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/database": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.6.11.tgz", + "integrity": "sha512-QOHhB7+CdjVhEXG9CyX0roA9ARJcEuwbozz0Bix+ULuZqjQ58KUFHMH1apW6EEiUP22d/mYD7dNXsUGshjL9PA==", + "requires": { + "@firebase/auth-interop-types": "0.1.5", + "@firebase/component": "0.1.18", + "@firebase/database-types": "0.5.2", + "@firebase/logger": "0.2.6", + "@firebase/util": "0.3.1", + "faye-websocket": "0.11.3", + "tslib": "^1.11.1" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/database-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.5.2.tgz", + "integrity": "sha512-ap2WQOS3LKmGuVFKUghFft7RxXTyZTDr0Xd8y2aqmWsbJVjgozi0huL/EUMgTjGFrATAjcf2A7aNs8AKKZ2a8g==", + "requires": { + "@firebase/app-types": "0.6.1" + } + }, + "@firebase/firestore": { + "version": "1.16.6", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.16.6.tgz", + "integrity": "sha512-w04ZS0i8xclGNvwpxt7Q3M9nhUq6pL0G73ZpDizPKB+peTuY/bcks+zrfNKZwDEaM+i0/lg9UZKREr0HtZOJsw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/firestore-types": "1.12.1", + "@firebase/logger": "0.2.6", + "@firebase/util": "0.3.1", + "@firebase/webchannel-wrapper": "0.3.0", + "@grpc/grpc-js": "^1.0.0", + "@grpc/proto-loader": "^0.5.0", + "node-fetch": "2.6.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/firestore-types": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.12.1.tgz", + "integrity": "sha512-CpWcDriYnGDoAl0D9DcSuwX0b/fXqi7qOwuuTI1M0SYxau48G8cqhVjzjqPDgEM3kDGYJTnPN3ALS0Z4cnwERQ==" + }, + "@firebase/functions": { + "version": "0.4.50", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.4.50.tgz", + "integrity": "sha512-eBsNrUm/Jfc/xsQXmxQRSkEg6pwHlMd2hice8N90/EeqgwqS/SCvC+O9cJITLlXroAghb9jWDWRvAkDU/TOhpw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/functions-types": "0.3.17", + "@firebase/messaging-types": "0.5.0", + "isomorphic-fetch": "2.2.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/functions-types": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.3.17.tgz", + "integrity": "sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ==" + }, + "@firebase/installations": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.16.tgz", + "integrity": "sha512-gqv3IrBUmPWKpH8wLJ0fZcAH1NEXwQhqjqnK3cQXRcIkEARP430cmIAaj7CcPdgdemHX9HqwJG+So/yBHIYXPA==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/installations-types": "0.3.4", + "@firebase/util": "0.3.1", + "idb": "3.0.2", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/installations-types": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", + "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==" + }, + "@firebase/logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", + "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" + }, + "@firebase/messaging": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.0.tgz", + "integrity": "sha512-PTD5pQw9QremOjiWWZYOkzcX6OKByMvlG+NQXdTnyL3kLbE01Bdp9iWhkH6ipNpHYMiwcK1RZD4TLkYVBviBsw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/installations": "0.4.16", + "@firebase/messaging-types": "0.5.0", + "@firebase/util": "0.3.1", + "idb": "3.0.2", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/messaging-types": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz", + "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==" + }, + "@firebase/performance": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.0.tgz", + "integrity": "sha512-LZG89G2wAjTRsIcuewIx152+DyRzQf8UtPCAjifkFiMcAY4GmZZKeIbIC3b4oQDwTgH5i0IKKd4EOv7dLD97gw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/installations": "0.4.16", + "@firebase/logger": "0.2.6", + "@firebase/performance-types": "0.0.13", + "@firebase/util": "0.3.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/performance-types": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", + "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==" + }, + "@firebase/polyfill": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", + "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", + "requires": { + "core-js": "3.6.5", + "promise-polyfill": "8.1.3", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + } + } + }, + "@firebase/remote-config": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.27.tgz", + "integrity": "sha512-BGjmQomRKNf+yGJ/3/5Kw6zNLM5jY9oTVjLmYsQXf6U+HMgz6J2H6EVGc1bZW7YSsvak8f6DomxegQtvfvwaMw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/installations": "0.4.16", + "@firebase/logger": "0.2.6", + "@firebase/remote-config-types": "0.1.9", + "@firebase/util": "0.3.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/remote-config-types": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", + "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" + }, + "@firebase/storage": { + "version": "0.3.42", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.3.42.tgz", + "integrity": "sha512-FqHDWZPhATQeOFBQUZPsQO7xhnGBxprYVDb9eIjCnh1yRl6WAv/OQGHOF+JU5+H+YkjsKTtr/5VjyDl3Y0UHxw==", + "requires": { + "@firebase/component": "0.1.18", + "@firebase/storage-types": "0.3.13", + "@firebase/util": "0.3.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/storage-types": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", + "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==" + }, + "@firebase/util": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.1.tgz", + "integrity": "sha512-zjVd9rfL08dRRdZILFn1RZTHb1euCcnD9N/9P56gdBcm2bvT5XsCC4G6t5toQBpE/H/jYe5h6MZMqfLu3EQLXw==", + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@firebase/webchannel-wrapper": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.3.0.tgz", + "integrity": "sha512-VniCGPIgSGNEgOkh5phb3iKmSGIzcwrccy3IomMFRWPCMiCk2y98UQNJEoDs1yIHtZMstVjYWKYxnunIGzC5UQ==" + }, "@fortawesome/fontawesome-common-types": { "version": "0.2.29", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.29.tgz", @@ -1641,6 +1989,185 @@ "resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-4.4.0.tgz", "integrity": "sha512-GpgNMVjUkFXlC/dVBhiVZJf3/22EulvD1qLaH5zEk/2xYZVdKC9BWo+vOAuRjyvuDnkgHSmtqyjyV2KlRNKWPw==" }, + "@grpc/grpc-js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.5.tgz", + "integrity": "sha512-2huf5z85TdZI4nLmJQ9Zdfd+6vmIyBDs7B4L71bTaHKA9pRsGKAH24XaktMk/xneKJIqAgeIZtg1cyivVZtvrg==", + "requires": { + "@grpc/proto-loader": "^0.6.0-pre14", + "@types/node": "^12.12.47", + "google-auth-library": "^6.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "@grpc/proto-loader": { + "version": "0.6.0-pre9", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.0-pre9.tgz", + "integrity": "sha512-oM+LjpEjNzW5pNJjt4/hq1HYayNeQT+eGrOPABJnYHv7TyNPDNzkQ76rDYZF86X5swJOa4EujEMzQ9iiTdPgww==", + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.9.0", + "yargs": "^15.3.1" + } + }, + "@types/node": { + "version": "12.12.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.55.tgz", + "integrity": "sha512-Vd6xQUVvPCTm7Nx1N7XHcpX6t047ltm7TgcsOr4gFHjeYgwZevo+V7I1lfzHnj5BT5frztZ42+RTG4MwYw63dw==" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@grpc/proto-loader": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz", + "integrity": "sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==", + "requires": { + "lodash.camelcase": "^4.3.0", + "protobufjs": "^6.8.6" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -2174,6 +2701,60 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, "@react-pdf/fontkit": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/@react-pdf/fontkit/-/fontkit-1.13.0.tgz", @@ -2559,6 +3140,11 @@ "@babel/types": "^7.3.0" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -2606,6 +3192,11 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -2971,6 +3562,14 @@ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3058,6 +3657,29 @@ } } }, + "agent-base": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -4088,6 +4710,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, "binary-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", @@ -5834,6 +6461,11 @@ "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" }, + "dialog-polyfill": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.4.10.tgz", + "integrity": "sha512-j5yGMkP8T00UFgyO+78OxiN5vC5dzRQF3BEio+LhNvDbyfxWBsi3sfPArDm54VloaJwy2hm3erEiDWqHRC8rzw==" + }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", @@ -5929,6 +6561,11 @@ "entities": "^2.0.0" } }, + "dom-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", + "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -7060,6 +7697,11 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter3": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", @@ -7399,6 +8041,11 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -7594,6 +8241,36 @@ "locate-path": "^2.0.0" } }, + "firebase": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-7.19.1.tgz", + "integrity": "sha512-kZUbxN4amrKZc2pkmAMqQtWNkb608rCZLL61NC0X/UXI1euWhIFXdCGQNBlEdOlUwDLBGwNpyTBhQtL4UYHEZw==", + "requires": { + "@firebase/analytics": "0.4.2", + "@firebase/app": "0.6.10", + "@firebase/app-types": "0.6.1", + "@firebase/auth": "0.14.9", + "@firebase/database": "0.6.11", + "@firebase/firestore": "1.16.6", + "@firebase/functions": "0.4.50", + "@firebase/installations": "0.4.16", + "@firebase/messaging": "0.7.0", + "@firebase/performance": "0.4.0", + "@firebase/polyfill": "0.3.36", + "@firebase/remote-config": "0.1.27", + "@firebase/storage": "0.3.42", + "@firebase/util": "0.3.1" + } + }, + "firebaseui": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/firebaseui/-/firebaseui-4.6.1.tgz", + "integrity": "sha512-wZHv1feHMKunYj5ZC72CvZcfNjn+3aVB7XGbK5xOH1ukNFHs5VZDtlEu+oOX8jI2OfotbQs72oOTIRVNrJgAqw==", + "requires": { + "dialog-polyfill": "^0.4.7", + "material-design-lite": "^1.2.0" + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -7853,6 +8530,39 @@ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, + "gaxios": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-3.1.0.tgz", + "integrity": "sha512-DDTn3KXVJJigtz+g0J3vhcfbDbKtAroSTxauWsdnP57sM5KZ3d2c/3D9RKFJ86s43hfw6WULg6TXYw/AYiBlpA==", + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.3.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + } + } + }, + "gcp-metadata": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.1.4.tgz", + "integrity": "sha512-5J/GIH0yWt/56R3dNaNWPGQ/zXsZOddYECfJaqxFWgrZ9HC2Kvc5vl9upOgUUHKzURjAVf2N+f6tEJiojqXUuA==", + "requires": { + "gaxios": "^3.0.0", + "json-bigint": "^1.0.0" + } + }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -8008,6 +8718,71 @@ "delegate": "^3.1.2" } }, + "google-auth-library": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.0.6.tgz", + "integrity": "sha512-fWYdRdg55HSJoRq9k568jJA1lrhg9i2xgfhVIMJbskUmbDpJGHsbv9l41DGhCDXM21F9Kn4kUwdysgxSYBYJUw==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^3.0.0", + "gcp-metadata": "^4.1.0", + "gtoken": "^5.0.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "google-p12-pem": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", + "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", + "requires": { + "node-forge": "^0.10.0" + }, + "dependencies": { + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -8038,6 +8813,38 @@ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, + "gtoken": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.3.tgz", + "integrity": "sha512-Nyd1wZCMRc2dj/mAD0LlfQLcAO06uKdpKJXvK85SGrF5+5+Bpfil9u/2aw35ltvEHjvl0h5FMKN5knEU+9JrOg==", + "requires": { + "gaxios": "^3.0.0", + "google-p12-pem": "^3.0.0", + "jws": "^4.0.0", + "mime": "^2.2.0" + }, + "dependencies": { + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + } + } + }, "gud": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", @@ -8528,6 +9335,30 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "hyphen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/hyphen/-/hyphen-1.3.0.tgz", @@ -8554,6 +9385,11 @@ "postcss": "^7.0.14" } }, + "idb": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", + "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==" + }, "identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", @@ -10464,6 +11300,14 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -10969,6 +11813,11 @@ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==" }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", @@ -11089,6 +11938,11 @@ "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "dev": true }, + "material-design-lite": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/material-design-lite/-/material-design-lite-1.3.0.tgz", + "integrity": "sha1-0ATOP+6Zoe63Sni4oyUTSl8RcdM=" + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -13974,9 +14828,9 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-polyfill": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz", - "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA==" + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", + "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==" }, "prompts": { "version": "2.3.2", @@ -14011,6 +14865,26 @@ "xtend": "^4.0.0" } }, + "protobufjs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz", + "integrity": "sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": "^13.7.0", + "long": "^4.0.0" + } + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -14598,6 +15472,14 @@ "prop-types": "^15.7.2" } }, + "react-firebaseui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-firebaseui/-/react-firebaseui-4.1.0.tgz", + "integrity": "sha512-Y5pAom+W6/R5xZeF4xdvYiP7tObo7GDGWra1Pf2td+FxhtXtGQXQTKdW5Rs4js5zIuN0A3fApZzO+3sa1MHl9Q==", + "requires": { + "firebaseui": "^4.1.0" + } + }, "react-form-validator-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/react-form-validator-core/-/react-form-validator-core-1.0.0.tgz", @@ -14607,6 +15489,13 @@ "promise-polyfill": "8.1.0", "prop-types": "^15.0.0", "react-lifecycles-compat": "^3.0.2" + }, + "dependencies": { + "promise-polyfill": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz", + "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA==" + } } }, "react-helmet": { @@ -20769,6 +21658,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, "xregexp": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", diff --git a/package.json b/package.json index a01f53d2..062bd3ec 100755 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "chart.js": "^2.9.3", "clsx": "^1.1.0", "draft-js": "^0.11.5", + "firebase": "^7.19.1", "formik": "^2.1.4", "history": "^4.10.1", "immer": "^6.0.3", @@ -86,6 +87,7 @@ "react-draft-wysiwyg": "^1.14.4", "react-dropzone": "^10.2.2", "react-feather": "^2.0.3", + "react-firebaseui": "^4.1.0", "react-helmet": "^5.2.1", "react-markdown": "^4.3.1", "react-material-ui-form-validator": "^2.1.1", diff --git a/public/static/images/courses/projects/ml/classification.jpg b/public/static/images/courses/projects/ml/classification.jpg new file mode 100644 index 00000000..25e77b46 Binary files /dev/null and b/public/static/images/courses/projects/ml/classification.jpg differ diff --git a/public/static/images/courses/projects/ml/face.jpg b/public/static/images/courses/projects/ml/face.jpg new file mode 100644 index 00000000..b059c14c Binary files /dev/null and b/public/static/images/courses/projects/ml/face.jpg differ diff --git a/public/static/images/courses/projects/ml/gan.jpg b/public/static/images/courses/projects/ml/gan.jpg new file mode 100644 index 00000000..546bbf53 Binary files /dev/null and b/public/static/images/courses/projects/ml/gan.jpg differ diff --git a/public/static/images/courses/projects/ml/gym.jpg b/public/static/images/courses/projects/ml/gym.jpg new file mode 100644 index 00000000..a6e7f780 Binary files /dev/null and b/public/static/images/courses/projects/ml/gym.jpg differ diff --git a/public/static/images/courses/projects/ml/linkedin.jpg b/public/static/images/courses/projects/ml/linkedin.jpg new file mode 100644 index 00000000..29851345 Binary files /dev/null and b/public/static/images/courses/projects/ml/linkedin.jpg differ diff --git a/public/static/images/courses/projects/ml/movie.jpg b/public/static/images/courses/projects/ml/movie.jpg new file mode 100644 index 00000000..a8b8318a Binary files /dev/null and b/public/static/images/courses/projects/ml/movie.jpg differ diff --git a/public/static/images/courses/projects/ml/sentiment.png b/public/static/images/courses/projects/ml/sentiment.png new file mode 100644 index 00000000..71327031 Binary files /dev/null and b/public/static/images/courses/projects/ml/sentiment.png differ diff --git a/public/static/reviews/students/AryanTripathi.png b/public/static/reviews/students/AryanTripathi.png new file mode 100644 index 00000000..12c11775 Binary files /dev/null and b/public/static/reviews/students/AryanTripathi.png differ diff --git a/public/static/reviews/students/PinkyYadav.png b/public/static/reviews/students/PinkyYadav.png new file mode 100644 index 00000000..46f083b8 Binary files /dev/null and b/public/static/reviews/students/PinkyYadav.png differ diff --git a/public/static/reviews/students/RitikVerma.png b/public/static/reviews/students/RitikVerma.png new file mode 100644 index 00000000..b95fee2f Binary files /dev/null and b/public/static/reviews/students/RitikVerma.png differ diff --git a/public/static/reviews/students/SayonSai.png b/public/static/reviews/students/SayonSai.png new file mode 100644 index 00000000..24622770 Binary files /dev/null and b/public/static/reviews/students/SayonSai.png differ diff --git a/public/static/reviews/students/SreeLakshmi.png b/public/static/reviews/students/SreeLakshmi.png new file mode 100644 index 00000000..3659d903 Binary files /dev/null and b/public/static/reviews/students/SreeLakshmi.png differ diff --git a/src/actions/accountActions.js b/src/actions/accountActions.js index ad209980..d18d7c30 100755 --- a/src/actions/accountActions.js +++ b/src/actions/accountActions.js @@ -2,6 +2,7 @@ import axios from 'src/utils/axios'; import authService from 'src/services/authService'; export const LOGIN_REQUEST = '@account/login-request'; +export const DISMISS_LOGIN = '@account/dismiss-login'; export const LOGIN_SUCCESS = '@account/login-success'; export const LOGIN_FAILURE = '@account/login-failure'; export const SILENT_LOGIN = '@account/silent-login'; @@ -9,23 +10,15 @@ export const LOGOUT = '@account/logout'; export const REGISTER = '@account/register'; export const UPDATE_PROFILE = '@account/update-profile'; -export function login(email, password) { +export function login() { return async dispatch => { - try { dispatch({ type: LOGIN_REQUEST }); + }; +} - const user = await authService.loginWithEmailAndPassword(email, password); - - dispatch({ - type: LOGIN_SUCCESS, - payload: { - user - } - }); - } catch (error) { - dispatch({ type: LOGIN_FAILURE }); - throw error; - } +export function dismissLogin() { + return async dispatch => { + dispatch({ type: DISMISS_LOGIN }); }; } @@ -42,7 +35,6 @@ export function setUserData(user) { export function logout() { return async dispatch => { authService.logout(); - dispatch({ type: LOGOUT }); diff --git a/src/components/Auth.js b/src/components/Auth.js index fa3b6404..2785aacc 100755 --- a/src/components/Auth.js +++ b/src/components/Auth.js @@ -1,13 +1,11 @@ -import React, { useEffect, useState } from 'react'; +import { useEffect } from 'react'; import { useDispatch } from 'react-redux'; import PropTypes from 'prop-types'; -import SplashScreen from 'src/components/SplashScreen'; import { setUserData, logout } from 'src/actions/accountActions'; import authService from 'src/services/authService'; function Auth({ children }) { const dispatch = useDispatch(); - const [isLoading, setLoading] = useState(true); useEffect(() => { const initAuth = async () => { @@ -15,24 +13,21 @@ function Auth({ children }) { onLogout: () => dispatch(logout()) }); - await authService.handleAuthentication(); + authService.handleAuthentication(); + authService.firebase + .auth() + .onAuthStateChanged((user) => { + dispatch(setUserData(user)); + user.getIdToken().then((token) => { + authService.setSession(token); + }) + }); - console.log(authService.isAuthenticated()); - - if (authService.isAuthenticated()) { - const user = await authService.loadUserProfile(); - await dispatch(setUserData(user)); - } - - setLoading(false); }; - initAuth(); + }, [dispatch]); - if (isLoading) { - return ; - } return children; } diff --git a/src/data/courses/advanced/CompetitiveJava.js b/src/data/courses/advanced/CompetitiveJava.js index eb7bcb71..29aef2df 100644 --- a/src/data/courses/advanced/CompetitiveJava.js +++ b/src/data/courses/advanced/CompetitiveJava.js @@ -8,16 +8,7 @@ export const competitiveJava = { upcoming: 'Oct 1st', schedule: [ { - dates: "1st Oct - 5th Dec", - days: "Sat, Sun, Tue, Thur", - timing: "06:00 PM - 08:00 PM (IST)", - link: "", - priceCut: "22,000 INR", - price: "6,850 INR", - active: true, - }, - { - dates: "10th Jan - 10th Apr", + dates: "10th Jan - 15th Apr", days: "Sat, Sun, Wed", timing: "06:00 PM - 08:00 PM (IST)", link: "", @@ -28,103 +19,46 @@ export const competitiveJava = { ], projects: [ { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - }, - { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - }, - { - title: 'Mobile App Development', + title: 'Under Development', img: '/static/images/projects/p1.png' }, - { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - }, - { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - } ], topics: [ { - title: 'Revising Python Fundamentals', + title: 'Revisiting Java Collection Framework', classes: 'Classes 1-4', subtopics: [ 'In-built Data Structures', - 'Control Flow Statements ', - 'Underatanding OOPS and Modules', - 'Various File operations' + 'Classes, Interfaces and Inheritance', + 'Best practices with Generics and Collections', + 'lurking over recursion problems' ] }, { - title: 'Data Discovery and Visualiation', + title: 'Getting started with Codeforces', classes: 'Classes 5-8', subtopics: [ - 'Numpy and array computation', - 'Processing Images with Numpy', - 'Data Acquisition - Web Scrapping, Web APIs', - 'Data Analysis using Pandas', - 'Importing and Exporting Data ' + 'Start Competitive Programming on Codeforces', + 'Set up Sublime Text for Competitive Coding', + 'Create Template to save time in Competitive Coding' ] }, { - title: 'Classical Machine Learning Algorithms', + title: 'Bit Masking and Manipulation', classes: 'Classes 9-13', subtopics: [ - 'K-Nearest Neighbour search', - 'K-means clustering', - 'Linear Regression', - 'Logistic Regression', - 'Decision trees and Ensembling Learning', - 'Random Forest Classifiers', - 'Support Vector Machines' - ] - }, - { - title: 'Natural Language Processing', - classes: 'Classes 14-18', - subtopics: [ - 'Text generation using Markov Chain', - 'Text classification using Naive Bayes', - 'Deploy ML model with flask on heroku', - 'Create a facebook chatbot with flask' + 'Get, Set, Clear and Update bits', + 'Fast Exponentiation using Bitmasking', + 'Generate Subsets using Bitmasking', + 'Decimal to Binary using Bitwise', + 'Inclusion Exclusion Concept + Implementation', ] }, { - title: 'Deep Neural Networks', - classes: 'Classes 19-22', - subtopics: [ - 'Neural Architectures and Training', - 'Deep Learning with Keras', - 'Convolutions and the GoogLe Net', - 'Transfer Learning with ResNet and AlexNet', - 'Dimensionality Reduction using Auto-encoders' - ] + title: 'Under Development', + classes: 'Classes 14-30', + subtopics: [] }, - { - title: 'Advanced Deep Learning', - classes: 'Classes 23-27', - subtopics: [ - 'Recurrent Neural Network', - 'Long Short Term Memory', - 'Music Generation using LSTM', - 'Predict Gender from name with LSTM', - 'Generative Adversarial Nets' - ] - }, - { - title: 'Reinforcemnt Learning', - classes: 'Classes 27-30', - subtopics: [ - 'Foundational Reinforcemnt Learning', - 'Evolutionary Algorithms and Genetic Algorithms', - 'Deep Q-learning and training', - 'Training on OpenAI Gym Simulaters' - ] - } ], slides: [ { @@ -132,32 +66,20 @@ export const competitiveJava = { subheading: 'Using Natural Language Processing', image: '/static/swipes/bot.png' }, - { - heading: 'Dedect and recognize Faces', - subheading: 'Using Deep Learning', - image: '/static/swipes/cup.png' - }, - { - heading: 'Generate machine made music', - subheading: 'Using Deep Learning', - image: '/static/swipes/cup.png' - }, - { - heading: 'Learn To make Snapchat Filters', - subheading: 'Using Image Processing', - image: '/static/swipes/ar.png' - } ], tags: [ - 'ML', - 'Image Processing', - 'Deep Learning', - 'Neural Network', - 'CNN', - 'Python' + 'Dynamic Programming', + 'Tree', + 'Graph', + 'Bitwise', + 'Pigeonhole Principle', + 'Number Theory', + 'Segment Tree', + 'Fenwick Tree', + 'Decompositions' + ], overview: [ - "While VR is all about taking people into virtual worlds, AR is about bringing virtual elements into your real world. Imagine learning about dinosaurs by having life-sized ones walk in front of you. See how a particular dress fits you just by having it be augmented onto your body using your phone's camera. Want a virtual pet to roam around in your house? AR can make that possible.", - "We’ve been teaching VR for over 12 months but this AR course is BRAND NEW! You’ll learn to design and code Augmented Reality apps using Camp K12's very own HatchXR platform." + "Under Development" ] }; diff --git a/src/data/courses/advanced/MachineLearning.js b/src/data/courses/advanced/MachineLearning.js index 2c291590..fa3494ac 100644 --- a/src/data/courses/advanced/MachineLearning.js +++ b/src/data/courses/advanced/MachineLearning.js @@ -28,24 +28,28 @@ export const machineLearning = { ], projects: [ { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Movie Recommendation System', + img: '/static/images/courses/projects/ml/movie.jpg' }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Face Detection and Recognition', + img: '/static/images/courses/projects/ml/face.jpg' }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Image Classsification with Neural Network', + img: '/static/images/courses/projects/ml/classification.jpg' }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Text Based Sentiment Analysis', + img: '/static/images/courses/projects/ml/sentiment.png' }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Generate new faces with GAN', + img: '/static/images/courses/projects/ml/gan.jpg' + }, + { + title: 'Simmulator Learning with OpenAI Gym', + img: '/static/images/courses/projects/ml/gym.jpg' } ], topics: [ diff --git a/src/data/courses/foundation/DevPython.js b/src/data/courses/foundation/DevPython.js index 5197a1c6..844642b4 100644 --- a/src/data/courses/foundation/DevPython.js +++ b/src/data/courses/foundation/DevPython.js @@ -8,16 +8,7 @@ export const devPython = { upcoming: 'Oct 1st', schedule: [ { - dates: "01st Oct - 05th Dec", - days: "Sat Sun Tue Thur", - timing: "06:00 PM - 08:00 PM (IST)", - link: "", - priceCut: "₹ 15,000", - price: "₹ 4,850", - active: true, - }, - { - dates: "10th Jan - 10th Apr", + dates: "15th Jan - 20th Apr", days: "Sat, Sun, Wed", timing: "06:00 PM - 08:00 PM (IST)", link: "", @@ -28,136 +19,139 @@ export const devPython = { ], projects: [ { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - }, - { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Under Developemnt', + img: '/static/images/courses/projects/sudoku.jpg' }, + + ], + topics: [ { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Getting started with Python', + classes: 'Classes 01-03', + subtopics: [ + 'Flowcharts & Pseudocode', + 'Control Flow Statements ', + 'Setting up IntelliJ idea & Java', + 'Primitive data-types', + 'Input-Output on online judge', + 'Coding standards in Java', + 'Methods along with problems', + 'Setting up debugger' + ] }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' + title: 'Arrays & ArrayList', + classes: 'Classes 04-07', + subtopics: [ + 'Introduction of arrays', + 'Input-output & traversing', + 'Linear Search & Binary Search', + 'Bubble sort, Insertion sort, Selection sort, Count sort', + 'Multi-Dimensional arrays', + 'Rotation in arrays', + 'Intro to ArrayList', + 'Interview problems on Arrays & ArrayList' + ] }, { - title: 'Mobile App Development', - img: '/static/images/projects/p1.png' - } - ], - topics: [ - { - title: 'Revising Python Fundamentals', - classes: 'Classes 1-4', + title: 'Number theory & Bitmasking', + classes: 'Classes 08-09', subtopics: [ - 'In-built Data Structures', - 'Control Flow Statements ', - 'Underatanding OOPS and Modules', - 'Various File operations' + 'Euclidean algorithms', + 'Sieve of eratosthenes', + 'Puzzle problems', + 'Bitwise operators', + 'Advantages & cost-effectiveness', + 'Backtracking with Bitmasking', + 'Interview problems' ] }, { - title: 'Data Discovery and Visualiation', - classes: 'Classes 5-8', + title: 'String & String-Builder', + classes: 'Classes 10-11', subtopics: [ - 'Numpy and array computation', - 'Processing Images with Numpy', - 'Data Acquisition - Web Scrapping, Web APIs', - 'Data Analysis using Pandas', - 'Importing and Exporting Data ' + 'Intro to Strings in Java', + 'Mutability and behavior', + 'String pool and need of equals', + 'String operations', + 'StringBuilder operations and optimization', + 'String Manipulation' ] }, { - title: 'Classical Machine Learning Algorithms', - classes: 'Classes 9-13', + title: 'Space and Time complexity analysis', + classes: 'Classes 12-13', subtopics: [ - 'K-Nearest Neighbour search', - 'K-means clustering', - 'Linear Regression', - 'Logistic Regression', - 'Decision trees and Ensembling Learning', - 'Random Forest Classifiers', - 'Support Vector Machines' + 'Best case, worst case, average case', + 'Sandwich theorem, recurrence relation', + 'Theta, Big-oh, Omega notations', + 'Understanding complexity of loops', + 'Auxiliary vs Total space', + 'Static & Dynamic Memory Allocation' ] }, { - title: 'Natural Language Processing', - classes: 'Classes 14-18', + title: 'Recursion & Backtracking', + classes: 'Classes 14-16', subtopics: [ - 'Text generation using Markov Chain', - 'Text classification using Naive Bayes', - 'Deploy ML model with flask on heroku', - 'Create a facebook chatbot with flask' + 'Recursion- what, why, when?', + 'Control flow & stack trace', + 'understanding recursive tree', + 'Merge sort & Quick sort', + 'Interview problems on Recursion', + 'Backtracking-Sudoku solver, N-Queens, lexo-permute' ] }, { - title: 'Deep Neural Networks', - classes: 'Classes 19-22', + title: 'Object Oriented Programming', + classes: 'Classes 17-18', subtopics: [ - 'Neural Architectures and Training', - 'Deep Learning with Keras', - 'Convolutions and the GoogLe Net', - 'Transfer Learning with ResNet and AlexNet', - 'Dimensionality Reduction using Auto-encoders' + 'Classes & Objects', + 'Constructors, states & behaviors', + 'this keyword', + 'Abstraction, Inheritance, Polymorphism, Encapsulation', + 'Access modifiers', + 'Static & non-static', + 'final, finally, finalize' ] }, { - title: 'Advanced Deep Learning', - classes: 'Classes 23-27', + title: 'Under Developemnt', + classes: 'Classes 19-30', subtopics: [ - 'Recurrent Neural Network', - 'Long Short Term Memory', - 'Music Generation using LSTM', - 'Predict Gender from name with LSTM', - 'Generative Adversarial Nets' ] }, { - title: 'Reinforcemnt Learning', - classes: 'Classes 27-30', + title: 'Dynamic Programming', + classes: 'Classes 29-30', subtopics: [ - 'Foundational Reinforcemnt Learning', - 'Evolutionary Algorithms and Genetic Algorithms', - 'Deep Q-learning and training', - 'Training on OpenAI Gym Simulaters' + 'Understanding the concept in Dynamic Programming', + 'Understanding overlapping subproblems', + 'Memorization vs Tabulation', + 'Top down & bottom-up approach', + '0-1 KnapSack problem', + 'Wildcard pattern problem', + 'Egg drop problem', + 'Matrix chain multiplication' ] } ], slides: [ { - heading: 'Create Facebook Chatbot', - subheading: 'Using Natural Language Processing', - image: '/static/swipes/bot.png' + heading: 'Automatic Sudoku Solver', + subheading: 'Using Back Tracking', + image: '/static/images/courses/projects/sudoku.jpg' }, - { - heading: 'Dedect and recognize Faces', - subheading: 'Using Deep Learning', - image: '/static/swipes/cup.png' - }, - { - heading: 'Generate machine made music', - subheading: 'Using Deep Learning', - image: '/static/swipes/cup.png' - }, - { - heading: 'Learn To make Snapchat Filters', - subheading: 'Using Image Processing', - image: '/static/swipes/ar.png' - } ], tags: [ - 'ML', - 'Image Processing', - 'Deep Learning', - 'Neural Network', - 'CNN', - 'Python' + 'Django', + 'Rest API', + 'Mongo DB', + 'Relational DB', + 'Authentication', + 'User Management', ], overview: [ - "While VR is all about taking people into virtual worlds, AR is about bringing virtual elements into your real world. Imagine learning about dinosaurs by having life-sized ones walk in front of you. See how a particular dress fits you just by having it be augmented onto your body using your phone's camera. Want a virtual pet to roam around in your house? AR can make that possible.", - "We’ve been teaching VR for over 12 months but this AR course is BRAND NEW! You’ll learn to design and code Augmented Reality apps using Camp K12's very own HatchXR platform." + "Under Developemnt" ] }; diff --git a/src/data/recommendations.js b/src/data/recommendations.js index 2c9d04d4..9d65604b 100644 --- a/src/data/recommendations.js +++ b/src/data/recommendations.js @@ -24,8 +24,42 @@ export const recommendations = [ id: "4", name: "Shantanu Gupta", avatar: "/static/reviews/students/ShantanuGupta.png", - title: "Father to 9yr Old", text: "I really found my cause to do code. What's yours?? Ever wonder.. Anuj bhaiya is osm mentor for us, He helped a lot to clear all doubts in projects asa ML basics. Really supportive mentors, and all Team members." }, + { + id: "5", + name: "Aryan Tripathi", + avatar: "/static/reviews/students/AryanTripathi.png", + text: + "Code for Cause is the best platform to learn and grow together. Rarely does someone put this much effort in order to teach others.@anuj garg @kunal kushwaha @ekta mishra @ganga chaturvedi. Your efforts deserve to be appreciated." + }, + { + id: "9", + name: "Pinky Yadav", + avatar: "/static/reviews/students/PinkyYadav.png", + text: + "I have learn a lot in the bootcamp , the mentors were extremely helpful and dedicated , it was the great learning. each and every concept so clearly and you can ask as many doubts as you have." + }, + { + id: "6", + name: "Sayon Sai", + avatar: "/static/reviews/students/SayonSai.png", + text: + "Code for Cause provides the best Machine Learning / Deep Learning / DSA tutorials not available in any other platform. I totally recommend learning from Code for Cause." + }, + { + id: "7", + name: "Ritik Verma", + avatar: "/static/reviews/students/RitikVerma.png", + text: + "It's a great place to learn and succeed and most importantly if you are someone who wants to contribute to the society it's the best place you can think of ." + }, + { + id: "8", + name: "SreeLakshmi", + avatar: "/static/reviews/students/SreeLakshmi.png", + text: + "The effort taken by the people in this community is worth appreciating. Trust me if I do some coding today, it's because of Code for Cause!" + } ] diff --git a/src/layouts/MainLayout/TopBar/Account.js b/src/layouts/MainLayout/TopBar/Account.js new file mode 100644 index 00000000..6c25fc32 --- /dev/null +++ b/src/layouts/MainLayout/TopBar/Account.js @@ -0,0 +1,193 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; +import PersonIcon from '@material-ui/icons/Person'; + +import { + Typography, + Dialog, + DialogContent, + Button, + Box, + Avatar, + Menu, + MenuItem +} from '@material-ui/core'; +import authService from 'src/services/authService'; +import StyledFirebaseAuth from 'react-firebaseui/StyledFirebaseAuth'; +import { login, dismissLogin, logout } from 'src/actions/accountActions'; + +function Account() { + const user = useSelector(state => state.account.user); + const loginFlag = useSelector(state => state.account.login); + const [anchorEl, setAnchorEl] = React.useState(null); + const dispatch = useDispatch(); + + const handleLogout = () => { + handleCloseMenu(); + dispatch(logout()); + dispatch(dismissLogin()); + }; + + const handleClose = () => { + dispatch(dismissLogin()); + }; + + const handleLoginOpen = () => { + dispatch(login()); + }; + + const handleOpenMenu = event => { + setAnchorEl(event.currentTarget); + }; + + const handleCloseMenu = () => { + setAnchorEl(null); + }; + + const truncate = input => { + const first = input.split(' ')[0]; + if (first.length > 13) { + return first.substring(0, 10) + '...'; + } + return first; + }; + + return ( +
+
+ {!!user ? ( + + + {user.photoURL ? ( + avatar + ) : ( + + )} + + + + + {`Hello ${truncate(user.displayName)}`} + + + + ) : ( + + )} + + + + + + Login / Sign Up + + + Explore learning with + + + Open Source + + + + + + + + + Profile + My account + Logout + +
+
+ ); +} + +export default Account; diff --git a/src/layouts/MainLayout/TopBar/OpenSource.js b/src/layouts/MainLayout/TopBar/OpenSource.js deleted file mode 100644 index dd4544df..00000000 --- a/src/layouts/MainLayout/TopBar/OpenSource.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; - -import { Typography } from '@material-ui/core'; -// import authService from 'src/services/authService'; - -const OpenSource = () => ( -
-
- Open Source -
-
-); - -export default OpenSource; diff --git a/src/layouts/MainLayout/TopBar/index.js b/src/layouts/MainLayout/TopBar/index.js index 7883b09d..3d72cd5d 100755 --- a/src/layouts/MainLayout/TopBar/index.js +++ b/src/layouts/MainLayout/TopBar/index.js @@ -12,7 +12,7 @@ import { } from '@material-ui/core'; import Logo from 'src/components/Logo'; import Item from './Item'; -import OpenSource from './OpenSource'; +import OpenSource from './Account'; import IconButton from '@material-ui/core/IconButton'; import MenuIcon from '@material-ui/icons/Menu'; import CloseIcon from '@material-ui/icons/Close'; diff --git a/src/reducers/accountReducer.js b/src/reducers/accountReducer.js index 1b13a42d..df1fe3fa 100755 --- a/src/reducers/accountReducer.js +++ b/src/reducers/accountReducer.js @@ -2,6 +2,7 @@ import produce from 'immer'; import { LOGIN_REQUEST, + DISMISS_LOGIN, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT, @@ -10,15 +11,21 @@ import { } from 'src/actions/accountActions'; const initialState = { - user: null + user: null, + login: null }; const accountReducer = (state = initialState, action) => { switch (action.type) { case LOGIN_REQUEST: { return produce(state, draft => { - // Ensure we clear current session - draft.user = null; + draft.login = true; + }); + } + + case DISMISS_LOGIN: { + return produce(state, draft => { + draft.login = false; }); } diff --git a/src/services/authService.js b/src/services/authService.js index 85bde2fa..5547afaf 100755 --- a/src/services/authService.js +++ b/src/services/authService.js @@ -1,13 +1,30 @@ import jwtDecode from 'jwt-decode'; import axios from 'src/utils/axios'; -import Keycloak from 'keycloak-js'; + +import firebase from 'firebase'; class AuthService { - keycloak = Keycloak({ - url: 'https://authbox.codeforcause.org/auth', - realm: 'CFC', - clientId: 'Dashboard' - }); + // Configure Firebase. + config = { + apiKey: 'AIzaSyAbqqXtHNIuNrsamkCxRk9sOuMO-ZWDiEk', + authDomain: 'codeforcauseorg.firebaseapp.com' + // ... + }; + + // Configure FirebaseUI. + uiConfig = { + // Popup signin flow rather than redirect flow. + signInFlow: 'popup', + signInOptions: [ + firebase.auth.GoogleAuthProvider.PROVIDER_ID + ], + callbacks: { + // Avoid redirects after sign-in. + signInSuccessWithAuthResult: () => false + } + }; + + firebase = firebase; user = {}; @@ -29,11 +46,7 @@ class AuthService { }; handleAuthentication() { - return new Promise(resolve => { - this.keycloak.init().then(authenticated => { - resolve(authenticated); - }); - }); + this.firebase.initializeApp(this.config); } loadUserProfile() { @@ -41,7 +54,6 @@ class AuthService { this.keycloak .loadUserProfile() .then(profile => { - console.log(JSON.stringify(profile)); resolve(profile); }) .catch(function() { @@ -80,12 +92,13 @@ class AuthService { }); logout = () => { - this.keycloak.logout({}); + this.firebase.auth().signOut(); this.setSession(null); }; setSession = accessToken => { if (accessToken) { + console.log(accessToken); localStorage.setItem('accessToken', accessToken); axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`; } else { diff --git a/src/views/pages/Courses/AlgoJavaView/index.js b/src/views/pages/Courses/AlgoJavaView/index.js index dc02bf4d..884d52a7 100755 --- a/src/views/pages/Courses/AlgoJavaView/index.js +++ b/src/views/pages/Courses/AlgoJavaView/index.js @@ -21,7 +21,7 @@ function CoursesView() { const classes = useStyles(); return ( - + {/* */} {/* */} diff --git a/src/views/pages/Courses/CompetitiveJavaView/index.js b/src/views/pages/Courses/CompetitiveJavaView/index.js index 2e7f1418..e3ad3d7f 100755 --- a/src/views/pages/Courses/CompetitiveJavaView/index.js +++ b/src/views/pages/Courses/CompetitiveJavaView/index.js @@ -21,7 +21,7 @@ function CoursesView() { const classes = useStyles(); return ( - + {/* */} diff --git a/src/views/pages/Courses/MachineLearningView/index.js b/src/views/pages/Courses/MachineLearningView/index.js index ff2903ab..1c3f2de3 100755 --- a/src/views/pages/Courses/MachineLearningView/index.js +++ b/src/views/pages/Courses/MachineLearningView/index.js @@ -21,7 +21,7 @@ function CoursesView() { const classes = useStyles(); return ( - + {/* */} diff --git a/src/views/pages/Courses/PythonDevelopmentView/index.js b/src/views/pages/Courses/PythonDevelopmentView/index.js index 10b45d5b..e20884ee 100755 --- a/src/views/pages/Courses/PythonDevelopmentView/index.js +++ b/src/views/pages/Courses/PythonDevelopmentView/index.js @@ -21,7 +21,7 @@ function CoursesView() { const classes = useStyles(); return ( - + {/* */} diff --git a/src/views/pages/Courses/WebFullStakView/index.js b/src/views/pages/Courses/WebFullStakView/index.js index 0d5537c8..32b3bac4 100755 --- a/src/views/pages/Courses/WebFullStakView/index.js +++ b/src/views/pages/Courses/WebFullStakView/index.js @@ -21,7 +21,7 @@ function CoursesView() { const classes = useStyles(); return ( - + {/* */} diff --git a/src/views/pages/CoursesView/Hero.js b/src/views/pages/CoursesView/Hero.js index 24862b82..79ca4cdd 100755 --- a/src/views/pages/CoursesView/Hero.js +++ b/src/views/pages/CoursesView/Hero.js @@ -12,6 +12,9 @@ import { makeStyles } from '@material-ui/core'; +import { login } from 'src/actions/accountActions'; +import { useDispatch, useSelector } from 'react-redux'; + const background = 'linear-gradient(270.72deg, #180255 0.25%, #000000 97.54%)'; const useStyles = makeStyles(theme => ({ @@ -70,6 +73,13 @@ const useStyles = makeStyles(theme => ({ function Hero({ className, ...rest }) { const classes = useStyles(); + const user = useSelector(state => state.account.user); + + const dispatch = useDispatch(); + const handleLoginOpen = () => { + dispatch(login()); + }; + return (
@@ -83,37 +93,47 @@ function Hero({ className, ...rest }) { className={clsx(classes.extraPadding, className)} > - Workshops, Bootcamps + Industry Grade Courses - & Webinars + with Live Projects
- codeforcauseimg + codeforcauseimg
- - Login To get regular Updates. - + {!!user ? ( + It's the time to learn from Experts. + ) : ( + + Login To get regular Updates. + + )} - + {!!user ? ( + + ) : ( + + )} @@ -123,10 +143,7 @@ function Hero({ className, ...rest }) {
- codeforcauseimg + codeforcauseimg
diff --git a/src/views/pages/CoursesView/index.js b/src/views/pages/CoursesView/index.js index 082a1f45..199717e3 100755 --- a/src/views/pages/CoursesView/index.js +++ b/src/views/pages/CoursesView/index.js @@ -5,7 +5,7 @@ import Hero from './Hero'; import Footer from '../common/Footer'; import CTA from './CTA'; import Courses from './Courses'; -import Apply from './Apply'; +import Apply from '../common/Apply'; const useStyles = makeStyles(() => ({ root: {} @@ -15,7 +15,7 @@ function EventsView() { const classes = useStyles(); return ( - + diff --git a/src/views/pages/EventsView/Apply.js b/src/views/pages/EventsView/Apply.js deleted file mode 100755 index 7450f2fb..00000000 --- a/src/views/pages/EventsView/Apply.js +++ /dev/null @@ -1,122 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import clsx from 'clsx'; - -import { - Box, - Grid, - Typography, - makeStyles, - TextField, - Button -} from '@material-ui/core'; - -const useStyles = makeStyles(theme => ({ - root: { - minHeight: '350px', - color: '#FFF', - padding: '100px 70px', - [theme.breakpoints.down('md')]: { - paddingLeft: 15, - paddingRight: 15 - } - }, - main: { - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - padding: '0px', - color: '#FFF' - }, - btn: { - backgroundColor: '#A60000', - color: '#ffffff', - textTransform: 'capitalize', - [theme.breakpoints.down('sm')]: { - width: '100%' - }, - '&:hover': { - backgroundColor: 'rgba(166, 0, 0, 0.8)' - } - }, - applyleft: { - display: 'flex', - alignItems: 'center', - justifyContent: 'center' - }, - textDetails: { - '& .MuiOutlinedInput-root': { - '& fieldset': { - borderColor: 'rgba(255, 255, 255, 0.2)' - }, - '&:hover fieldset': { - borderColor: 'rgba(255, 255, 255, 0.4)' - }, - '&.Mui-focused fieldset': { - borderColor: 'rgba(255, 255, 255, 0.6)' - } - } - } -})); - -function Apply({ className, ...rest }) { - const classes = useStyles(); - - return ( -
- - -
- - Tell Us What You Want To Learn Next - - - - - -
-
-
-
- ); -} - -Apply.propTypes = { - className: PropTypes.string -}; - -export default Apply; diff --git a/src/views/pages/EventsView/Events.js b/src/views/pages/EventsView/Events.js index 104e90c6..31e15f5a 100755 --- a/src/views/pages/EventsView/Events.js +++ b/src/views/pages/EventsView/Events.js @@ -89,8 +89,8 @@ const useStyles = makeStyles(theme => ({ top: 18, zIndex: 1, borderRadius: '0px 5px 5px 0px', - color: 'black', - backgroundColor: '#00FF75' + color: 'white', + backgroundColor: '#000000' } })); diff --git a/src/views/pages/EventsView/Hero.js b/src/views/pages/EventsView/Hero.js index 24862b82..76cb3e0d 100755 --- a/src/views/pages/EventsView/Hero.js +++ b/src/views/pages/EventsView/Hero.js @@ -12,6 +12,9 @@ import { makeStyles } from '@material-ui/core'; +import { login } from 'src/actions/accountActions'; +import { useDispatch, useSelector } from 'react-redux'; + const background = 'linear-gradient(270.72deg, #180255 0.25%, #000000 97.54%)'; const useStyles = makeStyles(theme => ({ @@ -69,6 +72,11 @@ const useStyles = makeStyles(theme => ({ function Hero({ className, ...rest }) { const classes = useStyles(); + const user = useSelector(state => state.account.user); + const dispatch = useDispatch(); + const handleLoginOpen = () => { + dispatch(login()); + }; return (
@@ -97,27 +105,40 @@ function Hero({ className, ...rest }) { - - Login To get regular Updates. - + {!!user ? ( + It's the time to learn from Experts. + ) : ( + + Login To get regular Updates. + + )} - + {!!user ? ( + + ) : ( + + )} - + diff --git a/src/views/pages/EventsView/index.js b/src/views/pages/EventsView/index.js index 8d7e4fb3..13bc7d79 100755 --- a/src/views/pages/EventsView/index.js +++ b/src/views/pages/EventsView/index.js @@ -5,7 +5,7 @@ import Hero from './Hero'; import Footer from '../common/Footer'; import CTA from './CTA'; import Events from './Events'; -import Apply from './Apply'; +import Apply from '../common/Apply'; const useStyles = makeStyles(() => ({ root: {} @@ -15,7 +15,7 @@ function EventsView() { const classes = useStyles(); return ( - + diff --git a/src/views/pages/HomeView/Courses.js b/src/views/pages/HomeView/Courses.js index d0d4c273..fb0f6b62 100644 --- a/src/views/pages/HomeView/Courses.js +++ b/src/views/pages/HomeView/Courses.js @@ -122,7 +122,6 @@ export default function Courses() { const [value, setValue] = React.useState(0); const handleChange = (event, newValue) => { - console.log(newValue); setValue(newValue); }; diff --git a/src/views/pages/HomeView/Events.js b/src/views/pages/HomeView/Events.js index 8742b22d..9fb88cda 100755 --- a/src/views/pages/HomeView/Events.js +++ b/src/views/pages/HomeView/Events.js @@ -94,8 +94,8 @@ const useStyles = makeStyles(theme => ({ top: 18, zIndex: 1, borderRadius: '0px 5px 5px 0px', - color: 'black', - backgroundColor: '#00FF75' + color: 'white', + backgroundColor: '#000000' } })); diff --git a/src/views/pages/HomeView/WhatWeStandFor.js b/src/views/pages/HomeView/WhatWeStandFor.js index 568c8839..f3ffed05 100755 --- a/src/views/pages/HomeView/WhatWeStandFor.js +++ b/src/views/pages/HomeView/WhatWeStandFor.js @@ -31,7 +31,6 @@ const useStyles = makeStyles(theme => ({ const WhatWeStandFor = ({ className, ...rest }) => { const classes = useStyles(); - // const { user } = useSelector((state) => state.account); return ( diff --git a/src/views/pages/ProfileView/UserEdit.js b/src/views/pages/ProfileView/UserEdit.js index 25123ad6..0816919c 100644 --- a/src/views/pages/ProfileView/UserEdit.js +++ b/src/views/pages/ProfileView/UserEdit.js @@ -23,7 +23,6 @@ export class UserEdit extends React.Component { console.log(errors)} > -