diff --git a/.env.example b/.env.example index a59365df..ef2b3647 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,2 @@ #The client ID should NOT start with http or https! This will cause authentication failure! -REACT_APP_GOOGLE_CLIENTID= +REACT_APP_GOOGLE_CLIENTID= \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 996202f9..2c0fbacc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -43,7 +43,7 @@ "curly": "warn", "no-lonely-if": "warn", "no-console": [ - "error", + "warn", { "allow": [ "warn", diff --git a/.nvmrc b/.nvmrc index 4e310225..094e7b6f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -10.13 +10.13 \ No newline at end of file diff --git a/README.md b/README.md index f705d8d7..7bffe6fc 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,17 @@ The Engaging Computing Group develops new technologies to enable learners—yout ## Status [![CircleCI](https://circleci.com/gh/engaging-computing/MYR.svg?style=shield)](https://circleci.com/gh/engaging-computing/MYR) -## Change Log - 2.3.1 -> 2.4.0 -- Added ability to import custom GLTF models into a scene -- Added a keyboard shortcut information menu -- Added a slider for setting the movement speed in a scene +## Change Log - 2.4.0 -> 3.0.0 +- Removed undocumented aliases for `box` and `prisim` + - All scenes using these aliases have been automatically changed to reflect the new API +- Changed the behavior of `getRandomColor` to only return a random color +- Added `setRandomColor` to behave like `getRandomColor` did previously + - A migration has updated scenes to be properly using these functions + - If your scene broke as a result of this update, please let us know [support@learnmyr.org](mailto:support@learnmyr.org) +- Misc. Package dependency updates +- Moved Model and Asset reference to their own page +- Removed broken links to non-existent example pages + ## Acknowledgments diff --git a/img/grid_alpha_0.png b/img/grid_alpha_0.png new file mode 100644 index 00000000..0d4d9c0e Binary files /dev/null and b/img/grid_alpha_0.png differ diff --git a/package-lock.json b/package-lock.json index 60a9a3a7..fe5fc019 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,18 @@ { "name": "myr", - "version": "2.4.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "myr", - "version": "2.4.0", + "version": "3.0.0", "dependencies": { "@engaging-computing/aframe-physics-system": "^4.0.0", - "@material-ui/core": "^4.11.2", + "@material-ui/core": "^4.12.3", "aframe": "^1.0.4", "aframe-animation-component": "^5.0.0", - "aframe-environment-component": "^1.0.0", + "aframe-environment-component": "^1.3.1", "aframe-extras": "^4.1.2", "aframe-react": "^4.4.0", "bootstrap": "^4.6.0", @@ -27,26 +27,26 @@ "qrcode.react": "^1.0.1", "react": "^16.8.4", "react-ace": "^6.0.0", - "react-color": "^2.17.0", + "react-color": "^2.19.3", "react-dom": "^16.2.0", "react-google-login": "^5.1.19", "react-progressive-image": "^0.3.0", "react-redux": "^5.0.7", "react-router-dom": "^4.2.2", "react-select": "^3.0.4", - "reactour": "^1.9.1", + "reactour": "^1.18.6", "redux": "^3.7.2", "redux-thunk": "^2.3.0", - "socket.io-client": "^4.0.0", + "socket.io-client": "^4.3.2", "source-map-explorer": "^2.0.0", - "styled-components": "^5.0.0", + "styled-components": "^5.3.3", "three": "^0.126.1", "ua-parser-js": "^0.7.24" }, "devDependencies": { "@babel/core": "^7.9.0", "enzyme": "^3.3.0", - "enzyme-adapter-react-16": "^1.1.1", + "enzyme-adapter-react-16": "^1.15.6", "esdoc": "^1.1.0", "esdoc-standard-plugin": "^1.0.0", "eslint-plugin-react": "^7.13.0", @@ -1837,11 +1837,14 @@ } }, "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==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dependencies": { "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { @@ -1970,14 +1973,6 @@ "@emotion/utils": "0.11.3" } }, - "node_modules/@emotion/core/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/@emotion/css": { "version": "10.0.27", "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", @@ -3156,14 +3151,14 @@ } }, "node_modules/@material-ui/core": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.2.tgz", - "integrity": "sha512-/D1+AQQeYX/WhT/FUk78UCRj8ch/RCglsQLYujYTIqPSJlwZHKcvHidNeVhODXeApojeXjkl0tWdk5C9ofwOkQ==", + "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.11.2", - "@material-ui/system": "^4.11.2", - "@material-ui/types": "^5.1.0", + "@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", @@ -3175,54 +3170,66 @@ }, "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/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/@material-ui/styles": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.2.tgz", - "integrity": "sha512-xbItf8zkfD3FuGoD9f2vlcyPf9jTEtj9YTJoNNV+NMWaSAHXgrW6geqRoo/IwBuMjqpwqsZhct13e2nUyU9Ljw==", + "node_modules/@material-ui/core/node_modules/@material-ui/styles": { + "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/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/styles/node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/@material-ui/system": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.2.tgz", - "integrity": "sha512-BELFJEel5E+5DMiZb6XXT3peWRn6UixRvBtKwSxqntmD0+zwbbfCij6jtGwwdJhN1qX/aXrKu10zX31GBaeR7A==", + "node_modules/@material-ui/core/node_modules/@material-ui/system": { + "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.11.2", @@ -3231,14 +3238,23 @@ }, "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==" - }, - "node_modules/@material-ui/utils": { + "node_modules/@material-ui/core/node_modules/@material-ui/utils": { "version": "4.11.2", "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", @@ -3249,6 +3265,31 @@ }, "engines": { "node": ">=8.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@material-ui/core/node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@nodelib/fs.scandir": { @@ -3446,11 +3487,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/@rooks/use-mutation-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-3.4.0.tgz", - "integrity": "sha512-q10+v3WbvSt5fj55VMikTPaUZ9Yl+IYDsymodWr2+cKx0PD97VBeWYjk3xHJPqJgejBHwnrwiNkJKGFY5iW+WQ==" - }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -3469,6 +3505,11 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@socket.io/component-emitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz", + "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" + }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz", @@ -3818,11 +3859,6 @@ "@babel/types": "^7.3.0" } }, - "node_modules/@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" - }, "node_modules/@types/eslint": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", @@ -4595,9 +4631,9 @@ } }, "node_modules/aframe-environment-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/aframe-environment-component/-/aframe-environment-component-1.1.0.tgz", - "integrity": "sha512-HbxWPtu52EbywVbEBxhn5DUbfVbUc5RCPSaCXB2MqGibDt1xIURy+lMjdg0Ki2EEg+F+STQ/mwQRGPZYFm2uPg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/aframe-environment-component/-/aframe-environment-component-1.3.1.tgz", + "integrity": "sha512-tRKlYqXQbVhIvgBgwfeanQuM1T3+ONjEhiDsoxRtKHpuv/XycpMy9cbnZVE4BR9QXckDK/JesqQpJ1YYaRiCEg==" }, "node_modules/aframe-extras": { "version": "4.2.0", @@ -4669,6 +4705,12 @@ "prop-types": "^15.7.2", "prop-types-exact": "^1.2.0", "react-is": "^16.13.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0-alpha" } }, "node_modules/ajv": { @@ -4919,13 +4961,17 @@ } }, "node_modules/array.prototype.find": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", - "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz", + "integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.4" + "es-abstract": "^1.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flat": { @@ -5529,14 +5575,6 @@ "resolve": "^1.12.0" } }, - "node_modules/babel-plugin-macros/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/babel-plugin-named-asset-import": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", @@ -6067,9 +6105,9 @@ } }, "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", "engines": { "node": ">= 0.6.0" } @@ -6979,9 +7017,9 @@ } }, "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "node_modules/clean-css": { "version": "4.2.3", @@ -7182,7 +7220,8 @@ "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "node_modules/compose-function": { "version": "3.0.3", @@ -8562,7 +8601,13 @@ "node_modules/detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, "node_modules/detect-port-alt": { "version": "1.1.6", @@ -8998,18 +9043,18 @@ } }, "node_modules/engine.io-client": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz", - "integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.0.3.tgz", + "integrity": "sha512-IH8ZhDIwiLv0d/wXVzmjfV9Y82hbJIDhCGSVUV8o1kcpDe2I6Y3bZA3ZbJy4Ls7k7IVmcy/qn4k9RKWFhUGf5w==", "dependencies": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.0.0", "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", + "engine.io-parser": "~5.0.0", "has-cors": "1.1.0", "parseqs": "0.0.6", "parseuri": "0.0.6", - "ws": "~7.4.2", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0", "yeast": "0.1.2" } }, @@ -9030,11 +9075,11 @@ } }, "node_modules/engine.io-client/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -9050,14 +9095,14 @@ } }, "node_modules/engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", + "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", "dependencies": { - "base64-arraybuffer": "0.1.4" + "base64-arraybuffer": "~1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, "node_modules/enhanced-resolve": { @@ -9176,20 +9221,28 @@ } }, "node_modules/enzyme-adapter-react-16": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz", - "integrity": "sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", + "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", "dev": true, "dependencies": { - "enzyme-adapter-utils": "^1.13.0", - "enzyme-shallow-equal": "^1.0.1", + "enzyme-adapter-utils": "^1.14.0", + "enzyme-shallow-equal": "^1.0.4", "has": "^1.0.3", - "object.assign": "^4.1.0", - "object.values": "^1.1.1", + "object.assign": "^4.1.2", + "object.values": "^1.1.2", "prop-types": "^15.7.2", - "react-is": "^16.12.0", + "react-is": "^16.13.1", "react-test-renderer": "^16.0.0-0", "semver": "^5.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^16.0.0-0", + "react-dom": "^16.0.0-0" } }, "node_modules/enzyme-adapter-react-16/node_modules/semver": { @@ -9202,17 +9255,24 @@ } }, "node_modules/enzyme-adapter-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz", - "integrity": "sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", + "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", "dev": true, "dependencies": { - "airbnb-prop-types": "^2.15.0", - "function.prototype.name": "^1.1.2", - "object.assign": "^4.1.0", - "object.fromentries": "^2.0.2", + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.3", + "has": "^1.0.3", + "object.assign": "^4.1.2", + "object.fromentries": "^2.0.3", "prop-types": "^15.7.2", "semver": "^5.7.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" } }, "node_modules/enzyme-adapter-utils/node_modules/semver": { @@ -9225,13 +9285,16 @@ } }, "node_modules/enzyme-shallow-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz", - "integrity": "sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", + "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==", "dev": true, "dependencies": { "has": "^1.0.3", - "object-is": "^1.0.2" + "object-is": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/errno": { @@ -9264,22 +9327,25 @@ } }, "node_modules/es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -11499,9 +11565,20 @@ } }, "node_modules/focus-lock": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.8.tgz", - "integrity": "sha512-vkHTluRCoq9FcsrldC0ulQHiyBYgVJB2CX53I8r0nTC6KnEij7Of0jpBspjt3/CuNb6fyoj3aOh9J2HgQUM0og==" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", + "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/focus-lock/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/focus-outline-manager": { "version": "1.0.2", @@ -11904,17 +11981,21 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz", - "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "functions-have-names": "^1.2.0" + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/functional-red-black-tree": { @@ -11924,10 +12005,13 @@ "dev": true }, "node_modules/functions-have-names": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", - "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==", - "dev": true + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", + "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -11999,6 +12083,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -12438,14 +12538,6 @@ "value-equal": "^1.0.1" } }, - "node_modules/history/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -13318,14 +13410,6 @@ "node": ">=0.8.19" } }, - "node_modules/indefinite-observable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz", - "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==", - "dependencies": { - "symbol-observable": "1.2.0" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -13834,6 +13918,15 @@ "node": ">=6" } }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -13885,6 +13978,18 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -16828,88 +16933,91 @@ } }, "node_modules/jss": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.5.0.tgz", - "integrity": "sha512-B6151NvG+thUg3murLNHRPLxTLwQ13ep4SH5brj4d8qKtogOx/jupnpfkPGSHPqvcwKJaCLctpj2lEk+5yGwMw==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.8.2.tgz", + "integrity": "sha512-FkoUNxI329CKQ9OQC8L72MBF9KPf5q8mIupAJ5twU7G7XREW7ahb+7jFfrjZ4iy1qvhx1HwIWUIvkZBDnKkEdQ==", "dependencies": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", - "indefinite-observable": "^2.0.1", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" } }, "node_modules/jss-plugin-camel-case": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.5.0.tgz", - "integrity": "sha512-GSjPL0adGAkuoqeYiXTgO7PlIrmjv5v8lA6TTBdfxbNYpxADOdGKJgIEkffhlyuIZHlPuuiFYTwUreLUmSn7rg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.2.tgz", + "integrity": "sha512-2INyxR+1UdNuKf4v9It3tNfPvf7IPrtkiwzofeKuMd5D58/dxDJVUQYRVg/n460rTlHUfsEQx43hDrcxi9dSPA==", "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.5.0" + "jss": "10.8.2" } }, "node_modules/jss-plugin-default-unit": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.5.0.tgz", - "integrity": "sha512-rsbTtZGCMrbcb9beiDd+TwL991NGmsAgVYH0hATrYJtue9e+LH/Gn4yFD1ENwE+3JzF3A+rPnM2JuD9L/SIIWw==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.2.tgz", + "integrity": "sha512-UZ7cwT9NFYSG+SEy7noRU50s4zifulFdjkUNKE+u6mW7vFP960+RglWjTgMfh79G6OENZmaYnjHV/gcKV4nSxg==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "node_modules/jss-plugin-global": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.5.0.tgz", - "integrity": "sha512-FZd9+JE/3D7HMefEG54fEC0XiQ9rhGtDHAT/ols24y8sKQ1D5KIw6OyXEmIdKFmACgxZV2ARQ5pAUypxkk2IFQ==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.8.2.tgz", + "integrity": "sha512-UaYMSPsYZ7s/ECGoj4KoHC2jwQd5iQ7K+FFGnCAILdQrv7hPmvM2Ydg45ThT/sH46DqktCRV2SqjRuxeBH8nRA==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "node_modules/jss-plugin-nested": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.5.0.tgz", - "integrity": "sha512-ejPlCLNlEGgx8jmMiDk/zarsCZk+DV0YqXfddpgzbO9Toamo0HweCFuwJ3ZO40UFOfqKwfpKMVH/3HUXgxkTMg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.8.2.tgz", + "integrity": "sha512-acRvuPJOb930fuYmhkJaa994EADpt8TxI63Iyg96C8FJ9T2xRyU5T6R1IYKRwUiqZo+2Sr7fdGzRTDD4uBZaMA==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0", + "jss": "10.8.2", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-props-sort": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.5.0.tgz", - "integrity": "sha512-kTLRvrOetFKz5vM88FAhLNeJIxfjhCepnvq65G7xsAQ/Wgy7HwO1BS/2wE5mx8iLaAWC6Rj5h16mhMk9sKdZxg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.2.tgz", + "integrity": "sha512-wqdcjayKRWBZnNpLUrXvsWqh+5J5YToAQ+8HNBNw0kZxVvCDwzhK2Nx6AKs7p+5/MbAh2PLgNW5Ym/ysbVAuqQ==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "node_modules/jss-plugin-rule-value-function": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.5.0.tgz", - "integrity": "sha512-jXINGr8BSsB13JVuK274oEtk0LoooYSJqTBCGeBu2cG/VJ3+4FPs1gwLgsq24xTgKshtZ+WEQMVL34OprLidRA==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.2.tgz", + "integrity": "sha512-bW0EKAs+0HXpb6BKJhrn94IDdiWb0CnSluTkh0rGEgyzY/nmD1uV/Wf6KGlesGOZ9gmJzQy+9FFdxIUID1c9Ug==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0", + "jss": "10.8.2", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.5.0.tgz", - "integrity": "sha512-rux3gmfwDdOKCLDx0IQjTwTm03IfBa+Rm/hs747cOw5Q7O3RaTUIMPKjtVfc31Xr/XI9Abz2XEupk1/oMQ7zRA==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.2.tgz", + "integrity": "sha512-DeGv18QsSiYLSVIEB2+l0af6OToUe0JB+trpzUxyqD2QRC/5AzzDrCrYffO5AHZ81QbffYvSN/pkfZaTWpRXlg==", "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.5.0" + "jss": "10.8.2" } }, "node_modules/jss/node_modules/csstype": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz", - "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==" + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, "node_modules/jsx-ast-utils": { "version": "3.2.0", @@ -21096,33 +21204,21 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/react-clientside-effect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", - "integrity": "sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A==", - "dependencies": { - "@babel/runtime": "^7.0.0" - } - }, - "node_modules/react-clientside-effect/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/react-color": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz", - "integrity": "sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ==", + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", + "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", "dependencies": { "@icons/material": "^0.2.4", - "lodash": "^4.17.11", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", "material-colors": "^1.2.1", "prop-types": "^15.5.10", "reactcss": "^1.2.0", "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "react": "*" } }, "node_modules/react-dev-utils": { @@ -21376,27 +21472,6 @@ "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", "dev": true }, - "node_modules/react-focus-lock": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.2.1.tgz", - "integrity": "sha512-47g0xYcCTZccdzKRGufepY8oZ3W1Qg+2hn6u9SHZ0zUB6uz/4K4xJe7yYFNZ1qT6m+2JDm82F6QgKeBTbjW4PQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "focus-lock": "^0.6.6", - "prop-types": "^15.6.2", - "react-clientside-effect": "^1.2.2", - "use-callback-ref": "^1.2.1", - "use-sidecar": "^1.0.1" - } - }, - "node_modules/react-focus-lock/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/react-google-login": { "version": "5.1.21", "resolved": "https://registry.npmjs.org/react-google-login/-/react-google-login-5.1.21.tgz", @@ -21443,14 +21518,6 @@ "react-lifecycles-compat": "^3.0.0" } }, - "node_modules/react-redux/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/react-redux/node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -21697,14 +21764,6 @@ "react-transition-group": "^4.3.0" } }, - "node_modules/react-select/node_modules/@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, "node_modules/react-select/node_modules/dom-helpers": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", @@ -21757,19 +21816,92 @@ } }, "node_modules/reactour": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.18.0.tgz", - "integrity": "sha512-de0Pa5NkDU6I8IyGl+7+rWdDcx3AskmJYK/yIKU11D9EPIN79qzn852gjJgvH/jXZqeEfa+rmMWg72vA0UkmgA==", + "version": "1.18.6", + "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.18.6.tgz", + "integrity": "sha512-6Dm3bkqf3wKfzLL6laMez2xVO6iZ9o5CFG4Na1ttE0OcdJ2VriY/aOeHSPW6O7kwnDqiy4z+sdvzhqaHuVl0fg==", "dependencies": { - "@rooks/use-mutation-observer": "3.4.0", - "classnames": "2.2.6", + "@rooks/use-mutation-observer": "4.11.2", + "classnames": "2.3.1", "focus-outline-manager": "^1.0.2", "lodash.debounce": "4.0.8", "lodash.pick": "4.4.0", "prop-types": "15.7.2", - "react-focus-lock": "2.2.1", + "react-focus-lock": "2.5.2", "scroll-smooth": "1.1.0", "scrollparent": "2.0.1" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0-0", + "react-dom": "^16.3.0 || ^17.0.0-0", + "react-is": "^16.8 || ^17.0.0-0", + "styled-components": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/reactour/node_modules/@rooks/use-mutation-observer": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz", + "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/reactour/node_modules/react-focus-lock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", + "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.9.1", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.5", + "use-callback-ref": "^1.2.5", + "use-sidecar": "^1.0.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/reactour/node_modules/react-focus-lock/node_modules/react-clientside-effect": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz", + "integrity": "sha512-2bL8qFW1TGBHozGGbVeyvnggRpMjibeZM2536AKNENLECutp2yfs44IL8Hmpn8qjFQ2K7A9PnYf3vc7aQq/cPA==", + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/reactour/node_modules/react-focus-lock/node_modules/use-callback-ref": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz", + "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==", + "engines": { + "node": ">=8.5.0" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/reactour/node_modules/react-focus-lock/node_modules/use-sidecar": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.5.tgz", + "integrity": "sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" } }, "node_modules/read-pkg": { @@ -23716,17 +23848,16 @@ } }, "node_modules/socket.io-client": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz", - "integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.3.2.tgz", + "integrity": "sha512-2B9LqSunN60yV8F7S84CCEEcgbYNfrn7ejIInZtLZ7ppWtiX8rGZAjvdCvbnC8bqo/9RlCNOUsORLyskxSFP1g==", "dependencies": { - "@types/component-emitter": "^1.2.10", + "@socket.io/component-emitter": "~3.0.0", "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~5.1.2", + "debug": "~4.3.2", + "engine.io-client": "~6.0.1", "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" + "socket.io-parser": "~4.1.1" }, "engines": { "node": ">=10.0.0" @@ -23749,12 +23880,11 @@ } }, "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz", + "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==", "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.0.0", "debug": "~4.3.1" }, "engines": { @@ -24767,9 +24897,9 @@ } }, "node_modules/styled-components": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", - "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.3.tgz", + "integrity": "sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==", "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -26207,26 +26337,6 @@ "node": ">=0.10.0" } }, - "node_modules/use-callback-ref": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz", - "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==", - "engines": { - "node": ">=8.5.0" - } - }, - "node_modules/use-sidecar": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz", - "integrity": "sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA==", - "dependencies": { - "detect-node": "^2.0.4", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8.5.0" - } - }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -28114,6 +28224,14 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -29436,9 +29554,9 @@ } }, "@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==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -29548,16 +29666,6 @@ "@emotion/serialize": "^0.11.15", "@emotion/sheet": "0.9.4", "@emotion/utils": "0.11.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } } }, "@emotion/css": { @@ -30481,14 +30589,14 @@ } }, "@material-ui/core": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.2.tgz", - "integrity": "sha512-/D1+AQQeYX/WhT/FUk78UCRj8ch/RCglsQLYujYTIqPSJlwZHKcvHidNeVhODXeApojeXjkl0tWdk5C9ofwOkQ==", + "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.11.2", - "@material-ui/system": "^4.11.2", - "@material-ui/types": "^5.1.0", + "@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", @@ -30499,39 +30607,50 @@ "react-transition-group": "^4.4.0" }, "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "@material-ui/styles": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", + "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", "requires": { - "react-is": "^16.7.0" + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@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.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/styles": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.2.tgz", - "integrity": "sha512-xbItf8zkfD3FuGoD9f2vlcyPf9jTEtj9YTJoNNV+NMWaSAHXgrW6geqRoo/IwBuMjqpwqsZhct13e2nUyU9Ljw==", - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@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", - "prop-types": "^15.7.2" - }, - "dependencies": { + }, + "@material-ui/system": { + "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.11.2", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + } + }, + "@material-ui/utils": { + "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 || ^17.0.0" + } + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -30542,31 +30661,11 @@ } } }, - "@material-ui/system": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.2.tgz", - "integrity": "sha512-BELFJEel5E+5DMiZb6XXT3peWRn6UixRvBtKwSxqntmD0+zwbbfCij6jtGwwdJhN1qX/aXrKu10zX31GBaeR7A==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" - } - }, "@material-ui/types": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" - }, - "@material-ui/utils": { - "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 || ^17.0.0" - } + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -30690,11 +30789,6 @@ } } }, - "@rooks/use-mutation-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-3.4.0.tgz", - "integrity": "sha512-q10+v3WbvSt5fj55VMikTPaUZ9Yl+IYDsymodWr2+cKx0PD97VBeWYjk3xHJPqJgejBHwnrwiNkJKGFY5iW+WQ==" - }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -30713,6 +30807,11 @@ "@sinonjs/commons": "^1.7.0" } }, + "@socket.io/component-emitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz", + "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" + }, "@surma/rollup-plugin-off-main-thread": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz", @@ -30950,11 +31049,6 @@ "@babel/types": "^7.3.0" } }, - "@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==" - }, "@types/eslint": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", @@ -31596,9 +31690,9 @@ } }, "aframe-environment-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/aframe-environment-component/-/aframe-environment-component-1.1.0.tgz", - "integrity": "sha512-HbxWPtu52EbywVbEBxhn5DUbfVbUc5RCPSaCXB2MqGibDt1xIURy+lMjdg0Ki2EEg+F+STQ/mwQRGPZYFm2uPg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/aframe-environment-component/-/aframe-environment-component-1.3.1.tgz", + "integrity": "sha512-tRKlYqXQbVhIvgBgwfeanQuM1T3+ONjEhiDsoxRtKHpuv/XycpMy9cbnZVE4BR9QXckDK/JesqQpJ1YYaRiCEg==" }, "aframe-extras": { "version": "4.2.0", @@ -31848,13 +31942,14 @@ "dev": true }, "array.prototype.find": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", - "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz", + "integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.4" + "es-abstract": "^1.19.0" } }, "array.prototype.flat": { @@ -32342,16 +32437,6 @@ "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", "resolve": "^1.12.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } } }, "babel-plugin-named-asset-import": { @@ -32807,9 +32892,9 @@ } }, "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==" }, "base64-js": { "version": "1.3.1", @@ -33567,9 +33652,9 @@ } }, "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "clean-css": { "version": "4.2.3", @@ -33737,7 +33822,8 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "compose-function": { "version": "3.0.3", @@ -34847,7 +34933,13 @@ "detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, "detect-port-alt": { "version": "1.1.6", @@ -35244,18 +35336,18 @@ } }, "engine.io-client": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz", - "integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.0.3.tgz", + "integrity": "sha512-IH8ZhDIwiLv0d/wXVzmjfV9Y82hbJIDhCGSVUV8o1kcpDe2I6Y3bZA3ZbJy4Ls7k7IVmcy/qn4k9RKWFhUGf5w==", "requires": { - "base64-arraybuffer": "0.1.4", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.0.0", "debug": "~4.3.1", - "engine.io-parser": "~4.0.1", + "engine.io-parser": "~5.0.0", "has-cors": "1.1.0", "parseqs": "0.0.6", "parseuri": "0.0.6", - "ws": "~7.4.2", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0", "yeast": "0.1.2" }, "dependencies": { @@ -35268,19 +35360,19 @@ } }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "requires": {} } } }, "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", + "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", "requires": { - "base64-arraybuffer": "0.1.4" + "base64-arraybuffer": "~1.0.1" } }, "enhanced-resolve": { @@ -35386,18 +35478,18 @@ } }, "enzyme-adapter-react-16": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz", - "integrity": "sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", + "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", "dev": true, "requires": { - "enzyme-adapter-utils": "^1.13.0", - "enzyme-shallow-equal": "^1.0.1", + "enzyme-adapter-utils": "^1.14.0", + "enzyme-shallow-equal": "^1.0.4", "has": "^1.0.3", - "object.assign": "^4.1.0", - "object.values": "^1.1.1", + "object.assign": "^4.1.2", + "object.values": "^1.1.2", "prop-types": "^15.7.2", - "react-is": "^16.12.0", + "react-is": "^16.13.1", "react-test-renderer": "^16.0.0-0", "semver": "^5.7.0" }, @@ -35411,15 +35503,16 @@ } }, "enzyme-adapter-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz", - "integrity": "sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", + "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", "dev": true, "requires": { - "airbnb-prop-types": "^2.15.0", - "function.prototype.name": "^1.1.2", - "object.assign": "^4.1.0", - "object.fromentries": "^2.0.2", + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.3", + "has": "^1.0.3", + "object.assign": "^4.1.2", + "object.fromentries": "^2.0.3", "prop-types": "^15.7.2", "semver": "^5.7.1" }, @@ -35433,13 +35526,13 @@ } }, "enzyme-shallow-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz", - "integrity": "sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", + "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==", "dev": true, "requires": { "has": "^1.0.3", - "object-is": "^1.0.2" + "object-is": "^1.1.2" } }, "errno": { @@ -35469,22 +35562,25 @@ } }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -37211,9 +37307,19 @@ } }, "focus-lock": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.8.tgz", - "integrity": "sha512-vkHTluRCoq9FcsrldC0ulQHiyBYgVJB2CX53I8r0nTC6KnEij7Of0jpBspjt3/CuNb6fyoj3aOh9J2HgQUM0og==" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", + "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } }, "focus-outline-manager": { "version": "1.0.2", @@ -37540,14 +37646,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz", - "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "functions-have-names": "^1.2.0" + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" } }, "functional-red-black-tree": { @@ -37557,9 +37664,9 @@ "dev": true }, "functions-have-names": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", - "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", + "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", "dev": true }, "gensync": { @@ -37611,6 +37718,16 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -37953,16 +38070,6 @@ "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0", "value-equal": "^1.0.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } } }, "hmac-drbg": { @@ -38710,14 +38817,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indefinite-observable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz", - "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==", - "requires": { - "symbol-observable": "1.2.0" - } - }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -39094,6 +39193,12 @@ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", "dev": true }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -39130,6 +39235,15 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -41358,89 +41472,88 @@ } }, "jss": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.5.0.tgz", - "integrity": "sha512-B6151NvG+thUg3murLNHRPLxTLwQ13ep4SH5brj4d8qKtogOx/jupnpfkPGSHPqvcwKJaCLctpj2lEk+5yGwMw==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.8.2.tgz", + "integrity": "sha512-FkoUNxI329CKQ9OQC8L72MBF9KPf5q8mIupAJ5twU7G7XREW7ahb+7jFfrjZ4iy1qvhx1HwIWUIvkZBDnKkEdQ==", "requires": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", - "indefinite-observable": "^2.0.1", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" }, "dependencies": { "csstype": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz", - "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==" + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" } } }, "jss-plugin-camel-case": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.5.0.tgz", - "integrity": "sha512-GSjPL0adGAkuoqeYiXTgO7PlIrmjv5v8lA6TTBdfxbNYpxADOdGKJgIEkffhlyuIZHlPuuiFYTwUreLUmSn7rg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.2.tgz", + "integrity": "sha512-2INyxR+1UdNuKf4v9It3tNfPvf7IPrtkiwzofeKuMd5D58/dxDJVUQYRVg/n460rTlHUfsEQx43hDrcxi9dSPA==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.5.0" + "jss": "10.8.2" } }, "jss-plugin-default-unit": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.5.0.tgz", - "integrity": "sha512-rsbTtZGCMrbcb9beiDd+TwL991NGmsAgVYH0hATrYJtue9e+LH/Gn4yFD1ENwE+3JzF3A+rPnM2JuD9L/SIIWw==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.2.tgz", + "integrity": "sha512-UZ7cwT9NFYSG+SEy7noRU50s4zifulFdjkUNKE+u6mW7vFP960+RglWjTgMfh79G6OENZmaYnjHV/gcKV4nSxg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "jss-plugin-global": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.5.0.tgz", - "integrity": "sha512-FZd9+JE/3D7HMefEG54fEC0XiQ9rhGtDHAT/ols24y8sKQ1D5KIw6OyXEmIdKFmACgxZV2ARQ5pAUypxkk2IFQ==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.8.2.tgz", + "integrity": "sha512-UaYMSPsYZ7s/ECGoj4KoHC2jwQd5iQ7K+FFGnCAILdQrv7hPmvM2Ydg45ThT/sH46DqktCRV2SqjRuxeBH8nRA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "jss-plugin-nested": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.5.0.tgz", - "integrity": "sha512-ejPlCLNlEGgx8jmMiDk/zarsCZk+DV0YqXfddpgzbO9Toamo0HweCFuwJ3ZO40UFOfqKwfpKMVH/3HUXgxkTMg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.8.2.tgz", + "integrity": "sha512-acRvuPJOb930fuYmhkJaa994EADpt8TxI63Iyg96C8FJ9T2xRyU5T6R1IYKRwUiqZo+2Sr7fdGzRTDD4uBZaMA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0", + "jss": "10.8.2", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.5.0.tgz", - "integrity": "sha512-kTLRvrOetFKz5vM88FAhLNeJIxfjhCepnvq65G7xsAQ/Wgy7HwO1BS/2wE5mx8iLaAWC6Rj5h16mhMk9sKdZxg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.2.tgz", + "integrity": "sha512-wqdcjayKRWBZnNpLUrXvsWqh+5J5YToAQ+8HNBNw0kZxVvCDwzhK2Nx6AKs7p+5/MbAh2PLgNW5Ym/ysbVAuqQ==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0" + "jss": "10.8.2" } }, "jss-plugin-rule-value-function": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.5.0.tgz", - "integrity": "sha512-jXINGr8BSsB13JVuK274oEtk0LoooYSJqTBCGeBu2cG/VJ3+4FPs1gwLgsq24xTgKshtZ+WEQMVL34OprLidRA==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.2.tgz", + "integrity": "sha512-bW0EKAs+0HXpb6BKJhrn94IDdiWb0CnSluTkh0rGEgyzY/nmD1uV/Wf6KGlesGOZ9gmJzQy+9FFdxIUID1c9Ug==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.5.0", + "jss": "10.8.2", "tiny-warning": "^1.0.2" } }, "jss-plugin-vendor-prefixer": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.5.0.tgz", - "integrity": "sha512-rux3gmfwDdOKCLDx0IQjTwTm03IfBa+Rm/hs747cOw5Q7O3RaTUIMPKjtVfc31Xr/XI9Abz2XEupk1/oMQ7zRA==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.2.tgz", + "integrity": "sha512-DeGv18QsSiYLSVIEB2+l0af6OToUe0JB+trpzUxyqD2QRC/5AzzDrCrYffO5AHZ81QbffYvSN/pkfZaTWpRXlg==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.5.0" + "jss": "10.8.2" } }, "jsx-ast-utils": { @@ -44943,31 +45056,14 @@ } } }, - "react-clientside-effect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz", - "integrity": "sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A==", - "requires": { - "@babel/runtime": "^7.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, "react-color": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz", - "integrity": "sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ==", + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", + "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", "requires": { "@icons/material": "^0.2.4", - "lodash": "^4.17.11", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", "material-colors": "^1.2.1", "prop-types": "^15.5.10", "reactcss": "^1.2.0", @@ -45171,29 +45267,6 @@ "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", "dev": true }, - "react-focus-lock": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.2.1.tgz", - "integrity": "sha512-47g0xYcCTZccdzKRGufepY8oZ3W1Qg+2hn6u9SHZ0zUB6uz/4K4xJe7yYFNZ1qT6m+2JDm82F6QgKeBTbjW4PQ==", - "requires": { - "@babel/runtime": "^7.0.0", - "focus-lock": "^0.6.6", - "prop-types": "^15.6.2", - "react-clientside-effect": "^1.2.2", - "use-callback-ref": "^1.2.1", - "use-sidecar": "^1.0.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, "react-google-login": { "version": "5.1.21", "resolved": "https://registry.npmjs.org/react-google-login/-/react-google-login-5.1.21.tgz", @@ -45240,14 +45313,6 @@ "react-lifecycles-compat": "^3.0.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -45444,14 +45509,6 @@ "react-transition-group": "^4.3.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, "dom-helpers": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", @@ -45506,19 +45563,65 @@ } }, "reactour": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.18.0.tgz", - "integrity": "sha512-de0Pa5NkDU6I8IyGl+7+rWdDcx3AskmJYK/yIKU11D9EPIN79qzn852gjJgvH/jXZqeEfa+rmMWg72vA0UkmgA==", + "version": "1.18.6", + "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.18.6.tgz", + "integrity": "sha512-6Dm3bkqf3wKfzLL6laMez2xVO6iZ9o5CFG4Na1ttE0OcdJ2VriY/aOeHSPW6O7kwnDqiy4z+sdvzhqaHuVl0fg==", "requires": { - "@rooks/use-mutation-observer": "3.4.0", - "classnames": "2.2.6", + "@rooks/use-mutation-observer": "4.11.2", + "classnames": "2.3.1", "focus-outline-manager": "^1.0.2", "lodash.debounce": "4.0.8", "lodash.pick": "4.4.0", "prop-types": "15.7.2", - "react-focus-lock": "2.2.1", + "react-focus-lock": "2.5.2", "scroll-smooth": "1.1.0", "scrollparent": "2.0.1" + }, + "dependencies": { + "@rooks/use-mutation-observer": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz", + "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==", + "requires": {} + }, + "react-focus-lock": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", + "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.9.1", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.5", + "use-callback-ref": "^1.2.5", + "use-sidecar": "^1.0.5" + }, + "dependencies": { + "react-clientside-effect": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz", + "integrity": "sha512-2bL8qFW1TGBHozGGbVeyvnggRpMjibeZM2536AKNENLECutp2yfs44IL8Hmpn8qjFQ2K7A9PnYf3vc7aQq/cPA==", + "requires": { + "@babel/runtime": "^7.12.13" + } + }, + "use-callback-ref": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz", + "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==", + "requires": {} + }, + "use-sidecar": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.5.tgz", + "integrity": "sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^1.9.3" + } + } + } + } } }, "read-pkg": { @@ -47101,17 +47204,16 @@ } }, "socket.io-client": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz", - "integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.3.2.tgz", + "integrity": "sha512-2B9LqSunN60yV8F7S84CCEEcgbYNfrn7ejIInZtLZ7ppWtiX8rGZAjvdCvbnC8bqo/9RlCNOUsORLyskxSFP1g==", "requires": { - "@types/component-emitter": "^1.2.10", + "@socket.io/component-emitter": "~3.0.0", "backo2": "~1.0.2", - "component-emitter": "~1.3.0", - "debug": "~4.3.1", - "engine.io-client": "~5.1.2", + "debug": "~4.3.2", + "engine.io-client": "~6.0.1", "parseuri": "0.0.6", - "socket.io-parser": "~4.0.4" + "socket.io-parser": "~4.1.1" }, "dependencies": { "debug": { @@ -47125,12 +47227,11 @@ } }, "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz", + "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==", "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.0.0", "debug": "~4.3.1" }, "dependencies": { @@ -47948,9 +48049,9 @@ } }, "styled-components": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", - "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.3.tgz", + "integrity": "sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -49097,20 +49198,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "use-callback-ref": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz", - "integrity": "sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ==" - }, - "use-sidecar": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz", - "integrity": "sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA==", - "requires": { - "detect-node": "^2.0.4", - "tslib": "^1.9.3" - } - }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -50706,6 +50793,11 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index dda728cb..23d76116 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "myr", - "version": "2.4.0", + "version": "3.0.0", "private": false, "engines": { "node": "^12.18.2" @@ -8,7 +8,7 @@ "devDependencies": { "@babel/core": "^7.9.0", "enzyme": "^3.3.0", - "enzyme-adapter-react-16": "^1.1.1", + "enzyme-adapter-react-16": "^1.15.6", "esdoc": "^1.1.0", "esdoc-standard-plugin": "^1.0.0", "eslint-plugin-react": "^7.13.0", @@ -17,10 +17,10 @@ }, "dependencies": { "@engaging-computing/aframe-physics-system": "^4.0.0", - "@material-ui/core": "^4.11.2", + "@material-ui/core": "^4.12.3", "aframe": "^1.0.4", "aframe-animation-component": "^5.0.0", - "aframe-environment-component": "^1.0.0", + "aframe-environment-component": "^1.3.1", "aframe-extras": "^4.1.2", "aframe-react": "^4.4.0", "bootstrap": "^4.6.0", @@ -35,19 +35,19 @@ "qrcode.react": "^1.0.1", "react": "^16.8.4", "react-ace": "^6.0.0", - "react-color": "^2.17.0", + "react-color": "^2.19.3", "react-dom": "^16.2.0", "react-google-login": "^5.1.19", "react-progressive-image": "^0.3.0", "react-redux": "^5.0.7", "react-router-dom": "^4.2.2", "react-select": "^3.0.4", - "reactour": "^1.9.1", + "reactour": "^1.18.6", "redux": "^3.7.2", "redux-thunk": "^2.3.0", - "socket.io-client": "^4.0.0", + "socket.io-client": "^4.3.2", "source-map-explorer": "^2.0.0", - "styled-components": "^5.0.0", + "styled-components": "^5.3.3", "three": "^0.126.1", "ua-parser-js": "^0.7.24" }, diff --git a/src/components/layouts/ModelReference.js b/src/components/layouts/AssetReference.js similarity index 86% rename from src/components/layouts/ModelReference.js rename to src/components/layouts/AssetReference.js index 6dac822b..d4bcfd89 100644 --- a/src/components/layouts/ModelReference.js +++ b/src/components/layouts/AssetReference.js @@ -1,7 +1,7 @@ import React from "react"; import Header from "../structural/header/Header"; import Footer from "../structural/Footer"; -import ModelReferencePage from "../reference/ModelReferencePage"; +import AssetReferencePage from "../reference/AssetReferencePage"; import * as layoutTypes from "../../constants/LayoutTypes.js"; @@ -10,7 +10,7 @@ import * as layoutTypes from "../../constants/LayoutTypes.js"; * @param {object} param0 List of props that will be use in components * @returns {HTMLElement} Layout of the model reference page */ -export const ModelReference = ({ editor, editorActions, user, authActions, scene, sceneActions, projectActions, courseActions, projects, courses, match, collectionActions, collections }) => ( +export const AssetReference = ({ editor, editorActions, user, authActions, scene, sceneActions, projectActions, courseActions, projects, courses, match, collectionActions, collections }) => (
- +
); -export default ModelReference; \ No newline at end of file +export default AssetReference; \ No newline at end of file diff --git a/src/components/reference/AssetReferencePage.js b/src/components/reference/AssetReferencePage.js new file mode 100644 index 00000000..a7908112 --- /dev/null +++ b/src/components/reference/AssetReferencePage.js @@ -0,0 +1,71 @@ +import React from "react"; +import ModelTab from "./ModelReferenceTab"; +import TextureTab from "./TextureReferenceTab"; + +import { + Tabs, + Tab, + Icon, + Hidden, +} from "@material-ui/core"; + +import "../../css/ModelReferencePage.css"; + +export default class AssetReference extends React.Component { + + constructor(props) { + super(props); + this.state = { + value: "a", + }; + } + + handleChange = (event, value) => { + this.setState({ value }); + }; + + componentDidMount() { + const qsa = new URLSearchParams(window.location.search); + if (qsa.has("tab") && qsa.get("tab").toLowerCase() === "textures") { + this.setState({ value: "b" }); + } + } + + render() { + document.title = "Asset | MYR"; + return ( +
+ + model} + label={ + +
MODEL
+
+ } + value='a' /> + texture} + label={ + +
TEXTURE
+
+ } + value='b' /> +
+ {this.state.value === "a" && +
+ +
} + {this.state.value === "b" && +
+ +
} +
+ ); + } +} \ No newline at end of file diff --git a/src/components/reference/ModelReferenceTab.js b/src/components/reference/ModelReferenceTab.js new file mode 100644 index 00000000..c82ef5ec --- /dev/null +++ b/src/components/reference/ModelReferenceTab.js @@ -0,0 +1,54 @@ +import React from "react"; +import model from "../../myr/modelReference"; + +import ModelPack from "../structural/Models.js"; + +import { + Table, + TableBody, + TableHead, + TableRow, + TableCell +} from "@material-ui/core"; + +import "../../css/ModelReferencePage.css"; + +export default class ModelReference extends React.Component { + imageHelper = (model) => { + if(model) { + let models = ModelPack().ModelPack; + + if(models.has(model)) { + let gltf = models.get(model); + return gltf.image; + } + return null; + } + return null; + }; + + render() { + return ( + + + + Name + + Image + + + {model.map((row, index) => { + return ( + + {row.name} + + + alt + + ); + })} + +
+ ); + } +} \ No newline at end of file diff --git a/src/components/reference/Reference.js b/src/components/reference/Reference.js index 3b68e668..c4e44723 100644 --- a/src/components/reference/Reference.js +++ b/src/components/reference/Reference.js @@ -31,6 +31,12 @@ const newTabStyle = { right: 50, }; +const assetReferenceBtn = { + position: "fixed", + top: 0, + right: 95, +}; + /** * Reference is a react component that creates drawer contains references */ @@ -65,14 +71,12 @@ class Reference extends Component { this.setState({ value: "a" }); }; - /** - * Conver the name and parameters of API to following format to be use in first column of table - * format: name(...parameters); - * - * @param {string} name name of API to create - * @param {array} parameters array of object that each contains type and name of the parameter - * @returns {HTMLElement} create a DOM element with name of APIs and Parameters - */ + assetHandleOpen = () => { + window.open(window.origin + "/asset-reference"); + this.setState({ value: "a" }); + }; + + nameHelper = (name, parameters) => { return ( {name}({(parameters.map((element, i, params) => { @@ -188,10 +192,18 @@ class Reference extends Component { close - open_in_new + menu_book + + + settings_system_daydream
diff --git a/src/components/reference/TextureReferenceTab.js b/src/components/reference/TextureReferenceTab.js new file mode 100644 index 00000000..d399a1ad --- /dev/null +++ b/src/components/reference/TextureReferenceTab.js @@ -0,0 +1,59 @@ +import React from "react"; +import texture from "../../myr/textureReference"; + +import TexturePack from "../structural/Textures.js"; + +import { + Table, + TableBody, + TableHead, + TableRow, + TableCell, +} from "@material-ui/core"; + +import "../../css/TextureReferencePage.css"; + +export default class TextureReference extends React.Component { + imageHelper = (image) => { + if(image) { + let textures = TexturePack(); + let textureTitle = [...textures.TexturePack.map(obj => obj.title)]; + let textureURL = [...textures.TexturePack.map(obj => obj.url)]; + + let texture = textureURL[textureTitle.indexOf(image)]; + + return ( + texture + ); + } else { + return null; + } + }; + + render() { + return ( + + + + Name + + Image + Image Creator + + + {texture.map((row, index) => { + return ( + + {row.name} + + + alt + + {row.creator} + ); + })} + +
+ ); + } +} \ No newline at end of file diff --git a/src/components/structural/View.js b/src/components/structural/View.js index 3895b988..791c1819 100644 --- a/src/components/structural/View.js +++ b/src/components/structural/View.js @@ -357,6 +357,7 @@ class View extends Component { + diff --git a/src/components/structural/header/Header.js b/src/components/structural/header/Header.js index 1d6b2904..4de337de 100644 --- a/src/components/structural/header/Header.js +++ b/src/components/structural/header/Header.js @@ -66,8 +66,8 @@ class Header extends Component { }; this.state.socket.on("update", () => { - let editor = window.ace.edit("ace-editor"); - if(editor.getSession().getValue() === this.props.scene.code || window.confirm("A new version of the scene is available, would you like to load it?")){ + let editor = window.ace.edit("ace-editor"); + if (editor.getSession().getValue() === this.props.scene.code || window.confirm("A new version of the scene is available, would you like to load it?")) { this.props.actions.fetchScene(this.props.projectId); } }); @@ -147,21 +147,21 @@ class Header extends Component { if (this.state.lastMsgTime !== this.props.message.time && this.props.message.text !== "") { this.setState({ snackOpen: true, lastMsgTime: this.props.message.time }); } - if(this.state.updateCollection && this.props.user){ + if (this.state.updateCollection && this.props.user) { this.props.collectionActions.asyncCollection(this.props.collection, this.props.user.uid); this.setState({ updateCollection: false }); } - if(this.state.fetchCollection && this.props.user){ + if (this.state.fetchCollection && this.props.user) { this.props.collectionActions.asyncCollection(this.props.collection, this.props.user.uid); this.setState({ fetchCollection: false }); } - if(this.state.savedSettings.length === 0 && this.props.scene.id !== 0){ - this.setState({savedSettings: this.buildSettingsArr()}); + if (this.state.savedSettings.length === 0 && this.props.scene.id !== 0) { + this.setState({ savedSettings: this.buildSettingsArr() }); window.addEventListener("beforeunload", (event) => { let finalSettings = this.buildSettingsArr(); - - if(!this.settingsEqual(finalSettings)){ + + if (!this.settingsEqual(finalSettings)) { event.preventDefault(); event.returnValue = "You may have unsaved changes!"; } @@ -177,19 +177,18 @@ class Header extends Component { buildSettingsArr = () => { const sceneSettings = this.props.scene.settings; - return [ sceneSettings.floorColor, + return [sceneSettings.floorColor, sceneSettings.showCoordHelper, sceneSettings.showFloor, sceneSettings.skyColor, sceneSettings.viewOnly]; }; - /** * Compare two arrays of setting and determine whether is the settings are equal or not * @param {array} newSettings Settings to compare * @returns {boolean} If settings are equal or not */ - settingsEqual = (newSettings) =>{ - for(let i = 0; i < newSettings.length; ++i){ - if(newSettings[i] !== this.state.savedSettings[i]){ + settingsEqual = (newSettings) => { + for (let i = 0; i < newSettings.length; ++i) { + if (newSettings[i] !== this.state.savedSettings[i]) { return false; } } @@ -214,13 +213,13 @@ class Header extends Component { googleAuth.profileObj["uid"] = googleAuth.getAuthResponse().id_token; this.props.logging.login(googleAuth.profileObj); this.setState({ logMenuOpen: false, googleUser: googleAuth }); - + this.props.projectActions.asyncUserProj(this.props.user.uid); this.props.collectionActions.asyncCollections(this.props.user.uid); this.setRefreshTime(googleAuth.tokenObj.expires_at); //send uid to google analyrica - window.gtag("config", "UA-122925714-1", {"user_id": this.props.user.googleId}); + window.gtag("config", "UA-122925714-1", { "user_id": this.props.user.googleId }); } /** @@ -229,10 +228,10 @@ class Header extends Component { * @param {number} time The time when the token will expired */ setRefreshTime = (time) => { - const oneMinute = 60*1000; + const oneMinute = 60 * 1000; let expiryTime = Math.max( - oneMinute*5, //Default of 5 minutes - time - Date.now() - oneMinute*5 // give 5 mins of breathing room + oneMinute * 5, //Default of 5 minutes + time - Date.now() - oneMinute * 5 // give 5 mins of breathing room ); setTimeout(this.refreshToken, expiryTime); } @@ -276,7 +275,7 @@ class Header extends Component { )} onLogoutSuccess={this.logout} - onFailure={(err) => console.error("Could not logout: ", err) } + onFailure={(err) => console.error("Could not logout: ", err)} /> : - Log In + Log In )} onSuccess={this.login} @@ -428,12 +427,12 @@ class Header extends Component { updateTime: Date.now(), createTime: (this.props.scene.createTime ? this.props.scene.createTime : Date.now()) }; - - save(this.props.user.uid, newScene, img, this.props.projectId).then((projectId) =>{ - if(!projectId) { + + save(this.props.user.uid, newScene, img, this.props.projectId).then((projectId) => { + if (!projectId) { console.error("Could not save the scene"); } - + this.props.actions.updateSavedText(text); // If we have a new projectId reload page with it if (projectId !== this.props.projectId) { @@ -441,24 +440,24 @@ class Header extends Component { window.location.assign(`${window.origin}/scene/${projectId}`); this.props.projectActions.asyncUserProj(this.props.user.uid); } - if(!this.state.viewOnly) { + if (!this.state.viewOnly) { this.props.actions.refresh(text, this.props.user ? this.props.user.uid : "anon"); } - this.setState({spinnerOpen: false, saveOpen: false}); + this.setState({ spinnerOpen: false, saveOpen: false }); this.state.socket.emit("save"); return true; }); - } else if(!text) { + } else if (!text) { alert("There is no code to save for this scene. Try adding some in the editor!"); - }else { + } else { // TODO: Don't use alert alert("We were unable to save your project. Are you currently logged in?"); } - if(!this.state.viewOnly) { + if (!this.state.viewOnly) { this.props.actions.refresh(text, this.props.user ? this.props.user.uid : "anon"); } - this.setState({savedSettings: this.buildSettingsArr()}); + this.setState({ savedSettings: this.buildSettingsArr() }); } /** @@ -571,7 +570,7 @@ class Header extends Component { * Handles when collection is deleted */ handleCollectionDelete = (collectionID) => { - if(this.props.scene.settings.collectionID === collectionID) { + if (this.props.scene.settings.collectionID === collectionID) { this.props.sceneActions.removeCollectionID(this.props.scene); } } @@ -588,7 +587,7 @@ class Header extends Component { user={this.props.user} open={this.state.collectionOpen} handleCollectionToggle={this.handleCollectionToggle} - handleCollectionClose={this.handleCollectionClose} + handleCollectionClose={this.handleCollectionClose} deleteCallback={this.handleCollectionDelete} /> ); } diff --git a/src/containers/AssetReference.js b/src/containers/AssetReference.js new file mode 100644 index 00000000..d38e2b17 --- /dev/null +++ b/src/containers/AssetReference.js @@ -0,0 +1,39 @@ +import PropTypes from "prop-types"; +import AssetReferencePage from "../components/layouts/AssetReference.js"; +import * as Actions from "../actions"; + +import { bindActionCreators } from "redux"; +import { connect } from "react-redux"; + +// This makes sure we are getting what we think we should +AssetReferencePage.propTypes = { + editor: PropTypes.object.isRequired, + user: PropTypes.object, + scene: PropTypes.object.isRequired, +}; + +// This makes the values accessible as props +const mapStateToProps = state => ({ + editor: state.editor, + user: state.user.user, + scene: state.scene, + projects: state.project, + courses: state.courses, + collections: state.collections +}); + +// This maps dispatch actions to props +const mapDispatchToProps = dispatch => ({ + editorActions: bindActionCreators(Actions.EditorActions, dispatch), + authActions: bindActionCreators(Actions.AuthActions, dispatch), + sceneActions: bindActionCreators(Actions.SceneActions, dispatch), + projectActions: bindActionCreators(Actions.ProjectActions, dispatch), + courseActions: bindActionCreators(Actions.CourseActions, dispatch), + collectionActions: bindActionCreators(Actions.CollectionActions, dispatch) +}); + +// This does the binding to the redux store +export default connect( + mapStateToProps, + mapDispatchToProps +)(AssetReferencePage); diff --git a/src/myr/Myr.js b/src/myr/Myr.js index bcfee315..6f9e48b0 100644 --- a/src/myr/Myr.js +++ b/src/myr/Myr.js @@ -727,10 +727,14 @@ class Myr { i++; } } - this.cursor.color = color; return color; } + setRandomColor = (colors = null) => { + this.cursor.color = this.getRandomColor(colors); + return this.cursor.color; + } + /** * Allows the entity to be dropped * @@ -949,7 +953,7 @@ class Myr { * * @param {object} params Parameters that can overwrite the cursor attrib or add custom attrib */ - polyhedron = (params) => { + prism = (params) => { let base = { id: "poly" + this.genNewId(), geometry: `primitive: sphere; segmentsWidth: 2; segmentsHeight: 8; phi-length: ${this.cursor.phiLength};`, @@ -1379,12 +1383,6 @@ class Myr { } } - // Prism is an alias for Polyhedron - prism = this.polyhedron - - // Cube is an alias for Box - cube = this.box - /********************* ANIMATIONS *********************/ /** diff --git a/src/myr/modelReference.js b/src/myr/modelReference.js index 914b60db..b395fd9b 100644 --- a/src/myr/modelReference.js +++ b/src/myr/modelReference.js @@ -5,44 +5,31 @@ const model = [ { name: "sword", model: "sword", - //example: "sword", }, { name: "fish", model: "fish", - //example: "fish", }, { name: "milkTruck", model: "milkTruck", - //example: "milkTruck", }, { name: "fox", model: "fox", - //example: "fox", }, { name: "lantern", model: "lantern", - //example: "lantern", }, { name: "fabricChair", model: "fabricChair", - //example: "fabricChair", }, { name: "duck", model: "duck", - //example: "duck", }, ]; -const modelReference = { - model: model, -}; - -export default function r(ref = modelReference) { - return ref; -} +export default model; diff --git a/src/myr/reference.js b/src/myr/reference.js index 215052d9..2a5847d6 100644 --- a/src/myr/reference.js +++ b/src/myr/reference.js @@ -18,18 +18,8 @@ const HtmlTooltip = withStyles(theme => ({ }, }))(Tooltip); -/** - * Open texture reference page - */ -const handleTextureOpen = () => { - window.open(window.origin + "/textureReference"); -}; - -/** - * Open model reference page - */ -const handleModelOpen = () => { - window.open(window.origin + "/modelReference"); +const handleAssetReferenceOpen = (isTexture = false) => { + window.open(window.origin + "/asset-reference" + (isTexture ? "?tab=textures" : "")); }; /** @@ -262,7 +252,7 @@ const geometry = [ { name: "gltfModel", parameters: [{ type: "string" }], - description: The gltfModel function loads a glTF model using the current cursor attributes. This function returns an {stringText("elementID")}. Models can be loaded either by using the name of one of or by inserting a valid url (e.g. "duck" or "https://learnmyr.org/models/duck.glb"). Depending on the policy of the website they’re from, model URLs may not be usable, which will result in no model appearing., + description: The gltfModel function loads a glTF model using the current cursor attributes. This function returns an {stringText("elementID")}. Models can be loaded either by using the name of one of or by inserting a valid url (e.g. "duck" or "https://learnmyr.org/models/duck.glb"). Depending on the policy of the website they’re from, model URLs may not be usable, which will result in no model appearing., example: "model" }, // This is out temporarily until better fleshed out @@ -302,9 +292,14 @@ const transformations = [ { name: "getRandomColor", parameters: [{ type: "array", name: "colors" }], - description: The getRandomColor function returns a random color and changes the color of the cursor. If passed an array, getRandomColor will choose randomly from the given colors., + description: The getRandomColor function returns a random color. If passed an array, getRandomColor will choose randomly from the given colors., example: "getRandomColor" }, + { + name: "setRandomColor", + parameters: [{ type: "array", name: "colors" }], + description: The setRandomColor function changes the color of the cursor to a random color. If passed an array, setRandomColor will choose randomly from the given colors., + }, { name: "getColor", parameters: [], @@ -312,13 +307,13 @@ const transformations = [ }, { name: "setTexture", - parameters: [{type: "string", name: "texture"}, {type: "number", name: "widthRepeat"}, {type: "number", name: "heightRepeat"}], - description: The setTexture function changes the texture of the cursor. The texture's normal color is displayed when setTextureColoring() is false, otherwise the texture will be affected by the current color. Textures can be applied either by using the name of one of or by inserting a valid url (e.g. "bricks" or "https://learnmyr.org/img/MYR-Logo.png"). WidthRepeat and heightRepeat will change how many times the texture is displayed on the object in each direction. If widthRepeat and heightRepeat are not declared they will be set to default settings. Depending on the policy of the website they’re from, image URLs may not be usable, which will result in a blank Texture and Color. An empty setTexture() or setTexture("") statement will remove the current texture., + parameters: [{ type: "string", name: "texture" }, { type: "number", name: "widthRepeat" }, { type: "number", name: "heightRepeat" }], + description: The setTexture function changes the texture of the cursor. The texture's normal color is displayed when setTextureColoring() is false, otherwise the texture will be affected by the current color. Textures can be applied either by using the name of one of or by inserting a valid url (e.g. "bricks" or "https://learnmyr.org/img/MYR-Logo.png"). widthRepeat and heightRepeat will change how many times the texture is displayed on the object in each direction. If widthRepeat and heightRepeat are not declared they will be set to default settings. Depending on the policy of the website they’re from, image URLs may not be usable, which will result in a blank Texture and Color. An empty setTexture() or setTexture("") statement will remove the current texture., example: "setTexture" }, { name: "setTextureColoring", - parameters: [{type: "bool", name:"boolean"}], + parameters: [{ type: "bool", name: "boolean" }], description: The setTextureColoring function sets the textureColoring attribute in the cursor, turning whether colors are applied to objects with textures on and off. The default value is false., example: "setTextureColoring" }, @@ -353,7 +348,7 @@ const transformations = [ }, { name: "setTransparency", - parameters: [{type: "number", name: "transparency"}], + parameters: [{ type: "number", name: "transparency" }], description: The setTransparency function changes the opacity of the element. The range of transparency is from 0% (solid) to 100% (invisible). The default is 0%., example: "setTransparency" }, @@ -523,6 +518,11 @@ const transformations = [ name: "getCursorAttribute", parameters: [{ type: "string", name: "key" }], description: The getCursorAttribute function allows the user to get a cursor attributes set by the setCursorAttribute function or by any other cursor setter. + }, + { + name: "resetTransformationCursor", + parameters: [], + description: The resetTransformationCursor function resets the transformation properties of the cursor to their defaults., } ]; @@ -681,41 +681,41 @@ const lights = [ { name: "pointLight", parameters: [], - description: The spotLight function makes a light that is emitted from a single point in all directions. This function returns an {stringText("elementID")}. + description: The pointLight function makes a light that is emitted from a single point in all directions. This function returns an {stringText("elementID")}. }, { name: "hemisphereLight", - parameters: [{type:"string",name:"secondColor"}], + parameters: [{ type: "string", name: "secondColor" }], description: The hemisphereLight function makes a light that has 2 colors on opposite sides, creating 2 distinct lighting colors. This function returns an {stringText("elementID")}. }, { name: "setIntensity", - parameters: [{type:"number",name:"intensity"}], + parameters: [{ type: "number", name: "intensity" }], description: The setIntensity function changes the intensity/strength of the light casting the scene. The default value is 1.0. }, { name: "setBeamAngle", - parameters: [{type:"number",name:"degree"}], + parameters: [{ type: "number", name: "degree" }], description: The setBeamAngle function changes the maximum extent of a spotlight from its direction in degrees. The default value is 60. }, { name: "setDecay", - parameters: [{type:"number",name:"decay"}], + parameters: [{ type: "number", name: "decay" }], description: The setDecay function changes the rate that light dims as it travels. The default value is 1.0. }, { name: "setDistance", - parameters: [{type:"number",name:"distance"}], + parameters: [{ type: "number", name: "distance" }], description: The setDistance function sets the distance where the light’s intensity becomes 0. If the distance is 0, then the light does not decay with distance. The default value is 0.0. }, { name: "setDiffusion", - parameters: [{type:"number",name:"diffusion"}], + parameters: [{ type: "number", name: "diffusion" }], description: The setDiffusion function sets the magnitude of diffusion on the edges of a spotlight . The default value is 0.0. }, { name: "setLightTarget", - parameters: [{type:"number",name:"x"},{type:"number",name:"y"},{type:"number",name:"z"}], + parameters: [{ type: "number", name: "x" }, { type: "number", name: "y" }, { type: "number", name: "z" }], description: The setLightTarget function sets the point where the light should be pointed to. The default values are x:0, y:0, z:0. } ]; @@ -771,7 +771,7 @@ const reference = { transformations: transformations, animations: animations, groups: groups, - lights:lights, + lights: lights, }; export default function r(ref = reference) { diff --git a/src/myr/textureReference.js b/src/myr/textureReference.js index b7eba9db..eeefe3b5 100644 --- a/src/myr/textureReference.js +++ b/src/myr/textureReference.js @@ -6,123 +6,98 @@ const texture = [ name: "bricks", image: "bricks", creator: "“Caveman Chuck” Coker", - //example: "bricks", }, { name: "bark", image: "bark", creator: "Jacob Gube", - //example: "bark", }, { name: "checkerboard", image: "checkerboard", creator: "Indolences", - //example: "checkerboard", }, { name: "chevron", image: "chevron", creator: "Melstampz", - //example: "chevron", }, { name: "cobblestone", image: "cobblestone", creator: "Tiling Tom", - //example: "cobblestone", }, { name: "dirt", image: "dirt", creator: "Dfass12", - //example: "dirt", }, { name: "duck", image: "duck", creator: "Francescominciotti", - //example: "duck", }, { name: "fabric", image: "fabric", creator: "Calebkimbrough", - //example: "fabric", }, { name: "grass", image: "grass", creator: "zaphad1", - //example: "grass", }, { name: "lava", image: "lava", creator: "zaphad1", - //example: "lava", }, { name: "leaves", image: "leaves", creator: "zaphad1", - //example: "leaves", }, { name: "marble", image: "marble", creator: "JustMeSupport", - //example: "marble", }, { name: "metal", image: "metal", creator: "CopperScaleDragon", - //example: "metal", }, { name: "paint", image: "paint", creator: "Walmarc04", - //example: "paint", }, { name: "rug", image: "rug", creator: "geishaboy500", - //example: "rug", }, { name: "sand", image: "sand", creator: "Sitges", - //example: "sand", }, { name: "stone", image: "stone", creator: "Webtreats", - //example: "stone", }, { name: "water", image: "water", creator: "Grendelkhan", - //example: "water", }, { name: "wood", image: "wood", creator: "Webtreats", - //example: "wood", }, ]; -const textureReference = { - texture: texture, -}; - -export default function r(ref = textureReference) { - return ref; -} +export default texture; diff --git a/src/reducers/scene.js b/src/reducers/scene.js index c1574198..92b313a0 100644 --- a/src/reducers/scene.js +++ b/src/reducers/scene.js @@ -5,7 +5,7 @@ export const DEF_SETTINGS = { floorColor: "#222", camConfig: 0, showCoordHelper: true, - showFloor: false, + showFloor: true, cameraPosition: "0 1.6 3", viewOnly: false, defaultLight: true, diff --git a/src/routes.js b/src/routes.js index 98a3ce36..38ccb437 100644 --- a/src/routes.js +++ b/src/routes.js @@ -3,7 +3,8 @@ import { BrowserRouter, Route, Switch, Redirect } from "react-router-dom"; import Ide from "./containers/Ide"; import Guided from "./containers/Guided"; import Collection from "./containers/Collection"; -import { Reference, TextureReference, ModelReference } from "./containers/Reference"; +import Reference from "./containers/Reference"; +import AssetReferencePage from "./containers/AssetReference"; import ReferenceExample from "./containers/ReferenceExample"; /** @@ -16,8 +17,7 @@ const router = () => { - - + @@ -29,9 +29,9 @@ const router = () => { /> - + { - if(match.params.id === "error-404"){ + if (match.params.id === "error-404") { return ; } return ; diff --git a/src/tests/App.test.js b/src/tests/App.test.js index 977cf1d3..75dbee84 100644 --- a/src/tests/App.test.js +++ b/src/tests/App.test.js @@ -317,7 +317,7 @@ describe("Scene Reducer", () => { floorColor: "#222", camConfig: 0, showCoordHelper: true, - showFloor: false, + showFloor: true, cameraPosition: "0 1.6 3", viewOnly: false, defaultLight: true, diff --git a/src/tests/Myr.test.js b/src/tests/Myr.test.js index 30e74d42..c2cfbcea 100644 --- a/src/tests/Myr.test.js +++ b/src/tests/Myr.test.js @@ -139,17 +139,35 @@ describe("Updates to Myr's Model", () => { }); it("to makes Random Color", () => { + myr.cursor.color = null; let color = myr.getRandomColor(); expect(color).not.toBeUndefined(); + expect(myr.cursor.color).toBeNull(); expect(colorRegEx.test(color)).toBeTruthy(); }); + it("to set Random Color", ()=> { + myr.cursor.color = null; + myr.setRandomColor(); + expect(myr.cursor.color).not.toBeNull(); + }); + it("pick Random Color out of a list of colors", () => { let colors = ["blue", "green", "red", "hotpink", "FF00FF", "rgb(100,33,93)"]; + myr.cursor.color = null; let color = myr.getRandomColor(colors); + expect(myr.cursor.color).toBeNull(); expect(color).not.toBeUndefined(); expect(colors.includes(color)).toBeTruthy(); }); + + it("pick and set Random Color out of a list of colors", () => { + let colors = ["blue", "green", "red", "hotpink", "FF00FF", "rgb(100,33,93)"]; + myr.cursor.color = null; + myr.setRandomColor(colors); + expect(myr.cursor.color).not.toBeNull(); + expect(colors.includes(myr.cursor.color)).toBeTruthy(); + }); }); describe("Component Renders", () => { @@ -341,9 +359,9 @@ describe("Component Renders", () => { expect(torusknot.position).toEqual({ x: 1, y: 1, z: 1 }); }); - it("polyhedron", () => { + it("prism", () => { myr.els = []; - let id = myr.polyhedron({ + let id = myr.prism({ position: { x: 1, y: 1, z: 1 }, rotation: { x: 1, y: 1, z: 1 }, scale: { x: 1, y: 1, z: 1 } diff --git a/src/utils/AframeRegIndicator.js b/src/utils/AframeRegIndicator.js index 206608c2..10e5b165 100644 --- a/src/utils/AframeRegIndicator.js +++ b/src/utils/AframeRegIndicator.js @@ -1,6 +1,6 @@ import AFRAME from "aframe"; -const THREE = AFRAME.THREE; - +import * as THREE from "three"; +import { BufferGeometryUtils } from "three/examples/jsm/utils/BufferGeometryUtils.js"; /** * @summary Define spotlight indicator geometry @@ -17,6 +17,7 @@ AFRAME.registerComponent("spotlightindicator",{ } }, init: function(){ + const data = this.data; /* define geometry */ @@ -31,7 +32,7 @@ AFRAME.registerComponent("spotlightindicator",{ circle.translate(0,0,0.5); } - let geometry = THREE.BufferGeometryUtils.mergeBufferGeometries([cone, circle]); + let geometry = BufferGeometryUtils.mergeBufferGeometries([cone, circle]); /* define outline geometry */ let outCone = new THREE.CylinderGeometry(.2,1,1.5,24,1,true); @@ -45,7 +46,7 @@ AFRAME.registerComponent("spotlightindicator",{ outCircle.translate(0,0,.75); } - let outGeometry = THREE.BufferGeometryUtils.mergeBufferGeometries([outCone, outCircle]); + let outGeometry = BufferGeometryUtils.mergeBufferGeometries([outCone, outCircle]); /* define material */ const material = new THREE.MeshBasicMaterial({color: data.color, side: THREE.DoubleSide}); @@ -119,7 +120,7 @@ AFRAME.registerComponent("directionallightindicator", { arrowHead.translate(0,1.8,0); arrowHead.rotateX(Math.PI); - let geometry = THREE.BufferGeometryUtils.mergeBufferGeometries([arrowHead, arrowPole]); + let geometry = BufferGeometryUtils.mergeBufferGeometries([arrowHead, arrowPole]); /* define outside geometry */ let outArrowHead = new THREE.ConeGeometry(.7,1.3); @@ -128,7 +129,7 @@ AFRAME.registerComponent("directionallightindicator", { outArrowHead.translate(0,1.8,0); outArrowHead.rotateX(Math.PI); - let outGeometry = THREE.BufferGeometryUtils.mergeBufferGeometries([outArrowHead, outArrowPole]); + let outGeometry = BufferGeometryUtils.mergeBufferGeometries([outArrowHead, outArrowPole]); /* define material */ let material = new THREE.MeshBasicMaterial({color:data.color}); @@ -171,7 +172,7 @@ AFRAME.registerComponent("hemispherelightindicator",{ pole.translate(0,0.5,0); //merge geometries - geometry.push(THREE.BufferGeometryUtils.mergeBufferGeometries([head, pole])); + geometry.push(BufferGeometryUtils.mergeBufferGeometries([head, pole])); const outHead = new THREE.ConeGeometry(.7,1.3,20,12); const outPole = new THREE.CylinderGeometry(0.2, 0.2, 1.2, 20); @@ -179,10 +180,10 @@ AFRAME.registerComponent("hemispherelightindicator",{ outPole.translate(0, 0.6, 0); /* define outline geometry */ - geometry.push(THREE.BufferGeometryUtils.mergeBufferGeometries([outHead, outPole])); + geometry.push(BufferGeometryUtils.mergeBufferGeometries([outHead, outPole])); /* define and group all the meshes together */ - let group = new THREE.Group(); + let group = new AFRAME.THREE.Group(); geometry.forEach((shape, i) => { let mat = new THREE.MeshBasicMaterial({color: data.color}); let secondMat = new THREE.MeshBasicMaterial({color: data.secondColor});