diff --git a/package-lock.json b/package-lock.json index d136f4b2..cd73d691 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@edx/frontend-component-footer": "^11.1.1", "@edx/frontend-component-header": "^3.1.1", "@edx/frontend-platform": "2.5.0", - "@edx/paragon": "19.6.0", + "@edx/paragon": "^19.25.4", "@fortawesome/fontawesome-svg-core": "^1.2.25", "@fortawesome/free-brands-svg-icons": "^5.11.2", "@fortawesome/free-solid-svg-icons": "^5.11.2", @@ -48,6 +48,7 @@ "whatwg-fetch": "^2.0.4" }, "devDependencies": { + "@edx/browserslist-config": "^1.1.1", "@edx/frontend-build": "^12.4.15", "axios": "0.21.2", "axios-mock-adapter": "^1.17.0", @@ -1899,6 +1900,12 @@ "resolved": "https://registry.npmjs.org/@edx/brand-edx.org/-/brand-edx.org-1.6.1.tgz", "integrity": "sha512-GTddzcmQwBn30s4dBPKPbuvJAYERF3YW+B0yo9LNPvyRpQjI2dOfOsnzCuqroqDh72lEK+PFtVAEYTH9mu1Zjg==" }, + "node_modules/@edx/browserslist-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@edx/browserslist-config/-/browserslist-config-1.1.1.tgz", + "integrity": "sha512-baLX2wxguWNXLIAi26l/iUIJoI9T8LVDH+8+3xP3HjFtWSCOVjz19sgxx4PlWwwMkbUkVmfuxrm2XVueqI6xLw==", + "dev": true + }, "node_modules/@edx/eslint-config": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@edx/eslint-config/-/eslint-config-3.1.1.tgz", @@ -3785,23 +3792,21 @@ } }, "node_modules/@edx/paragon": { - "version": "19.6.0", - "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.6.0.tgz", - "integrity": "sha512-Rl2Al7vgCEEmAK9EirZZXa1mRDnH9eOp+oi2sJPPksFDtj9gJw+PiGPzmMVojHGuRzOnE8rymNtiwpCa7lZYdg==", + "version": "19.25.4", + "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.25.4.tgz", + "integrity": "sha512-UMQokbty12amWFz5ct8MYkMJJkgfpgDzMBvexALqigl/5gaz3rrFBhijCNCUm0Ki9IT0V3DJqq4ckLegZnISRw==", "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", - "@fortawesome/free-solid-svg-icons": "^5.15.4", - "@fortawesome/react-fontawesome": "^0.1.16", - "@popperjs/core": "^2.11.2", - "airbnb-prop-types": "^2.12.0", - "bootstrap": "4.6.0", + "@fortawesome/react-fontawesome": "^0.1.18", + "@popperjs/core": "^2.11.4", + "bootstrap": "^4.6.2", "classnames": "^2.3.1", "email-prop-type": "^3.0.0", "font-awesome": "^4.7.0", "lodash.uniqby": "^4.7.0", "mailto-link": "^1.0.0", "prop-types": "^15.8.1", - "react-bootstrap": "^1.6.4", + "react-bootstrap": "^1.6.6", "react-focus-on": "^3.5.4", "react-popper": "^2.2.5", "react-proptype-conditional-require": "^1.0.4", @@ -3809,12 +3814,11 @@ "react-table": "^7.7.0", "react-transition-group": "^4.4.2", "tabbable": "^4.0.0", - "uncontrollable": "7.2.1" + "uncontrollable": "^7.2.1" }, "peerDependencies": { - "prop-types": "^15.7.2", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "react": "^16.8.6 || ^17.0.0", + "react-dom": "^16.8.6 || ^17.0.0" } }, "node_modules/@edx/paragon/node_modules/email-prop-type": { @@ -7077,9 +7081,9 @@ "dev": true }, "node_modules/@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -7144,9 +7148,9 @@ } }, "node_modules/@restart/hooks": { - "version": "0.3.27", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz", - "integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", "dependencies": { "dequal": "^2.0.2" }, @@ -8165,9 +8169,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", "dependencies": { "@types/react": "*" } @@ -8260,7 +8264,7 @@ "node_modules/@types/warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" }, "node_modules/@types/webpack": { "version": "4.41.32", @@ -8636,6 +8640,7 @@ "version": "2.16.0", "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "dev": true, "dependencies": { "array.prototype.find": "^2.1.1", "function.prototype.name": "^1.1.2", @@ -8959,6 +8964,7 @@ "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", @@ -9864,13 +9870,19 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], "peerDependencies": { "jquery": "1.9.1 - 3", "popper.js": "^1.16.1" @@ -11858,9 +11870,9 @@ "dev": true }, "node_modules/dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "engines": { "node": ">=6" } @@ -19841,9 +19853,9 @@ } }, "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", + "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==", "peer": true }, "node_modules/js-sdsl": { @@ -26001,6 +26013,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", + "dev": true, "dependencies": { "has": "^1.0.3", "object.assign": "^4.1.0", @@ -26240,13 +26253,13 @@ } }, "node_modules/react-bootstrap": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz", - "integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz", + "integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==", "dependencies": { "@babel/runtime": "^7.14.0", "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.26", + "@restart/hooks": "^0.4.7", "@types/invariant": "^2.2.33", "@types/prop-types": "^15.7.3", "@types/react": ">=16.14.8", @@ -26257,7 +26270,7 @@ "invariant": "^2.2.4", "prop-types": "^15.7.2", "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.1", + "react-overlays": "^5.1.2", "react-transition-group": "^4.4.1", "uncontrollable": "^7.2.1", "warning": "^4.0.3" @@ -26630,13 +26643,13 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-overlays": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz", - "integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "dependencies": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.8.6", - "@restart/hooks": "^0.3.26", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", "prop-types": "^15.7.2", @@ -27131,7 +27144,8 @@ "node_modules/reflect.ownkeys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=" + "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", + "dev": true }, "node_modules/regenerate": { "version": "1.4.2", @@ -33662,6 +33676,12 @@ "resolved": "https://registry.npmjs.org/@edx/brand-edx.org/-/brand-edx.org-1.6.1.tgz", "integrity": "sha512-GTddzcmQwBn30s4dBPKPbuvJAYERF3YW+B0yo9LNPvyRpQjI2dOfOsnzCuqroqDh72lEK+PFtVAEYTH9mu1Zjg==" }, + "@edx/browserslist-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@edx/browserslist-config/-/browserslist-config-1.1.1.tgz", + "integrity": "sha512-baLX2wxguWNXLIAi26l/iUIJoI9T8LVDH+8+3xP3HjFtWSCOVjz19sgxx4PlWwwMkbUkVmfuxrm2XVueqI6xLw==", + "dev": true + }, "@edx/eslint-config": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@edx/eslint-config/-/eslint-config-3.1.1.tgz", @@ -35125,23 +35145,21 @@ } }, "@edx/paragon": { - "version": "19.6.0", - "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.6.0.tgz", - "integrity": "sha512-Rl2Al7vgCEEmAK9EirZZXa1mRDnH9eOp+oi2sJPPksFDtj9gJw+PiGPzmMVojHGuRzOnE8rymNtiwpCa7lZYdg==", + "version": "19.25.4", + "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.25.4.tgz", + "integrity": "sha512-UMQokbty12amWFz5ct8MYkMJJkgfpgDzMBvexALqigl/5gaz3rrFBhijCNCUm0Ki9IT0V3DJqq4ckLegZnISRw==", "requires": { "@fortawesome/fontawesome-svg-core": "^1.2.36", - "@fortawesome/free-solid-svg-icons": "^5.15.4", - "@fortawesome/react-fontawesome": "^0.1.16", - "@popperjs/core": "^2.11.2", - "airbnb-prop-types": "^2.12.0", - "bootstrap": "4.6.0", + "@fortawesome/react-fontawesome": "^0.1.18", + "@popperjs/core": "^2.11.4", + "bootstrap": "^4.6.2", "classnames": "^2.3.1", "email-prop-type": "^3.0.0", "font-awesome": "^4.7.0", "lodash.uniqby": "^4.7.0", "mailto-link": "^1.0.0", "prop-types": "^15.8.1", - "react-bootstrap": "^1.6.4", + "react-bootstrap": "^1.6.6", "react-focus-on": "^3.5.4", "react-popper": "^2.2.5", "react-proptype-conditional-require": "^1.0.4", @@ -35149,7 +35167,7 @@ "react-table": "^7.7.0", "react-transition-group": "^4.4.2", "tabbable": "^4.0.0", - "uncontrollable": "7.2.1" + "uncontrollable": "^7.2.1" }, "dependencies": { "email-prop-type": { @@ -37806,9 +37824,9 @@ "dev": true }, "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@redux-beacon/segment": { "version": "1.1.0", @@ -37850,9 +37868,9 @@ "requires": {} }, "@restart/hooks": { - "version": "0.3.27", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz", - "integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", "requires": { "dequal": "^2.0.2" } @@ -38625,9 +38643,9 @@ } }, "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", "requires": { "@types/react": "*" } @@ -38718,7 +38736,7 @@ "@types/warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" }, "@types/webpack": { "version": "4.41.32", @@ -39051,6 +39069,7 @@ "version": "2.16.0", "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "dev": true, "requires": { "array.prototype.find": "^2.1.1", "function.prototype.name": "^1.1.2", @@ -39297,6 +39316,7 @@ "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", @@ -40004,9 +40024,9 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", "requires": {} }, "bottleneck": { @@ -41534,9 +41554,9 @@ "dev": true }, "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" }, "destroy": { "version": "1.2.0", @@ -47735,9 +47755,9 @@ } }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", + "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==", "peer": true }, "js-sdsl": { @@ -52285,6 +52305,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", + "dev": true, "requires": { "has": "^1.0.3", "object.assign": "^4.1.0", @@ -52467,13 +52488,13 @@ } }, "react-bootstrap": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz", - "integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz", + "integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==", "requires": { "@babel/runtime": "^7.14.0", "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.26", + "@restart/hooks": "^0.4.7", "@types/invariant": "^2.2.33", "@types/prop-types": "^15.7.3", "@types/react": ">=16.14.8", @@ -52484,7 +52505,7 @@ "invariant": "^2.2.4", "prop-types": "^15.7.2", "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.1", + "react-overlays": "^5.1.2", "react-transition-group": "^4.4.1", "uncontrollable": "^7.2.1", "warning": "^4.0.3" @@ -52758,13 +52779,13 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-overlays": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz", - "integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "requires": { "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.8.6", - "@restart/hooks": "^0.3.26", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", "@types/warning": "^3.0.0", "dom-helpers": "^5.2.0", "prop-types": "^15.7.2", @@ -53152,7 +53173,8 @@ "reflect.ownkeys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=" + "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", + "dev": true }, "regenerate": { "version": "1.4.2", diff --git a/package.json b/package.json index 10c8109e..9e49eb30 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,14 @@ "access": "public" }, "browserslist": [ - "last 2 versions", - "not ie > 0", - "not ie_mob > 0" + "extends @edx/browserslist-config" ], "dependencies": { "@edx/brand": "npm:@edx/brand-edx.org@^1.3.2", "@edx/frontend-component-footer": "^11.1.1", "@edx/frontend-component-header": "^3.1.1", "@edx/frontend-platform": "2.5.0", - "@edx/paragon": "19.6.0", + "@edx/paragon": "^19.25.4", "@fortawesome/fontawesome-svg-core": "^1.2.25", "@fortawesome/free-brands-svg-icons": "^5.11.2", "@fortawesome/free-solid-svg-icons": "^5.11.2", @@ -69,6 +67,7 @@ "whatwg-fetch": "^2.0.4" }, "devDependencies": { + "@edx/browserslist-config": "^1.1.1", "@edx/frontend-build": "^12.4.15", "axios": "0.21.2", "axios-mock-adapter": "^1.17.0", diff --git a/src/components/GradesView/EditModal/__snapshots__/test.jsx.snap b/src/components/GradesView/EditModal/__snapshots__/test.jsx.snap index 7da46b02..7ba9de08 100644 --- a/src/components/GradesView/EditModal/__snapshots__/test.jsx.snap +++ b/src/components/GradesView/EditModal/__snapshots__/test.jsx.snap @@ -10,21 +10,9 @@ exports[`EditModal Component snapshots gradeOverrideHistoryError is and empty an isOpen={true} onClose={[MockFunction this.closeAssignmentModal]} size="xl" + title="Edit Grades" variant="default" > - - - - - @@ -133,24 +121,12 @@ exports[`EditModal Component snapshots gradeOverrideHistoryError is empty and op isBlocking={false} isFullscreenOnMobile={true} isFullscreenScroll={false} - isOpen={true} + isOpen={false} onClose={[MockFunction this.closeAssignmentModal]} size="xl" + title="Edit Grades" variant="default" > - - - - - diff --git a/src/components/GradesView/EditModal/index.jsx b/src/components/GradesView/EditModal/index.jsx index 3ac26023..d093be89 100644 --- a/src/components/GradesView/EditModal/index.jsx +++ b/src/components/GradesView/EditModal/index.jsx @@ -9,7 +9,7 @@ import { ModalDialog, ActionRow, } from '@edx/paragon'; -import { FormattedMessage } from '@edx/frontend-platform/i18n'; +import { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import selectors from 'data/selectors'; import actions from 'data/actions'; @@ -47,19 +47,14 @@ export class EditModal extends React.Component { render() { return ( - - - - - -
@@ -101,6 +96,8 @@ EditModal.propTypes = { closeModal: PropTypes.func.isRequired, doneViewingAssignment: PropTypes.func.isRequired, updateGrades: PropTypes.func.isRequired, + // injected + intl: intlShape.isRequired, }; export const mapStateToProps = (state) => ({ @@ -114,4 +111,4 @@ export const mapDispatchToProps = { updateGrades: thunkActions.grades.updateGrades, }; -export default connect(mapStateToProps, mapDispatchToProps)(EditModal); +export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(EditModal)); diff --git a/src/components/GradesView/EditModal/test.jsx b/src/components/GradesView/EditModal/test.jsx index e1578692..c0f6cbf6 100644 --- a/src/components/GradesView/EditModal/test.jsx +++ b/src/components/GradesView/EditModal/test.jsx @@ -49,6 +49,8 @@ describe('EditModal', () => { closeModal: jest.fn(), doneViewingAssignment: jest.fn(), updateGrades: jest.fn(), + + intl: { formatMessage: (msg) => msg.defaultMessage }, }; }); diff --git a/src/components/GradesView/GradebookTable/__snapshots__/test.jsx.snap b/src/components/GradesView/GradebookTable/__snapshots__/test.jsx.snap index 34effcd0..7bd40ff9 100644 --- a/src/components/GradesView/GradebookTable/__snapshots__/test.jsx.snap +++ b/src/components/GradesView/GradebookTable/__snapshots__/test.jsx.snap @@ -48,13 +48,7 @@ exports[`GradebookTable component snapshot - fields1 and 2 between email and tot - } + content="No results found" />
diff --git a/src/components/GradesView/GradebookTable/index.jsx b/src/components/GradesView/GradebookTable/index.jsx index 3203354a..9d753a34 100644 --- a/src/components/GradesView/GradebookTable/index.jsx +++ b/src/components/GradesView/GradebookTable/index.jsx @@ -4,7 +4,9 @@ import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { DataTable } from '@edx/paragon'; -import { FormattedMessage, getLocale, isRtl } from '@edx/frontend-platform/i18n'; +import { + FormattedMessage, getLocale, isRtl, injectIntl, intlShape, +} from '@edx/frontend-platform/i18n'; import selectors from 'data/selectors'; import { Headings } from 'data/constants/grades'; @@ -44,21 +46,17 @@ export class GradebookTable extends React.Component { return { Header: label, accessor: heading }; } - mapRows(entry) { - const dataRow = { - [Headings.username]: ( - - ), - [Headings.email]: (), - [Headings.totalGrade]: `${roundGrade(entry.percent * 100)}${isRtl(getLocale()) ? '\u200f' : ''}%`, - }; - entry.section_breakdown.forEach(subsection => { - dataRow[subsection.label] = ( - - ); - }); - return dataRow; - } + mapRows = entry => ({ + [Headings.username]: ( + + ), + [Headings.email]: (), + [Headings.totalGrade]: `${roundGrade(entry.percent * 100)}${isRtl(getLocale()) ? '\u200f' : ''}%`, + ...entry.section_breakdown.reduce((acc, subsection) => ({ + ...acc, + [subsection.label]: , + }), {}), + }); nullMethod() { return null; @@ -77,7 +75,7 @@ export class GradebookTable extends React.Component { > - } /> + ); @@ -106,6 +104,8 @@ GradebookTable.propTypes = { user_name: PropTypes.string, })), headings: PropTypes.arrayOf(PropTypes.string).isRequired, + // injected + intl: intlShape.isRequired, }; export const mapStateToProps = (state) => ({ @@ -113,4 +113,4 @@ export const mapStateToProps = (state) => ({ headings: selectors.root.getHeadings(state), }); -export default connect(mapStateToProps)(GradebookTable); +export default injectIntl(connect(mapStateToProps)(GradebookTable)); diff --git a/src/components/GradesView/GradebookTable/test.jsx b/src/components/GradesView/GradebookTable/test.jsx index f144913b..6970e06d 100644 --- a/src/components/GradesView/GradebookTable/test.jsx +++ b/src/components/GradesView/GradebookTable/test.jsx @@ -80,6 +80,8 @@ describe('GradebookTable', () => { fields.field2, Headings.totalGrade, ], + + intl: { formatMessage: (msg) => msg.defaultMessage }, }; test('snapshot - fields1 and 2 between email and totalGrade, mocked rows', () => { el = shallow(); diff --git a/src/postcss.config.js b/src/postcss.config.js deleted file mode 100644 index 71d41ef9..00000000 --- a/src/postcss.config.js +++ /dev/null @@ -1,7 +0,0 @@ -/* I'm here to allow autoprefixing in webpack.prod.config.js */ -module.exports = { - plugins: [ - require('autoprefixer')({ grid: true, browsers: ['>1%'] }), - ], -}; -