Compare commits
11 Commits
open-relea
...
mashal-m/p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9976321804 | ||
|
|
41f3704116 | ||
|
|
82792033d5 | ||
|
|
84cdacd4e8 | ||
|
|
4fcc3f863f | ||
|
|
79679c23f2 | ||
|
|
9b2436991b | ||
|
|
c95f2d6b22 | ||
|
|
4f43e65f03 | ||
|
|
50bf7d236a | ||
|
|
d2723e5bc1 |
2
.env
2
.env
@@ -30,3 +30,5 @@ ENTERPRISE_MARKETING_URL=''
|
||||
ENTERPRISE_MARKETING_UTM_SOURCE=''
|
||||
ENTERPRISE_MARKETING_UTM_CAMPAIGN=''
|
||||
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM=''
|
||||
APP_ID=''
|
||||
MFE_CONFIG_API_URL=''
|
||||
|
||||
@@ -37,3 +37,5 @@ ENTERPRISE_MARKETING_URL='http://example.com'
|
||||
ENTERPRISE_MARKETING_UTM_SOURCE='example.com'
|
||||
ENTERPRISE_MARKETING_UTM_CAMPAIGN='example.com Referral'
|
||||
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM='Footer'
|
||||
APP_ID=''
|
||||
MFE_CONFIG_API_URL=''
|
||||
|
||||
4
Makefile
Executable file → Normal file
4
Makefile
Executable file → Normal file
@@ -3,7 +3,7 @@ npm-install-%: ## install specified % npm package
|
||||
git add package.json
|
||||
|
||||
transifex_resource = frontend-app-gradebook
|
||||
transifex_langs = "ar,fr,es_419,zh_CN"
|
||||
transifex_langs = "ar,fr,es_419,zh_CN,pt,it,de,uk,ru,hi,fr_CA"
|
||||
|
||||
transifex_utils = ./node_modules/.bin/transifex-utils.js
|
||||
i18n = ./src/i18n
|
||||
@@ -57,7 +57,7 @@ push_translations:
|
||||
|
||||
# Pulls translations from Transifex.
|
||||
pull_translations:
|
||||
tx pull -f --mode reviewed --languages=$(transifex_langs)
|
||||
tx pull -t -f --mode reviewed --languages=$(transifex_langs)
|
||||
|
||||
# This target is used by CI.
|
||||
validate-no-uncommitted-package-lock-changes:
|
||||
|
||||
774
package-lock.json
generated
774
package-lock.json
generated
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"name": "@edx/frontend-app-gradebook",
|
||||
"version": "1.5.0",
|
||||
"version": "1.6.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@edx/frontend-app-gradebook",
|
||||
"version": "1.5.0",
|
||||
"version": "1.6.0",
|
||||
"license": "AGPL-3.0",
|
||||
"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.3.0",
|
||||
"@edx/paragon": "19.6.0",
|
||||
"@edx/frontend-platform": "2.5.0",
|
||||
"@edx/paragon": "^20.20.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.25",
|
||||
"@fortawesome/free-brands-svg-icons": "^5.11.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.11.2",
|
||||
@@ -31,6 +31,7 @@
|
||||
"query-string": "6.13.0",
|
||||
"react": "16.14.0",
|
||||
"react-dom": "16.14.0",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-intl": "^2.9.0",
|
||||
"react-redux": "^7.1.1",
|
||||
"react-router": "5.2.0",
|
||||
@@ -3986,9 +3987,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/frontend-platform": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.3.0.tgz",
|
||||
"integrity": "sha512-vZAw3eKJgUvD3wu8QOlCbNvuhe9YOGhdVuiTiFGMJKsYagJNMuQZxTJ2DwPCr7/gprJ65mboisJ3BF5IoFzVJA==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.5.0.tgz",
|
||||
"integrity": "sha512-Ws40TMkxrF9Fz71K8bqp+qui7kXYOBvl8+PYLa1K0lmzwD70FFU73mQBTvgTJKKWcw8VsjK9oJCxmjGvz6Qe1Q==",
|
||||
"dependencies": {
|
||||
"@cospired/i18n-iso-languages": "2.2.0",
|
||||
"@formatjs/intl-pluralrules": "^4.3.3",
|
||||
@@ -4014,7 +4015,7 @@
|
||||
"transifex-utils.js": "i18n/scripts/transifex-utils.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@edx/paragon": ">= 10.0.0 < 20.0.0",
|
||||
"@edx/paragon": ">= 10.0.0 < 21.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.9.0",
|
||||
"react-dom": "^16.9.0",
|
||||
@@ -4087,36 +4088,67 @@
|
||||
}
|
||||
},
|
||||
"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": "20.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.20.0.tgz",
|
||||
"integrity": "sha512-spoEuQgRA0pf4Lg3O9a5qjePbf9dWlg206+l5WPNZtDVdBzqoxFdn9vL47GPNJRP4ksHfpTDLdmIkgX7t1TngQ==",
|
||||
"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/fontawesome-svg-core": "^6.1.1",
|
||||
"@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",
|
||||
"file-selector": "^0.6.0",
|
||||
"font-awesome": "^4.7.0",
|
||||
"glob": "^8.0.3",
|
||||
"lodash.uniqby": "^4.7.0",
|
||||
"mailto-link": "^1.0.0",
|
||||
"mailto-link": "^2.0.0",
|
||||
"prop-types": "^15.8.1",
|
||||
"react-bootstrap": "^1.6.4",
|
||||
"react-bootstrap": "^1.6.5",
|
||||
"react-dropzone": "^14.2.1",
|
||||
"react-focus-on": "^3.5.4",
|
||||
"react-loading-skeleton": "^3.1.0",
|
||||
"react-popper": "^2.2.5",
|
||||
"react-proptype-conditional-require": "^1.0.4",
|
||||
"react-responsive": "^8.2.0",
|
||||
"react-table": "^7.7.0",
|
||||
"react-transition-group": "^4.4.2",
|
||||
"tabbable": "^4.0.0",
|
||||
"uncontrollable": "7.2.1"
|
||||
"tabbable": "^5.3.3",
|
||||
"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",
|
||||
"react-intl": "^5.25.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-common-types": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz",
|
||||
"integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==",
|
||||
"hasInstallScript": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-svg-core": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz",
|
||||
"integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-common-types": "6.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/email-prop-type": {
|
||||
@@ -4127,6 +4159,35 @@
|
||||
"email-validator": "^2.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/glob": {
|
||||
"version": "8.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
|
||||
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^5.0.1",
|
||||
"once": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/minimatch": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
|
||||
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@edx/paragon/node_modules/prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
@@ -7205,9 +7266,9 @@
|
||||
}
|
||||
},
|
||||
"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"
|
||||
@@ -7272,9 +7333,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"
|
||||
},
|
||||
@@ -8233,9 +8294,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": "*"
|
||||
}
|
||||
@@ -8300,7 +8361,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",
|
||||
@@ -8667,6 +8728,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",
|
||||
@@ -9055,6 +9117,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",
|
||||
@@ -9101,7 +9164,7 @@
|
||||
"node_modules/assert-ok": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
||||
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
|
||||
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
|
||||
},
|
||||
"node_modules/assert-plus": {
|
||||
"version": "1.0.0",
|
||||
@@ -9178,6 +9241,14 @@
|
||||
"node": ">= 4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/attr-accept": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
|
||||
"integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.2.6",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
||||
@@ -9235,6 +9306,7 @@
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
||||
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.10.0"
|
||||
}
|
||||
@@ -10385,13 +10457,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"
|
||||
@@ -10929,7 +11007,7 @@
|
||||
"node_modules/cast-array": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
||||
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
|
||||
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
|
||||
"dependencies": {
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
@@ -12751,9 +12829,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"
|
||||
}
|
||||
@@ -14184,17 +14262,6 @@
|
||||
"node": ">=0.8.x"
|
||||
}
|
||||
},
|
||||
"node_modules/eventsource": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
|
||||
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/exec-buffer": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz",
|
||||
@@ -14942,6 +15009,17 @@
|
||||
"webpack": "^4.0.0 || ^5.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/file-selector": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
|
||||
"integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/file-type": {
|
||||
"version": "12.4.2",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
||||
@@ -15003,6 +15081,14 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/filter-obj": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
|
||||
"integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/finalhandler": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
|
||||
@@ -21375,12 +21461,6 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/jquery": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -21949,33 +22029,34 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mailto-link": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
|
||||
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
|
||||
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
|
||||
"dependencies": {
|
||||
"assert-ok": "~1.0.0",
|
||||
"cast-array": "~1.0.0",
|
||||
"cast-array": "~1.0.1",
|
||||
"object-filter": "~1.0.2",
|
||||
"query-string": "~2.4.1"
|
||||
"query-string": "~7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/mailto-link/node_modules/query-string": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
|
||||
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
|
||||
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
|
||||
"dependencies": {
|
||||
"strict-uri-encode": "^1.0.0"
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"filter-obj": "^1.1.0",
|
||||
"split-on-first": "^1.0.0",
|
||||
"strict-uri-encode": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mailto-link/node_modules/strict-uri-encode": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/make-dir": {
|
||||
@@ -25984,7 +26065,7 @@
|
||||
"node_modules/object-filter": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
|
||||
"integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
|
||||
"integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA=="
|
||||
},
|
||||
"node_modules/object-inspect": {
|
||||
"version": "1.12.0",
|
||||
@@ -27090,17 +27171,6 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/popper.js": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
|
||||
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/portfinder": {
|
||||
"version": "1.0.28",
|
||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
||||
@@ -27817,6 +27887,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",
|
||||
@@ -28067,13 +28138,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",
|
||||
@@ -28084,7 +28155,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"
|
||||
@@ -28488,6 +28559,32 @@
|
||||
"react": "^16.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dropzone": {
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
|
||||
"integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
|
||||
"dependencies": {
|
||||
"attr-accept": "^2.2.2",
|
||||
"file-selector": "^0.6.0",
|
||||
"prop-types": "^15.8.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">= 16.8 || 18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dropzone/node_modules/prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.13.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-error-overlay": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz",
|
||||
@@ -28541,6 +28638,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/react-helmet": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
|
||||
"integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
|
||||
"dependencies": {
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.7.2",
|
||||
"react-fast-compare": "^3.1.1",
|
||||
"react-side-effect": "^2.1.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-intl": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
|
||||
@@ -28567,14 +28678,22 @@
|
||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||
},
|
||||
"node_modules/react-loading-skeleton": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.1.0.tgz",
|
||||
"integrity": "sha512-j1U1CWWs68nBPOg7tkQqnlFcAMFF6oEK6MgqAo15f8A5p7mjH6xyKn2gHbkcimpwfO0VQXqxAswnSYVr8lWzjw==",
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8.0"
|
||||
}
|
||||
},
|
||||
"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",
|
||||
@@ -28803,6 +28922,14 @@
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-side-effect": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
|
||||
"integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-style-singleton": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.1.tgz",
|
||||
@@ -29203,7 +29330,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",
|
||||
@@ -31091,38 +31219,6 @@
|
||||
"websocket-driver": "^0.7.4"
|
||||
}
|
||||
},
|
||||
"node_modules/sockjs-client": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
|
||||
"integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"debug": "^3.2.7",
|
||||
"eventsource": "^2.0.2",
|
||||
"faye-websocket": "^0.11.4",
|
||||
"inherits": "^2.0.4",
|
||||
"url-parse": "^1.5.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://tidelift.com/funding/github/npm/sockjs-client"
|
||||
}
|
||||
},
|
||||
"node_modules/sockjs-client/node_modules/debug": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/sockjs/node_modules/uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
@@ -32037,9 +32133,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tabbable": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
|
||||
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
|
||||
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
|
||||
},
|
||||
"node_modules/table": {
|
||||
"version": "5.4.6",
|
||||
@@ -32937,9 +33033,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
|
||||
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
|
||||
},
|
||||
"node_modules/tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
@@ -33024,7 +33120,7 @@
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -36075,8 +36171,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/eslint-config/-/eslint-config-2.0.0.tgz",
|
||||
"integrity": "sha512-JfbN9kTs6qWNzNL0+GTbifHktXXpe6oPXXEy7jA6FykzD51FcGBPIp88v3AtHgfaoMnD95He3SATdeNCRIjcqQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@edx/frontend-build": {
|
||||
"version": "9.1.1",
|
||||
@@ -37570,8 +37665,7 @@
|
||||
"version": "7.5.7",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
|
||||
"integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"y18n": {
|
||||
"version": "4.0.3",
|
||||
@@ -37680,9 +37774,9 @@
|
||||
}
|
||||
},
|
||||
"@edx/frontend-platform": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.3.0.tgz",
|
||||
"integrity": "sha512-vZAw3eKJgUvD3wu8QOlCbNvuhe9YOGhdVuiTiFGMJKsYagJNMuQZxTJ2DwPCr7/gprJ65mboisJ3BF5IoFzVJA==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.5.0.tgz",
|
||||
"integrity": "sha512-Ws40TMkxrF9Fz71K8bqp+qui7kXYOBvl8+PYLa1K0lmzwD70FFU73mQBTvgTJKKWcw8VsjK9oJCxmjGvz6Qe1Q==",
|
||||
"requires": {
|
||||
"@cospired/i18n-iso-languages": "2.2.0",
|
||||
"@formatjs/intl-pluralrules": "^4.3.3",
|
||||
@@ -37762,33 +37856,56 @@
|
||||
}
|
||||
},
|
||||
"@edx/paragon": {
|
||||
"version": "19.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.6.0.tgz",
|
||||
"integrity": "sha512-Rl2Al7vgCEEmAK9EirZZXa1mRDnH9eOp+oi2sJPPksFDtj9gJw+PiGPzmMVojHGuRzOnE8rymNtiwpCa7lZYdg==",
|
||||
"version": "20.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.20.0.tgz",
|
||||
"integrity": "sha512-spoEuQgRA0pf4Lg3O9a5qjePbf9dWlg206+l5WPNZtDVdBzqoxFdn9vL47GPNJRP4ksHfpTDLdmIkgX7t1TngQ==",
|
||||
"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/fontawesome-svg-core": "^6.1.1",
|
||||
"@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",
|
||||
"file-selector": "^0.6.0",
|
||||
"font-awesome": "^4.7.0",
|
||||
"glob": "^8.0.3",
|
||||
"lodash.uniqby": "^4.7.0",
|
||||
"mailto-link": "^1.0.0",
|
||||
"mailto-link": "^2.0.0",
|
||||
"prop-types": "^15.8.1",
|
||||
"react-bootstrap": "^1.6.4",
|
||||
"react-bootstrap": "^1.6.5",
|
||||
"react-dropzone": "^14.2.1",
|
||||
"react-focus-on": "^3.5.4",
|
||||
"react-loading-skeleton": "^3.1.0",
|
||||
"react-popper": "^2.2.5",
|
||||
"react-proptype-conditional-require": "^1.0.4",
|
||||
"react-responsive": "^8.2.0",
|
||||
"react-table": "^7.7.0",
|
||||
"react-transition-group": "^4.4.2",
|
||||
"tabbable": "^4.0.0",
|
||||
"uncontrollable": "7.2.1"
|
||||
"tabbable": "^5.3.3",
|
||||
"uncontrollable": "^7.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-common-types": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz",
|
||||
"integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ=="
|
||||
},
|
||||
"@fortawesome/fontawesome-svg-core": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz",
|
||||
"integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==",
|
||||
"requires": {
|
||||
"@fortawesome/fontawesome-common-types": "6.2.1"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"email-prop-type": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/email-prop-type/-/email-prop-type-3.0.1.tgz",
|
||||
@@ -37797,6 +37914,26 @@
|
||||
"email-validator": "^2.0.4"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "8.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
|
||||
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^5.0.1",
|
||||
"once": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
|
||||
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
@@ -40222,8 +40359,7 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
|
||||
"integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "5.13.0",
|
||||
@@ -40307,15 +40443,14 @@
|
||||
}
|
||||
},
|
||||
"@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",
|
||||
"resolved": "https://registry.npmjs.org/@redux-beacon/segment/-/segment-1.1.0.tgz",
|
||||
"integrity": "sha512-NLRoP3Jfx5z99YX6TFFznwXIMjqjD6/qdMZIKFRgGO8NtMWrCruA8EeQYPJZUBnuOjw6RtOA1UdjbqyRmdhc/Q==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-NLRoP3Jfx5z99YX6TFFznwXIMjqjD6/qdMZIKFRgGO8NtMWrCruA8EeQYPJZUBnuOjw6RtOA1UdjbqyRmdhc/Q=="
|
||||
},
|
||||
"@reduxjs/toolkit": {
|
||||
"version": "1.8.1",
|
||||
@@ -40339,21 +40474,19 @@
|
||||
"redux-thunk": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz",
|
||||
"integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@restart/context": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz",
|
||||
"integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q=="
|
||||
},
|
||||
"@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"
|
||||
}
|
||||
@@ -40685,57 +40818,49 @@
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz",
|
||||
"integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-remove-jsx-attribute": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz",
|
||||
"integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-remove-jsx-empty-expression": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz",
|
||||
"integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-replace-jsx-attribute-value": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz",
|
||||
"integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-svg-dynamic-title": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz",
|
||||
"integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-svg-em-dimensions": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz",
|
||||
"integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-transform-react-native-svg": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz",
|
||||
"integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-plugin-transform-svg-component": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz",
|
||||
"integrity": "sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@svgr/babel-preset": {
|
||||
"version": "6.2.0",
|
||||
@@ -41060,9 +41185,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": "*"
|
||||
}
|
||||
@@ -41125,7 +41250,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",
|
||||
@@ -41333,8 +41458,7 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz",
|
||||
"integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@webpack-cli/info": {
|
||||
"version": "1.4.1",
|
||||
@@ -41349,8 +41473,7 @@
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz",
|
||||
"integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"@xtuc/ieee754": {
|
||||
"version": "1.2.0",
|
||||
@@ -41449,6 +41572,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",
|
||||
@@ -41506,8 +41630,7 @@
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"ansi": {
|
||||
"version": "0.3.1",
|
||||
@@ -41747,6 +41870,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",
|
||||
@@ -41781,7 +41905,7 @@
|
||||
"assert-ok": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
||||
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
|
||||
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
@@ -41840,6 +41964,11 @@
|
||||
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
|
||||
"dev": true
|
||||
},
|
||||
"attr-accept": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
|
||||
"integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
|
||||
},
|
||||
"autoprefixer": {
|
||||
"version": "10.2.6",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
||||
@@ -41875,6 +42004,7 @@
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
||||
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"follow-redirects": "^1.10.0"
|
||||
}
|
||||
@@ -42815,10 +42945,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==",
|
||||
"requires": {}
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
|
||||
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ=="
|
||||
},
|
||||
"bottleneck": {
|
||||
"version": "2.19.5",
|
||||
@@ -43234,7 +43363,7 @@
|
||||
"cast-array": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
||||
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
|
||||
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
|
||||
"requires": {
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
@@ -44024,8 +44153,7 @@
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz",
|
||||
"integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "5.2.7",
|
||||
@@ -44155,8 +44283,7 @@
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
|
||||
"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"csso": {
|
||||
"version": "4.2.0",
|
||||
@@ -44650,9 +44777,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.0.4",
|
||||
@@ -45636,8 +45763,7 @@
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
|
||||
"integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"eslint-scope": {
|
||||
"version": "5.1.1",
|
||||
@@ -45685,8 +45811,7 @@
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
||||
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -45760,14 +45885,6 @@
|
||||
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"eventsource": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
|
||||
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true
|
||||
},
|
||||
"exec-buffer": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz",
|
||||
@@ -46373,6 +46490,14 @@
|
||||
"schema-utils": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"file-selector": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
|
||||
"integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
|
||||
"requires": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"file-type": {
|
||||
"version": "12.4.2",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
||||
@@ -46419,6 +46544,11 @@
|
||||
"to-regex-range": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"filter-obj": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
|
||||
"integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
|
||||
@@ -47631,8 +47761,7 @@
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
|
||||
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"identity-obj-proxy": {
|
||||
"version": "3.0.0",
|
||||
@@ -50257,8 +50386,7 @@
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
|
||||
"integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"jest-regex-util": {
|
||||
"version": "26.0.0",
|
||||
@@ -51400,12 +51528,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
||||
"peer": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -51891,28 +52013,26 @@
|
||||
"dev": true
|
||||
},
|
||||
"mailto-link": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
|
||||
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
|
||||
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
|
||||
"requires": {
|
||||
"assert-ok": "~1.0.0",
|
||||
"cast-array": "~1.0.0",
|
||||
"cast-array": "~1.0.1",
|
||||
"object-filter": "~1.0.2",
|
||||
"query-string": "~2.4.1"
|
||||
"query-string": "~7.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"query-string": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
|
||||
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
|
||||
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
|
||||
"requires": {
|
||||
"strict-uri-encode": "^1.0.0"
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"filter-obj": "^1.1.0",
|
||||
"split-on-first": "^1.0.0",
|
||||
"strict-uri-encode": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"strict-uri-encode": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -54858,7 +54978,7 @@
|
||||
"object-filter": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
|
||||
"integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
|
||||
"integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA=="
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.12.0",
|
||||
@@ -55665,12 +55785,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"popper.js": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
|
||||
"peer": true
|
||||
},
|
||||
"portfinder": {
|
||||
"version": "1.0.28",
|
||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
||||
@@ -55745,29 +55859,25 @@
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz",
|
||||
"integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-discard-duplicates": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
|
||||
"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-discard-empty": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
|
||||
"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-discard-overridden": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
|
||||
"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-loader": {
|
||||
"version": "6.1.1",
|
||||
@@ -55857,8 +55967,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
|
||||
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-modules-local-by-default": {
|
||||
"version": "4.0.0",
|
||||
@@ -55893,8 +56002,7 @@
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
|
||||
"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"postcss-normalize-display-values": {
|
||||
"version": "5.1.0",
|
||||
@@ -56156,6 +56264,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",
|
||||
@@ -56347,13 +56456,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",
|
||||
@@ -56364,7 +56473,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"
|
||||
@@ -56695,6 +56804,28 @@
|
||||
"scheduler": "^0.19.1"
|
||||
}
|
||||
},
|
||||
"react-dropzone": {
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
|
||||
"integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
|
||||
"requires": {
|
||||
"attr-accept": "^2.2.2",
|
||||
"file-selector": "^0.6.0",
|
||||
"prop-types": "^15.8.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"prop-types": {
|
||||
"version": "15.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.13.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-error-overlay": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz",
|
||||
@@ -56733,6 +56864,17 @@
|
||||
"use-sidecar": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"react-helmet": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
|
||||
"integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
|
||||
"requires": {
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.7.2",
|
||||
"react-fast-compare": "^3.1.1",
|
||||
"react-side-effect": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"react-intl": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
|
||||
@@ -56755,14 +56897,19 @@
|
||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||
},
|
||||
"react-loading-skeleton": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.1.0.tgz",
|
||||
"integrity": "sha512-j1U1CWWs68nBPOg7tkQqnlFcAMFF6oEK6MgqAo15f8A5p7mjH6xyKn2gHbkcimpwfO0VQXqxAswnSYVr8lWzjw=="
|
||||
},
|
||||
"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",
|
||||
@@ -56936,6 +57083,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-side-effect": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
|
||||
"integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw=="
|
||||
},
|
||||
"react-style-singleton": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.1.tgz",
|
||||
@@ -56956,8 +57108,7 @@
|
||||
"react-table": {
|
||||
"version": "7.7.0",
|
||||
"resolved": "https://registry.npmjs.org/react-table/-/react-table-7.7.0.tgz",
|
||||
"integrity": "sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA=="
|
||||
},
|
||||
"react-test-renderer": {
|
||||
"version": "16.14.0",
|
||||
@@ -57224,8 +57375,7 @@
|
||||
"redux-devtools-extension": {
|
||||
"version": "2.13.8",
|
||||
"resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz",
|
||||
"integrity": "sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg==",
|
||||
"requires": {}
|
||||
"integrity": "sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg=="
|
||||
},
|
||||
"redux-logger": {
|
||||
"version": "3.0.6",
|
||||
@@ -57252,7 +57402,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",
|
||||
@@ -58750,34 +58901,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"sockjs-client": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
|
||||
"integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"debug": "^3.2.7",
|
||||
"eventsource": "^2.0.2",
|
||||
"faye-websocket": "^0.11.4",
|
||||
"inherits": "^2.0.4",
|
||||
"url-parse": "^1.5.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sort-keys": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
||||
@@ -59501,9 +59624,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"tabbable": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
|
||||
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
|
||||
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
|
||||
},
|
||||
"table": {
|
||||
"version": "5.4.6",
|
||||
@@ -60194,9 +60317,9 @@
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
|
||||
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
@@ -60263,7 +60386,7 @@
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"devOptional": true
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.15.4",
|
||||
@@ -60521,8 +60644,7 @@
|
||||
"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": {}
|
||||
"integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg=="
|
||||
},
|
||||
"use-sidecar": {
|
||||
"version": "1.0.5",
|
||||
@@ -60757,8 +60879,7 @@
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
|
||||
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
},
|
||||
"webpack-sources": {
|
||||
"version": "3.2.3",
|
||||
@@ -61217,8 +61338,7 @@
|
||||
"version": "8.5.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
|
||||
"integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@edx/frontend-app-gradebook",
|
||||
"version": "1.5.0",
|
||||
"version": "1.6.0",
|
||||
"description": "edx editable gradebook-ui to manipulate grade overrides on subsections",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -33,8 +33,8 @@
|
||||
"@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.3.0",
|
||||
"@edx/paragon": "19.6.0",
|
||||
"@edx/frontend-platform": "2.5.0",
|
||||
"@edx/paragon": "^20.20.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.25",
|
||||
"@fortawesome/free-brands-svg-icons": "^5.11.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.11.2",
|
||||
@@ -52,6 +52,7 @@
|
||||
"query-string": "6.13.0",
|
||||
"react": "16.14.0",
|
||||
"react-dom": "16.14.0",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-intl": "^2.9.0",
|
||||
"react-redux": "^7.1.1",
|
||||
"react-router": "5.2.0",
|
||||
|
||||
@@ -10,9 +10,11 @@ import { routePath } from 'data/constants/app';
|
||||
import store from 'data/store';
|
||||
import GradebookPage from 'containers/GradebookPage';
|
||||
import './App.scss';
|
||||
import Head from './head/Head';
|
||||
|
||||
const App = () => (
|
||||
<AppProvider store={store}>
|
||||
<Head />
|
||||
<Router>
|
||||
<div>
|
||||
<Header />
|
||||
|
||||
@@ -12,6 +12,7 @@ import store from 'data/store';
|
||||
import GradebookPage from 'containers/GradebookPage';
|
||||
|
||||
import App from './App';
|
||||
import Head from './head/Head';
|
||||
|
||||
jest.mock('react-router-dom', () => ({
|
||||
BrowserRouter: () => 'BrowserRouter',
|
||||
@@ -41,7 +42,7 @@ describe('App router component', () => {
|
||||
beforeEach(() => {
|
||||
process.env.LOGO_POWERED_BY_OPEN_EDX_URL_SVG = logo;
|
||||
el = shallow(<App />);
|
||||
router = el.childAt(0);
|
||||
router = el.childAt(1);
|
||||
});
|
||||
describe('AppProvider', () => {
|
||||
test('AppProvider is the parent component, passed the redux store props', () => {
|
||||
@@ -49,8 +50,13 @@ describe('App router component', () => {
|
||||
expect(el.props().store).toEqual(store);
|
||||
});
|
||||
});
|
||||
describe('Router', () => {
|
||||
describe('Head', () => {
|
||||
test('first child of AppProvider', () => {
|
||||
expect(el.childAt(0).type()).toBe(Head);
|
||||
});
|
||||
});
|
||||
describe('Router', () => {
|
||||
test('second child of AppProvider', () => {
|
||||
expect(router.type()).toBe(Router);
|
||||
});
|
||||
test('Header is above/outside-of the routing', () => {
|
||||
|
||||
@@ -4,6 +4,7 @@ exports[`App router component snapshot 1`] = `
|
||||
<AppProvider
|
||||
store="testStore"
|
||||
>
|
||||
<injectIntl(ShimmedIntlComponent) />
|
||||
<BrowserRouter>
|
||||
<div>
|
||||
<Header />
|
||||
|
||||
@@ -17,6 +17,7 @@ exports[`PercentGroup Component snapshots basic snapshot 1`] = `
|
||||
</FormLabel>
|
||||
<ForwardRef
|
||||
as="input"
|
||||
autoResize={false}
|
||||
disabled={false}
|
||||
max={100}
|
||||
min={0}
|
||||
@@ -52,6 +53,7 @@ exports[`PercentGroup Component snapshots disabled 1`] = `
|
||||
</FormLabel>
|
||||
<ForwardRef
|
||||
as="input"
|
||||
autoResize={false}
|
||||
disabled={true}
|
||||
max={100}
|
||||
min={0}
|
||||
|
||||
@@ -17,6 +17,7 @@ exports[`SelectGroup Component snapshots basic snapshot 1`] = `
|
||||
</FormLabel>
|
||||
<ForwardRef
|
||||
as="select"
|
||||
autoResize={false}
|
||||
disabled={false}
|
||||
onChange={[MockFunction props.onChange]}
|
||||
plaintext={false}
|
||||
@@ -62,6 +63,7 @@ exports[`SelectGroup Component snapshots disabled 1`] = `
|
||||
</FormLabel>
|
||||
<ForwardRef
|
||||
as="select"
|
||||
autoResize={false}
|
||||
disabled={true}
|
||||
onChange={[MockFunction props.onChange]}
|
||||
plaintext={false}
|
||||
|
||||
@@ -2,10 +2,10 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
import { Button } from '@edx/paragon';
|
||||
|
||||
import { configuration } from 'config';
|
||||
import { views } from 'data/constants/app';
|
||||
import actions from 'data/actions';
|
||||
import selectors from 'data/selectors';
|
||||
@@ -25,7 +25,7 @@ export class GradebookHeader extends React.Component {
|
||||
}
|
||||
|
||||
lmsInstructorDashboardUrl = courseId => (
|
||||
`${configuration.LMS_BASE_URL}/courses/${courseId}/instructor`
|
||||
`${getConfig().LMS_BASE_URL}/courses/${courseId}/instructor`
|
||||
);
|
||||
|
||||
handleToggleViewClick() {
|
||||
|
||||
@@ -1,17 +1,58 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`EditMoal Component snapshots gradeOverrideHistoryError is and empty and open is true modal open and StatusAlert showing 1`] = `
|
||||
<Modal
|
||||
body={
|
||||
exports[`EditModal Component snapshots gradeOverrideHistoryError is and empty and open is true modal open and StatusAlert showing 1`] = `
|
||||
<ModalDialog
|
||||
closeLabel="Close"
|
||||
hasCloseButton={true}
|
||||
isBlocking={false}
|
||||
isFullscreenOnMobile={true}
|
||||
isFullscreenScroll={false}
|
||||
isOpen={true}
|
||||
onClose={[MockFunction this.closeAssignmentModal]}
|
||||
size="xl"
|
||||
variant="default"
|
||||
>
|
||||
<ModalDialogHeader
|
||||
as="div"
|
||||
>
|
||||
<ModalDialogTitle
|
||||
as="h2"
|
||||
>
|
||||
<FormattedMessage
|
||||
defaultMessage="Edit Grades"
|
||||
description="Edit Modal title"
|
||||
id="gradebook.GradesView.EditModal.title"
|
||||
/>
|
||||
</ModalDialogTitle>
|
||||
</ModalDialogHeader>
|
||||
<ModalDialogBody
|
||||
as="div"
|
||||
>
|
||||
<div>
|
||||
<ModalHeaders />
|
||||
<Alert
|
||||
<ForwardRef
|
||||
dismissible={false}
|
||||
onClose={[Function]}
|
||||
show={true}
|
||||
stacked={false}
|
||||
transition={
|
||||
Object {
|
||||
"$$typeof": Symbol(react.forward_ref),
|
||||
"defaultProps": Object {
|
||||
"appear": false,
|
||||
"in": false,
|
||||
"mountOnEnter": false,
|
||||
"timeout": 300,
|
||||
"unmountOnExit": false,
|
||||
},
|
||||
"displayName": "Fade",
|
||||
"render": [Function],
|
||||
}
|
||||
}
|
||||
variant="danger"
|
||||
>
|
||||
Weve been trying to contact you regarding...
|
||||
</Alert>
|
||||
</ForwardRef>
|
||||
<OverrideTable />
|
||||
<div>
|
||||
<FormattedMessage
|
||||
@@ -28,10 +69,48 @@ exports[`EditMoal Component snapshots gradeOverrideHistoryError is and empty and
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
buttons={
|
||||
Array [
|
||||
<Button
|
||||
</ModalDialogBody>
|
||||
<ModalDialogFooter
|
||||
as="div"
|
||||
>
|
||||
<ActionRow
|
||||
as="div"
|
||||
isStacked={false}
|
||||
>
|
||||
<ForwardRef
|
||||
as={
|
||||
Object {
|
||||
"$$typeof": Symbol(react.forward_ref),
|
||||
"Deprecated": [Function],
|
||||
"defaultProps": Object {
|
||||
"active": false,
|
||||
"children": undefined,
|
||||
"className": undefined,
|
||||
"disabled": false,
|
||||
"iconAfter": undefined,
|
||||
"iconBefore": undefined,
|
||||
"variant": "primary",
|
||||
},
|
||||
"propTypes": Object {
|
||||
"children": [Function],
|
||||
"className": [Function],
|
||||
"iconAfter": [Function],
|
||||
"iconBefore": [Function],
|
||||
},
|
||||
"render": [Function],
|
||||
}
|
||||
}
|
||||
variant="tertiary"
|
||||
>
|
||||
<FormattedMessage
|
||||
defaultMessage="Cancel"
|
||||
description="Edit Modal close button text"
|
||||
id="gradebook.GradesView.EditModal.closeText"
|
||||
/>
|
||||
</ForwardRef>
|
||||
<ForwardRef
|
||||
active={false}
|
||||
disabled={false}
|
||||
onClick={[MockFunction this.handleAdjustedGradeClick]}
|
||||
variant="primary"
|
||||
>
|
||||
@@ -40,40 +119,65 @@ exports[`EditMoal Component snapshots gradeOverrideHistoryError is and empty and
|
||||
description="Edit Modal Save button label"
|
||||
id="gradebook.GradesView.EditModal.saveGrade"
|
||||
/>
|
||||
</Button>,
|
||||
]
|
||||
}
|
||||
closeText={
|
||||
<FormattedMessage
|
||||
defaultMessage="Cancel"
|
||||
description="Edit Modal close button text"
|
||||
id="gradebook.GradesView.EditModal.closeText"
|
||||
/>
|
||||
}
|
||||
onClose={[MockFunction this.closeAssignmentModal]}
|
||||
open={true}
|
||||
title={
|
||||
<FormattedMessage
|
||||
defaultMessage="Edit Grades"
|
||||
description="Edit Modal title"
|
||||
id="gradebook.GradesView.EditModal.title"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</ForwardRef>
|
||||
</ActionRow>
|
||||
</ModalDialogFooter>
|
||||
</ModalDialog>
|
||||
`;
|
||||
|
||||
exports[`EditMoal Component snapshots gradeOverrideHistoryError is empty and open is false modal closed and StatusAlert closed 1`] = `
|
||||
<Modal
|
||||
body={
|
||||
exports[`EditModal Component snapshots gradeOverrideHistoryError is empty and open is false modal closed and StatusAlert closed 1`] = `
|
||||
<ModalDialog
|
||||
closeLabel="Close"
|
||||
hasCloseButton={true}
|
||||
isBlocking={false}
|
||||
isFullscreenOnMobile={true}
|
||||
isFullscreenScroll={false}
|
||||
isOpen={true}
|
||||
onClose={[MockFunction this.closeAssignmentModal]}
|
||||
size="xl"
|
||||
variant="default"
|
||||
>
|
||||
<ModalDialogHeader
|
||||
as="div"
|
||||
>
|
||||
<ModalDialogTitle
|
||||
as="h2"
|
||||
>
|
||||
<FormattedMessage
|
||||
defaultMessage="Edit Grades"
|
||||
description="Edit Modal title"
|
||||
id="gradebook.GradesView.EditModal.title"
|
||||
/>
|
||||
</ModalDialogTitle>
|
||||
</ModalDialogHeader>
|
||||
<ModalDialogBody
|
||||
as="div"
|
||||
>
|
||||
<div>
|
||||
<ModalHeaders />
|
||||
<Alert
|
||||
<ForwardRef
|
||||
dismissible={false}
|
||||
onClose={[Function]}
|
||||
show={false}
|
||||
stacked={false}
|
||||
transition={
|
||||
Object {
|
||||
"$$typeof": Symbol(react.forward_ref),
|
||||
"defaultProps": Object {
|
||||
"appear": false,
|
||||
"in": false,
|
||||
"mountOnEnter": false,
|
||||
"timeout": 300,
|
||||
"unmountOnExit": false,
|
||||
},
|
||||
"displayName": "Fade",
|
||||
"render": [Function],
|
||||
}
|
||||
}
|
||||
variant="danger"
|
||||
>
|
||||
|
||||
</Alert>
|
||||
</ForwardRef>
|
||||
<OverrideTable />
|
||||
<div>
|
||||
<FormattedMessage
|
||||
@@ -90,10 +194,48 @@ exports[`EditMoal Component snapshots gradeOverrideHistoryError is empty and ope
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
buttons={
|
||||
Array [
|
||||
<Button
|
||||
</ModalDialogBody>
|
||||
<ModalDialogFooter
|
||||
as="div"
|
||||
>
|
||||
<ActionRow
|
||||
as="div"
|
||||
isStacked={false}
|
||||
>
|
||||
<ForwardRef
|
||||
as={
|
||||
Object {
|
||||
"$$typeof": Symbol(react.forward_ref),
|
||||
"Deprecated": [Function],
|
||||
"defaultProps": Object {
|
||||
"active": false,
|
||||
"children": undefined,
|
||||
"className": undefined,
|
||||
"disabled": false,
|
||||
"iconAfter": undefined,
|
||||
"iconBefore": undefined,
|
||||
"variant": "primary",
|
||||
},
|
||||
"propTypes": Object {
|
||||
"children": [Function],
|
||||
"className": [Function],
|
||||
"iconAfter": [Function],
|
||||
"iconBefore": [Function],
|
||||
},
|
||||
"render": [Function],
|
||||
}
|
||||
}
|
||||
variant="tertiary"
|
||||
>
|
||||
<FormattedMessage
|
||||
defaultMessage="Cancel"
|
||||
description="Edit Modal close button text"
|
||||
id="gradebook.GradesView.EditModal.closeText"
|
||||
/>
|
||||
</ForwardRef>
|
||||
<ForwardRef
|
||||
active={false}
|
||||
disabled={false}
|
||||
onClick={[MockFunction this.handleAdjustedGradeClick]}
|
||||
variant="primary"
|
||||
>
|
||||
@@ -102,24 +244,8 @@ exports[`EditMoal Component snapshots gradeOverrideHistoryError is empty and ope
|
||||
description="Edit Modal Save button label"
|
||||
id="gradebook.GradesView.EditModal.saveGrade"
|
||||
/>
|
||||
</Button>,
|
||||
]
|
||||
}
|
||||
closeText={
|
||||
<FormattedMessage
|
||||
defaultMessage="Cancel"
|
||||
description="Edit Modal close button text"
|
||||
id="gradebook.GradesView.EditModal.closeText"
|
||||
/>
|
||||
}
|
||||
onClose={[MockFunction this.closeAssignmentModal]}
|
||||
open={false}
|
||||
title={
|
||||
<FormattedMessage
|
||||
defaultMessage="Edit Grades"
|
||||
description="Edit Modal title"
|
||||
id="gradebook.GradesView.EditModal.title"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</ForwardRef>
|
||||
</ActionRow>
|
||||
</ModalDialogFooter>
|
||||
</ModalDialog>
|
||||
`;
|
||||
|
||||
@@ -5,8 +5,9 @@ import { connect } from 'react-redux';
|
||||
|
||||
import {
|
||||
Button,
|
||||
Modal,
|
||||
Alert,
|
||||
ModalDialog,
|
||||
ActionRow,
|
||||
} from '@edx/paragon';
|
||||
import { FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
|
||||
@@ -46,11 +47,20 @@ export class EditModal extends React.Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Modal
|
||||
open={this.props.open}
|
||||
title={<FormattedMessage {...messages.title} />}
|
||||
closeText={<FormattedMessage {...messages.closeText} />}
|
||||
body={(
|
||||
|
||||
<ModalDialog
|
||||
isOpen
|
||||
onClose={this.closeAssignmentModal}
|
||||
size="xl"
|
||||
hasCloseButton
|
||||
isFullscreenOnMobile
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
<ModalDialog.Title>
|
||||
<FormattedMessage {...messages.title} />
|
||||
</ModalDialog.Title>
|
||||
</ModalDialog.Header>
|
||||
<ModalDialog.Body>
|
||||
<div>
|
||||
<ModalHeaders />
|
||||
<Alert
|
||||
@@ -64,14 +74,18 @@ export class EditModal extends React.Component {
|
||||
<div><FormattedMessage {...messages.visibility} /></div>
|
||||
<div><FormattedMessage {...messages.saveVisibility} /></div>
|
||||
</div>
|
||||
)}
|
||||
buttons={[
|
||||
<Button variant="primary" onClick={this.handleAdjustedGradeClick}>
|
||||
<FormattedMessage {...messages.saveGrade} />
|
||||
</Button>,
|
||||
]}
|
||||
onClose={this.closeAssignmentModal}
|
||||
/>
|
||||
</ModalDialog.Body>
|
||||
<ModalDialog.Footer>
|
||||
<ActionRow>
|
||||
<ModalDialog.CloseButton variant="tertiary">
|
||||
<FormattedMessage {...messages.closeText} />
|
||||
</ModalDialog.CloseButton>
|
||||
<Button variant="primary" onClick={this.handleAdjustedGradeClick}>
|
||||
<FormattedMessage {...messages.saveGrade} />
|
||||
</Button>
|
||||
</ActionRow>
|
||||
</ModalDialog.Footer>
|
||||
</ModalDialog>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,15 +9,11 @@ import {
|
||||
EditModal,
|
||||
mapDispatchToProps,
|
||||
mapStateToProps,
|
||||
} from '.';
|
||||
}
|
||||
from '.';
|
||||
|
||||
jest.mock('./OverrideTable', () => 'OverrideTable');
|
||||
jest.mock('./ModalHeaders', () => 'ModalHeaders');
|
||||
jest.mock('@edx/paragon', () => ({
|
||||
Button: () => 'Button',
|
||||
Modal: () => 'Modal',
|
||||
Alert: () => 'Alert',
|
||||
}));
|
||||
jest.mock('data/actions', () => ({
|
||||
__esModule: true,
|
||||
default: {
|
||||
@@ -44,7 +40,7 @@ jest.mock('data/selectors', () => ({
|
||||
},
|
||||
},
|
||||
}));
|
||||
describe('EditMoal', () => {
|
||||
describe('EditModal', () => {
|
||||
let props;
|
||||
beforeEach(() => {
|
||||
props = {
|
||||
|
||||
@@ -14,7 +14,7 @@ exports[`GradebookTable component snapshot - fields1 and 2 between email and tot
|
||||
},
|
||||
Object {
|
||||
"Header": <FormattedMessage
|
||||
defaultMessage="Email"
|
||||
defaultMessage="Email*"
|
||||
description="Gradebook table email column header"
|
||||
id="gradebook.GradesView.table.headings.email"
|
||||
/>,
|
||||
|
||||
@@ -3,7 +3,7 @@ import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
const messages = defineMessages({
|
||||
emailHeading: {
|
||||
id: 'gradebook.GradesView.table.headings.email',
|
||||
defaultMessage: 'Email',
|
||||
defaultMessage: 'Email*',
|
||||
description: 'Gradebook table email column header',
|
||||
},
|
||||
totalGradeHeading: {
|
||||
|
||||
@@ -15,6 +15,7 @@ exports[`ImportGradesButton component snapshot snapshot - loads export form w/ a
|
||||
>
|
||||
<ForwardRef
|
||||
as="input"
|
||||
autoResize={false}
|
||||
className="d-none"
|
||||
label={
|
||||
<FormattedMessage
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
const configuration = {
|
||||
BASE_URL: process.env.BASE_URL,
|
||||
LMS_BASE_URL: process.env.LMS_BASE_URL,
|
||||
LOGIN_URL: process.env.LOGIN_URL,
|
||||
LOGOUT_URL: process.env.LOGOUT_URL,
|
||||
CSRF_TOKEN_API_PATH: process.env.CSRF_TOKEN_API_PATH,
|
||||
REFRESH_ACCESS_TOKEN_ENDPOINT: process.env.REFRESH_ACCESS_TOKEN_ENDPOINT,
|
||||
DATA_API_BASE_URL: process.env.DATA_API_BASE_URL,
|
||||
SECURE_COOKIES: process.env.NODE_ENV !== 'development',
|
||||
SEGMENT_KEY: process.env.SEGMENT_KEY,
|
||||
ACCESS_TOKEN_COOKIE_NAME: process.env.ACCESS_TOKEN_COOKIE_NAME,
|
||||
};
|
||||
|
||||
const features = {};
|
||||
|
||||
export { configuration, features };
|
||||
@@ -14,10 +14,10 @@ const { get, post, stringifyUrl } = utils;
|
||||
/*********************************************************************************
|
||||
* GET Actions
|
||||
*********************************************************************************/
|
||||
const assignmentTypes = () => get(urls.assignmentTypes);
|
||||
const cohorts = () => get(urls.cohorts);
|
||||
const roles = () => get(urls.roles);
|
||||
const tracks = () => get(urls.tracks);
|
||||
const assignmentTypes = () => get(urls.getAssignmentTypesUrl());
|
||||
const cohorts = () => get(urls.getCohortsUrl());
|
||||
const roles = () => get(urls.getRolesUrl());
|
||||
const tracks = () => get(urls.getTracksUrl());
|
||||
|
||||
/**
|
||||
* fetch.gradebookData(searchText, cohort, track, options)
|
||||
@@ -45,7 +45,7 @@ const gradebookData = (searchText, cohort, track, options = {}) => {
|
||||
[paramKeys.assignmentGradeMax]: options.assignmentGradeMax,
|
||||
[paramKeys.assignmentGradeMin]: options.assignmentGradeMin,
|
||||
};
|
||||
return get(stringifyUrl(urls.gradebook, queryParams));
|
||||
return get(stringifyUrl(urls.getGradebookUrl(), queryParams));
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -53,7 +53,7 @@ const gradebookData = (searchText, cohort, track, options = {}) => {
|
||||
* fetches bulk operation history and raises an error if the operation fails
|
||||
* @return {Promise} - get response
|
||||
*/
|
||||
const gradeBulkOperationHistory = () => get(urls.bulkHistory)
|
||||
const gradeBulkOperationHistory = () => get(urls.getBulkHistoryUrl())
|
||||
.then(response => response.data)
|
||||
.catch(() => Promise.reject(Error(messages.errors.unhandledResponse)));
|
||||
|
||||
@@ -87,7 +87,7 @@ const gradeOverrideHistory = (subsectionId, userId) => (
|
||||
* }
|
||||
* @return {Promise} - post response
|
||||
*/
|
||||
const updateGradebookData = (updateData) => post(urls.bulkUpdate, updateData);
|
||||
const updateGradebookData = (updateData) => post(urls.getBulkUpdateUrl(), updateData);
|
||||
|
||||
/**
|
||||
* uploadGradeCsv(formData)
|
||||
|
||||
@@ -35,28 +35,28 @@ describe('lms service api', () => {
|
||||
describe('fetch.assignmentTypes', () => {
|
||||
testSimpleFetch(
|
||||
api.fetch.assignmentTypes,
|
||||
urls.assignmentTypes,
|
||||
urls.getAssignmentTypesUrl(),
|
||||
'fetches from urls.assignmentTypes',
|
||||
);
|
||||
});
|
||||
describe('fetch.cohorts', () => {
|
||||
testSimpleFetch(
|
||||
api.fetch.cohorts,
|
||||
urls.cohorts,
|
||||
urls.getCohortsUrl(),
|
||||
'fetches from urls.cohorts',
|
||||
);
|
||||
});
|
||||
describe('fetch.roles', () => {
|
||||
testSimpleFetch(
|
||||
api.fetch.roles,
|
||||
urls.roles,
|
||||
urls.getRolesUrl(),
|
||||
'fetches from urls.roles',
|
||||
);
|
||||
});
|
||||
describe('fetch.tracks', () => {
|
||||
testSimpleFetch(
|
||||
api.fetch.tracks,
|
||||
urls.tracks,
|
||||
urls.getTracksUrl(),
|
||||
'fetches from urls.tracks',
|
||||
);
|
||||
});
|
||||
@@ -98,7 +98,7 @@ describe('lms service api', () => {
|
||||
});
|
||||
test('loads only passed values if options is empty', () => (
|
||||
api.fetch.gradebookData(searchText, cohort, track).then(({ data }) => {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.gradebook, {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.getGradebookUrl(), {
|
||||
[paramKeys.pageSize]: pageSize,
|
||||
[paramKeys.userContains]: searchText,
|
||||
[paramKeys.cohortId]: cohort,
|
||||
@@ -114,7 +114,7 @@ describe('lms service api', () => {
|
||||
));
|
||||
test('loads ["all"] for excludedCorseRoles if not includeCourseRoles', () => (
|
||||
api.fetch.gradebookData(searchText, cohort, track, options).then(({ data }) => {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.gradebook, {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.getGradebookUrl(), {
|
||||
[paramKeys.pageSize]: pageSize,
|
||||
[paramKeys.userContains]: searchText,
|
||||
[paramKeys.cohortId]: cohort,
|
||||
@@ -130,7 +130,7 @@ describe('lms service api', () => {
|
||||
));
|
||||
test('loads null for excludedCorseRoles if includeCourseRoles', () => (
|
||||
api.fetch.gradebookData(searchText, cohort, track, options).then(({ data }) => {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.gradebook, {
|
||||
expect(data).toEqual(utils.stringifyUrl(urls.getGradebookUrl(), {
|
||||
[paramKeys.pageSize]: pageSize,
|
||||
[paramKeys.userContains]: searchText,
|
||||
[paramKeys.cohortId]: cohort,
|
||||
@@ -153,7 +153,7 @@ describe('lms service api', () => {
|
||||
});
|
||||
it('fetches from urls.bulkHistory and returns the data', () => (
|
||||
api.fetch.gradeBulkOperationHistory().then(url => {
|
||||
expect(url).toEqual(urls.bulkHistory);
|
||||
expect(url).toEqual(urls.getBulkHistoryUrl());
|
||||
})
|
||||
));
|
||||
});
|
||||
@@ -195,7 +195,7 @@ describe('lms service api', () => {
|
||||
});
|
||||
test('posts to urls.bulkUpdate with passed data', () => (
|
||||
api.updateGradebookData(updateData).then(({ data }) => {
|
||||
expect(data).toEqual({ url: urls.bulkUpdate, data: updateData });
|
||||
expect(data).toEqual({ url: urls.getBulkUpdateUrl(), data: updateData });
|
||||
})
|
||||
));
|
||||
});
|
||||
|
||||
@@ -1,59 +1,54 @@
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { StrictDict } from 'utils';
|
||||
import { configuration } from 'config';
|
||||
import { historyRecordLimit } from './constants';
|
||||
import { filterQuery, stringifyUrl } from './utils';
|
||||
|
||||
const baseUrl = `${configuration.LMS_BASE_URL}`;
|
||||
|
||||
const courseId = window.location.pathname.split('/').filter(Boolean).pop() || '';
|
||||
|
||||
const api = `${baseUrl}/api/`;
|
||||
const bulkGrades = `${api}bulk_grades/course/${courseId}/`;
|
||||
const enrollment = `${api}enrollment/v1/`;
|
||||
const grades = `${api}grades/v1/`;
|
||||
const gradebook = `${grades}gradebook/${courseId}/`;
|
||||
const bulkUpdate = `${gradebook}bulk-update`;
|
||||
const intervention = `${bulkGrades}intervention/`;
|
||||
|
||||
const cohorts = `${baseUrl}/courses/${courseId}/cohorts/`;
|
||||
const tracks = `${enrollment}course/${courseId}?include_expired=1`;
|
||||
const bulkHistory = `${bulkGrades}history/`;
|
||||
|
||||
const assignmentTypes = stringifyUrl(`${gradebook}grading-info`, { graded_only: true });
|
||||
const roles = stringifyUrl(`${enrollment}roles/`, { courseId });
|
||||
|
||||
export const getUrlPrefix = () => `${getConfig().LMS_BASE_URL}/api/`;
|
||||
export const getBulkGradesUrl = () => `${getUrlPrefix()}bulk_grades/course/${courseId}/`;
|
||||
export const getEnrollmentUrl = () => `${getUrlPrefix()}enrollment/v1/`;
|
||||
export const getGradesUrl = () => `${getUrlPrefix()}grades/v1/`;
|
||||
export const getGradebookUrl = () => `${getGradesUrl()}gradebook/${courseId}/`;
|
||||
export const getBulkUpdateUrl = () => `${getGradebookUrl()}bulk-update`;
|
||||
export const getInterventionUrl = () => `${getBulkGradesUrl()}intervention/`;
|
||||
export const getCohortsUrl = () => `${getUrlPrefix()}courses/${courseId}/cohorts/`;
|
||||
export const getTracksUrl = () => `${getEnrollmentUrl()}course/${courseId}?include_expired=1`;
|
||||
export const getBulkHistoryUrl = () => `${getBulkUpdateUrl()}history/`;
|
||||
export const getAssignmentTypesUrl = () => stringifyUrl(`${getGradebookUrl()}grading-info`, { graded_only: true });
|
||||
export const getRolesUrl = () => stringifyUrl(`${getEnrollmentUrl()}roles/`, { courseId });
|
||||
/**
|
||||
* bulkGradesUrlByCourseAndRow(courseId, rowId)
|
||||
* returns the bulkGrades url with the given rowId.
|
||||
* @param {string} rowId - row/error identifier
|
||||
* @return {string} - bulk grades fetch url
|
||||
*/
|
||||
export const bulkGradesUrlByRow = (rowId) => stringifyUrl(bulkGrades, { error_id: rowId });
|
||||
export const bulkGradesUrlByRow = (rowId) => stringifyUrl(getBulkGradesUrl(), { error_id: rowId });
|
||||
|
||||
export const gradeCsvUrl = (options = {}) => stringifyUrl(bulkGrades, filterQuery(options));
|
||||
export const gradeCsvUrl = (options = {}) => stringifyUrl(getBulkGradesUrl(), filterQuery(options));
|
||||
|
||||
export const interventionExportCsvUrl = (options = {}) => (
|
||||
stringifyUrl(intervention, filterQuery(options))
|
||||
stringifyUrl(getInterventionUrl(), filterQuery(options))
|
||||
);
|
||||
|
||||
export const sectionOverrideHistoryUrl = (subsectionId, userId) => stringifyUrl(
|
||||
`${grades}subsection/${subsectionId}/`,
|
||||
`${getGradesUrl()}subsection/${subsectionId}/`,
|
||||
{ user_id: userId, history_record_limit: historyRecordLimit },
|
||||
);
|
||||
|
||||
export default StrictDict({
|
||||
assignmentTypes,
|
||||
bulkGrades,
|
||||
bulkHistory,
|
||||
bulkUpdate,
|
||||
cohorts,
|
||||
enrollment,
|
||||
grades,
|
||||
gradebook,
|
||||
intervention,
|
||||
roles,
|
||||
tracks,
|
||||
|
||||
getUrlPrefix,
|
||||
getBulkGradesUrl,
|
||||
getEnrollmentUrl,
|
||||
getGradesUrl,
|
||||
getGradebookUrl,
|
||||
getBulkUpdateUrl,
|
||||
getInterventionUrl,
|
||||
getCohortsUrl,
|
||||
getTracksUrl,
|
||||
getBulkHistoryUrl,
|
||||
getAssignmentTypesUrl,
|
||||
getRolesUrl,
|
||||
bulkGradesUrlByRow,
|
||||
gradeCsvUrl,
|
||||
interventionExportCsvUrl,
|
||||
|
||||
@@ -17,7 +17,7 @@ describe('lms api url methods', () => {
|
||||
it('returns bulkGrades url with error_id', () => {
|
||||
const id = 'heyo';
|
||||
expect(bulkGradesUrlByRow(id)).toEqual(
|
||||
utils.stringifyUrl(urls.bulkGrades, { error_id: id }),
|
||||
utils.stringifyUrl(urls.getBulkGradesUrl(), { error_id: id }),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -25,12 +25,12 @@ describe('lms api url methods', () => {
|
||||
it('returns bulkGrades with filterQuery-loaded options as query', () => {
|
||||
const options = { some: 'fun', query: 'options' };
|
||||
expect(gradeCsvUrl(options)).toEqual(
|
||||
utils.stringifyUrl(urls.bulkGrades, utils.filterQuery(options)),
|
||||
utils.stringifyUrl(urls.getBulkGradesUrl(), utils.filterQuery(options)),
|
||||
);
|
||||
});
|
||||
it('defaults options to empty object', () => {
|
||||
expect(gradeCsvUrl()).toEqual(
|
||||
utils.stringifyUrl(urls.bulkGrades, utils.filterQuery({})),
|
||||
utils.stringifyUrl(urls.getBulkGradesUrl(), utils.filterQuery({})),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -38,12 +38,12 @@ describe('lms api url methods', () => {
|
||||
it('returns intervention url with filterQuery-loaded options as query', () => {
|
||||
const options = { some: 'fun', query: 'options' };
|
||||
expect(interventionExportCsvUrl(options)).toEqual(
|
||||
utils.stringifyUrl(urls.intervention, utils.filterQuery(options)),
|
||||
utils.stringifyUrl(urls.getInterventionUrl(), utils.filterQuery(options)),
|
||||
);
|
||||
});
|
||||
it('defaults options to empty object', () => {
|
||||
expect(interventionExportCsvUrl()).toEqual(
|
||||
utils.stringifyUrl(urls.intervention, utils.filterQuery({})),
|
||||
utils.stringifyUrl(urls.getInterventionUrl(), utils.filterQuery({})),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -53,7 +53,7 @@ describe('lms api url methods', () => {
|
||||
const userId = 'Tom';
|
||||
expect(sectionOverrideHistoryUrl(subsectionId, userId)).toEqual(
|
||||
utils.stringifyUrl(
|
||||
`${urls.grades}subsection/${subsectionId}/`,
|
||||
`${urls.getGradesUrl()}subsection/${subsectionId}/`,
|
||||
{ user_id: userId, history_record_limit: historyRecordLimit },
|
||||
),
|
||||
);
|
||||
|
||||
@@ -4,19 +4,19 @@ import { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProductio
|
||||
import { createLogger } from 'redux-logger';
|
||||
import { createMiddleware } from 'redux-beacon';
|
||||
import Segment from '@redux-beacon/segment';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
import actions from './actions';
|
||||
import selectors from './selectors';
|
||||
import reducers from './reducers';
|
||||
import eventsMap from './services/segment/mapping';
|
||||
import { configuration } from '../config';
|
||||
|
||||
export const createStore = () => {
|
||||
const loggerMiddleware = createLogger();
|
||||
|
||||
const middleware = [thunkMiddleware, loggerMiddleware];
|
||||
// Conditionally add the segmentMiddleware only if the SEGMENT_KEY environment variable exists.
|
||||
if (configuration.SEGMENT_KEY) {
|
||||
if (getConfig().SEGMENT_KEY) {
|
||||
middleware.push(createMiddleware(eventsMap, Segment()));
|
||||
}
|
||||
const store = redux.createStore(
|
||||
|
||||
@@ -4,12 +4,12 @@ import { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProductio
|
||||
import { createLogger } from 'redux-logger';
|
||||
import { createMiddleware } from 'redux-beacon';
|
||||
import Segment from '@redux-beacon/segment';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
import actions from './actions';
|
||||
import selectors from './selectors';
|
||||
import reducers from './reducers';
|
||||
import eventsMap from './services/segment/mapping';
|
||||
import { configuration } from '../config';
|
||||
|
||||
import exportedStore, { createStore } from './store';
|
||||
|
||||
@@ -22,10 +22,10 @@ jest.mock('redux-logger', () => ({
|
||||
createLogger: () => 'logger',
|
||||
}));
|
||||
jest.mock('redux-thunk', () => 'thunkMiddleware');
|
||||
jest.mock('../config', () => ({
|
||||
configuration: {
|
||||
jest.mock('@edx/frontend-platform', () => ({
|
||||
getConfig: jest.fn(() => ({
|
||||
SEGMENT_KEY: 'a-fake-segment-key',
|
||||
},
|
||||
})),
|
||||
}));
|
||||
jest.mock('redux-beacon', () => ({
|
||||
createMiddleware: jest.fn((map, model) => ({ map, model })),
|
||||
@@ -60,9 +60,9 @@ describe('store aggregator module', () => {
|
||||
});
|
||||
});
|
||||
describe('if no SEGMENT_KEY', () => {
|
||||
const key = configuration.SEGMENT_KEY;
|
||||
const key = getConfig().SEGMENT_KEY;
|
||||
beforeEach(() => {
|
||||
configuration.SEGMENT_KEY = false;
|
||||
getConfig.mockImplementation(() => ({ SEGMENT_KEY: false }));
|
||||
});
|
||||
it('exports thunk and logger middleware, composed and applied with dev tools', () => {
|
||||
expect(createStore().middleware).toEqual(
|
||||
@@ -70,7 +70,7 @@ describe('store aggregator module', () => {
|
||||
);
|
||||
});
|
||||
afterEach(() => {
|
||||
configuration.SEGMENT_KEY = key;
|
||||
getConfig.mockImplementation(() => ({ SEGMENT_KEY: key }));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
21
src/head/Head.jsx
Normal file
21
src/head/Head.jsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import React from 'react';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
import messages from './messages';
|
||||
|
||||
const Head = ({ intl }) => (
|
||||
<Helmet>
|
||||
<title>
|
||||
{intl.formatMessage(messages['gradebook.page.title'], { siteName: getConfig().SITE_NAME })}
|
||||
</title>
|
||||
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
|
||||
</Helmet>
|
||||
);
|
||||
|
||||
Head.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
};
|
||||
|
||||
export default injectIntl(Head);
|
||||
17
src/head/Head.test.jsx
Normal file
17
src/head/Head.test.jsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import React from 'react';
|
||||
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import { mount } from 'enzyme';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import Head from './Head';
|
||||
|
||||
describe('Head', () => {
|
||||
const props = {};
|
||||
it('should match render title tag and favicon with the site configuration values', () => {
|
||||
mount(<IntlProvider locale="en"><Head {...props} /></IntlProvider>);
|
||||
const helmet = Helmet.peek();
|
||||
expect(helmet.title).toEqual(`Gradebook | ${getConfig().SITE_NAME}`);
|
||||
expect(helmet.linkTags[0].rel).toEqual('shortcut icon');
|
||||
expect(helmet.linkTags[0].href).toEqual(getConfig().FAVICON_URL);
|
||||
});
|
||||
});
|
||||
11
src/head/messages.js
Normal file
11
src/head/messages.js
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const messages = defineMessages({
|
||||
'gradebook.page.title': {
|
||||
id: 'gradebook.page.title',
|
||||
defaultMessage: 'Gradebook | {siteName}',
|
||||
description: 'Title tag',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
@@ -1,14 +1,28 @@
|
||||
import arMessages from './messages/ar.json';
|
||||
// no need to import en messages-- they are in the defaultMessage field
|
||||
import es419Messages from './messages/es_419.json';
|
||||
import frMessages from './messages/fr.json';
|
||||
import es419Messages from './messages/es_419.json';
|
||||
import zhcnMessages from './messages/zh_CN.json';
|
||||
import ptMessages from './messages/pt.json';
|
||||
import itMessages from './messages/it.json';
|
||||
import ukMessages from './messages/uk.json';
|
||||
import deMessages from './messages/de.json';
|
||||
import ruMessages from './messages/ru.json';
|
||||
import hiMessages from './messages/hi.json';
|
||||
import frCAMessages from './messages/fr_CA.json';
|
||||
// no need to import en messages-- they are in the defaultMessage field
|
||||
|
||||
const messages = {
|
||||
ar: arMessages,
|
||||
'es-419': es419Messages,
|
||||
fr: frMessages,
|
||||
'zh-cn': zhcnMessages,
|
||||
pt: ptMessages,
|
||||
it: itMessages,
|
||||
de: deMessages,
|
||||
hi: hiMessages,
|
||||
'fr-ca': frCAMessages,
|
||||
ru: ruMessages,
|
||||
uk: ukMessages,
|
||||
};
|
||||
|
||||
export default messages;
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
"gradebook.BulkManagementHistoryView.heading": "سجلّ الإدارة بالجملة",
|
||||
"gradebook.BulkManagementHistoryView": "فيما يلي سجلّ رفع الدرجات. لتحميل CSV الدرجات أو استيراد درجات بديلة، عد إلى دفتر الدرجات. يرجى الملاحظة أن معالجة الدرجات البديلة قد يأخذ بضع ثوانٍ بعد الاستيراد.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "تتم الآن معالجة CSV. قد يتطلب إتمام رفع الملفات عدة دقائق.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "الواجبات",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "الدرجة الكلّية",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "مجموعات الطلبة",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "تضمين أعضاء فريق المساق",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "الواجب",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "أنواع الواجبات",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": " الدرجة القصوى",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "الدرجة الدنيا",
|
||||
"gradebook.GradebookFilters.cohorts": "الأفواج",
|
||||
"gradebook.GradebookFilters.cohortsAll": "جميع الأفواج",
|
||||
"gradebook.GradebookFilters.tracks": "المسارات",
|
||||
"gradebook.GradebookFilters.trackAll": "جميع المسارات",
|
||||
"gradebook.GradebookFilters.closeFilters": "إغلاق المرشحات",
|
||||
"gradebook.GradebookHeader.backButton": "العودة إلى لوحة المعلومات",
|
||||
"gradebook.GradebookHeader.appLabel": "دفتر الدرجات",
|
||||
"gradebook.GradebookHeader.frozenWarning": "درجات هذا المساق الآن مجمدة. لم يعد تعديل الدرجات ممكنا.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "أنت غير مخوّل بالاطّلاع على دفتر درجات هذا المساق.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "عرض سجلّ الإدارة بالجملة",
|
||||
"gradebook.GradebookHeader.toGradesView": "العودة إلى دفتر الدرجات",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "تحميل الدرجات",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "الواجب",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "الدرجة الحالية",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "الدرجة الأصلية",
|
||||
"gradebook.GradesView.EditModal.headers.student": "الطالب",
|
||||
"gradebook.GradesView.EditModal.title": "تعديل الدرجات",
|
||||
"gradebook.GradesView.EditModal.closeText": "إلغاء",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "يتم إظهار أحدث العمليات فقط (5 على الأكثر). للاطلاع على المزيد، يرجى الاتصال بالدعم.",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "ملاحظة: ستظهر تعديلاتك للطلبة بمجرد الحفظ.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "حفظ الدرجات",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "الدرجة المعدّلة",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "التاريخ",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "صاحب التقييم",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "السبب",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "عرض {filteredUsers} من إجمالي {totalUsers} متعلمًا",
|
||||
"gradebook.GradesView.editFilterLabel": "تعديل المرشحات",
|
||||
"gradebook.GradesView.table.headings.email": "البريد الإلكتروني",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "الدرجة الإجمالية (%)",
|
||||
"gradebook.GradesView.table.headings.username": "اسم المستخدم",
|
||||
"gradebook.GradesView.table.labels.studentKey": "مفتاح الطالب*",
|
||||
"gradebook.GradesView.table.labels.username": "اسم المستخدم",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "الدرجات الإجمالية تظهر دائمًا على شكل نسب مئوية",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "رفع درجات بصيغة CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "استيراد الدرجات",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "نجح الاستيراد! سيتم فورًا تحديث الدرجات.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "عرض سجلّ النشاط",
|
||||
"gradebook.GradesView.InterventionsReport.title": "تقرير التدخلات",
|
||||
"gradebook.GradesView.InterventionsReport.description": "هل تحتاج لإيجاد طلبة قد يكونون متأخرين؟ حمّل تقرير التدخلات للحصول على قياسات الالتزام كالزيارات و المحاولات الخاصة بكل فصل.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "تحميل التدخلات",
|
||||
"gradebook.GradesView.filterHeading": "الخطوة 1: ترشيح تقرير الدرجات",
|
||||
"gradebook.GradesView.gradebookStepHeading": "الخطوة 2: معاينة و تعديل الدرجات على حدة",
|
||||
"gradebook.GradesView.mastersHint": "متوفر فقط للمتعلمين المسجلين في مسار الماستر",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "الصفحة السابقة",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "الصفحة التالية",
|
||||
"gradebook.GradesView.scoreViewLabel": "مظهر الدرجة",
|
||||
"gradebook.GradesView.absoluteOption": "مطلقة",
|
||||
"gradebook.GradesView.percentOption": "نسبة مئوية",
|
||||
"gradebook.GradesView.search.label": "البحث عن متعلّم",
|
||||
"gradebook.GradesView.search.hint": "ابحث حسب اسم المستخدم، البريد الإلكتروني أو مفتاح الطالب",
|
||||
"gradebook.GradesView.editSuccessAlert": "تم تعديل الدرجة بنجاح. قد تلاحظ تأخّرًا طفيفا في ظهور التحديثات في دفتر الدرجات.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "الدرجة القصوى يجب أن تكون بين 0 و 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "الدرجة الدنيا يجب أن تكون بين 0 و 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "الواجب",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "درجة الواجب",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "نوع الواجب",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "فوج",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "درجة المساق",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "تضمين أعضاء فريق المساق",
|
||||
"gradebook.GradesTab.FilterBadges.track": "المسار"
|
||||
}
|
||||
@@ -1,73 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
"gradebook.BulkManagementHistoryView.heading": "Historial de administración masiva",
|
||||
"gradebook.BulkManagementHistoryView": "A continuación se muestra un registro de importaciones de grados anteriores. Para descargar un archivo CSV de su libro de calificaciones e importar las calificaciones para anularlas, regrese al Libro de calificaciones. Tenga en cuenta que, después de importar las calificaciones, es posible que el procesamiento de la anulación demore unos segundos. ",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "Procesando archivo CSV. Los archivos subidos pueden tomar algunos minutos para completarse.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Tareas",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Calificación general",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Grupos de estudiantes",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Incluir miembros del equipo del curso",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Tarea",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Tipos de tareas",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Calificación máxima",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Calificación mínima",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohortes",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohortes-todas",
|
||||
"gradebook.GradebookFilters.tracks": "Seguimientos",
|
||||
"gradebook.GradebookFilters.trackAll": " Seguimiento de todo",
|
||||
"gradebook.GradebookFilters.closeFilters": "Filtros cerrados",
|
||||
"gradebook.GradebookHeader.backButton": "Volver al Panel de Control",
|
||||
"gradebook.GradebookHeader.appLabel": "Libro de Calificaciones",
|
||||
"gradebook.GradebookHeader.frozenWarning": "Las calificaciones para este curso se encuentran congeladas. La edición de las calificaciones ya no se encuentra habilitada. ",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "No tienes autorización para ver el libro de calificaciones de este curso. ",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "Ver historial de administración masiva",
|
||||
"gradebook.GradebookHeader.toGradesView": "Volver al libro de calificaciones.",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Descargar calificaciones",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Tarea",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Calificación actual",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Calificación original",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Estudiante",
|
||||
"gradebook.GradesView.EditModal.title": "Editar calificaciones",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancelar",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Mostrar las acciones más recientes (máximo 5). Para ver más, por favor contacta a soporte.",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Nota: una vez hayas guardado, tus cambios serán visibles para los estudiantes.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Guardar calificaciones",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Ajustar calificación",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Fecha",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Calificador",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Razón",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Mostrando {filteredUsers} de {totalUsers} estudiantes en total",
|
||||
"gradebook.GradesView.editFilterLabel": "Editar filtros ",
|
||||
"gradebook.GradesView.table.headings.email": "Correo electrónico",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Calificación total (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Nombre de usuario",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Llave de estudiante*",
|
||||
"gradebook.GradesView.table.labels.username": "Nombre de usuario",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Los valores de las calificaciones totales serán siempre mostrados en porcentajes",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Subir calificación en CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Importar calificaciones",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "¡Importación exitosa! Las calificaciones serán actualizadas momentáneamente. ",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "Ver actividad del log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Reporte de intervenciones",
|
||||
"gradebook.GradesView.InterventionsReport.description": "¿Necesitas encontrar estudiantes que no estén teniendo un buen rendimiento? Descarga el reporte de intervenciones para obtener métricas de comportamiento como lo son las visitas e intentos. ",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Descargar de intervenciones",
|
||||
"gradebook.GradesView.filterHeading": "Paso 1: Filtra el reporte de calificaciones",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Paso 2: Mira o modifica las calificaciones individuales",
|
||||
"gradebook.GradesView.mastersHint": "Disponible solo para estudiante en el seguimiento máster",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Página anterior",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Siguiente página",
|
||||
"gradebook.GradesView.scoreViewLabel": "Ver puntaje",
|
||||
"gradebook.GradesView.absoluteOption": "Absoluto",
|
||||
"gradebook.GradesView.percentOption": "Porcentaje",
|
||||
"gradebook.GradesView.search.label": "Busca a un estudiante",
|
||||
"gradebook.GradesView.search.hint": "Busca por nombre de usuario, correo electrónico o llave de estudiante",
|
||||
"gradebook.GradesView.editSuccessAlert": "La calificación ha sido editada de manera exitosa. Podrás apreciar un retraso mínimo mientras se realizan las actualizaciones en el libro de calificaciones. ",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "La máxima calificación de curso debe estar entre 0 y 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "La calificación de curso mínima debe estar entre 0 y 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Tarea",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Calificación de la tarea",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Tipo de tarea",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohorte",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Calificación del curso",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Incluir miembros del equipo del curso",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Hacer seguimiento"
|
||||
}
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.BulkManagementHistoryView.heading": "Historique des changements en lot",
|
||||
"gradebook.BulkManagementHistoryView": "Ci-dessous se trouve un historique des imports de notes précédents. Pour télécharger un CSV de votre carnet de notes et importer des notes pour les remplacer, retournez au Carnet de Note. Veuillez noter qu'après l'importation des notes, la procédure de remplacement prendra quelques secondes.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "Traitement du CSV en cours. Le téléversement peut prendre plusieurs minutes à compléter.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Devoirs",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Note globale",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Groupe d'étudiants",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Inclure les membres de l'équipe de cours",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Devoir",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Types de travaux",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Note Maximale",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Note Minimale",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohortes",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Toutes les cohortes",
|
||||
"gradebook.GradebookFilters.tracks": "Parcours",
|
||||
"gradebook.GradebookFilters.trackAll": "Tous les parcours",
|
||||
"gradebook.GradebookFilters.closeFilters": "Fermer les filtres",
|
||||
"gradebook.GradebookHeader.backButton": "Retour au tableau de bord",
|
||||
"gradebook.GradebookHeader.appLabel": "Bulletin de notes",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.frozenWarning": "Les notes de ce cours sont gelées. Éditer les notes n'est plus permis.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "Vous n'êtes pas autorisé à voir le livret de notes pour ce cours",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "Voir l'historique des changements en lot",
|
||||
"gradebook.GradebookHeader.toGradesView": "Retourner au carnet de notes",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Télécharger les notes",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Devoir",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Note actuelle",
|
||||
@@ -28,14 +28,14 @@
|
||||
"gradebook.GradesView.EditModal.headers.student": "Étudiant",
|
||||
"gradebook.GradesView.EditModal.title": "Editez les notes",
|
||||
"gradebook.GradesView.EditModal.closeText": "Annuler",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Affiche les plus récentes actions (max 5). Pour en voir plus, veuillez contacter le support.",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note : une fois sauvegardés, vos changements seront visibles aux étudiants.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Sauvegarder les notes",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Note ajustée",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Correcteur",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Motif",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Affiche {filteredUsers} des {totalUsers} apprenants totaux",
|
||||
"gradebook.GradesView.editFilterLabel": "Editer les filtres",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Note totale (%)",
|
||||
@@ -48,11 +48,11 @@
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import réussi ! Les notes vont être mises à jour.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "Voir le rapport d'activité",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Rapport d'interventions",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Besoin de trouver les étudiants en difficulté ? Téléchargez le rapport d'interventions afin d'obtenir les métriques d'engagement telles que le nombre de tentatives ou de visites des sections.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Télécharger les interventions",
|
||||
"gradebook.GradesView.filterHeading": "Étape 1 : Filtrer le rapport de notes",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Étape 2 : Voir ou modifier les notes individuelles",
|
||||
"gradebook.GradesView.mastersHint": "disponible seulement aux apprenants sur le parcours Master",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Page précédente",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Page suivante",
|
||||
"gradebook.GradesView.scoreViewLabel": "Vue des notes",
|
||||
@@ -60,7 +60,7 @@
|
||||
"gradebook.GradesView.percentOption": "Pourcentage",
|
||||
"gradebook.GradesView.search.label": "Rechercher un apprenant",
|
||||
"gradebook.GradesView.search.hint": "Chercher par nom d'utilisateur, email ou clé d'étudiant",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.editSuccessAlert": "Les notes ont été éditées avec succès. Un délai est possible avant que vous ne constatiez la mise-à-jour dans le carnet de note.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "La note maximale du cours doit être entre 0 et 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "La note minimale du cours doit être entre 0 et 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Devoir",
|
||||
@@ -68,6 +68,6 @@
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Type de travail",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohorte",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Note du cours",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Inclure les membres de l'équipe de cours",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Parcours"
|
||||
}
|
||||
73
src/i18n/messages/fr_CA.json
Normal file
73
src/i18n/messages/fr_CA.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Historique des changements en lot",
|
||||
"gradebook.BulkManagementHistoryView": "Ci-dessous se trouve un historique des imports de notes précédents. Pour télécharger un CSV de votre carnet de notes et importer des notes pour les remplacer, retournez au Carnet de Note. Veuillez noter qu'après l'importation des notes, la procédure de remplacement prendra quelques secondes.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "Traitement du CSV en cours. Le téléversement peut prendre plusieurs minutes à compléter.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Devoirs",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Note globale",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Groupes d'étudiant",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Inclure les membres de l'équipe de cours",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Devoir",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Types de travaux",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Note maximale",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Note minimale",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohortes",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Toutes les cohortes",
|
||||
"gradebook.GradebookFilters.tracks": "Parcours",
|
||||
"gradebook.GradebookFilters.trackAll": "Tous les parcours",
|
||||
"gradebook.GradebookFilters.closeFilters": "Fermer filtres",
|
||||
"gradebook.GradebookHeader.backButton": "Retour au tableau de bord",
|
||||
"gradebook.GradebookHeader.appLabel": "Bulletin de notes",
|
||||
"gradebook.GradebookHeader.frozenWarning": "Les notes de ce cours sont gelées. Éditer les notes n'est plus permis.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "Vous n'êtes pas autorisé à voir le carnet de note de ce cours.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "Voir l'historique des changements en lot",
|
||||
"gradebook.GradebookHeader.toGradesView": "Retourner au carnet de notes",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Télécharger les notes",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Devoir",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Note actuelle",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Note originale",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Étudiant",
|
||||
"gradebook.GradesView.EditModal.title": "Éditer les notes",
|
||||
"gradebook.GradesView.EditModal.closeText": "Annuler",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Affiche les plus récentes actions (max 5). Pour en voir plus, veuillez contacter le support.",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note : une fois sauvegardés, vos changements seront visibles aux étudiants.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Sauvegarde des notes",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Notes ajustées",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Correcteur",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Raison",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Affiche {filteredUsers} des {totalUsers} apprenants totaux",
|
||||
"gradebook.GradesView.editFilterLabel": "Éditer les filtres",
|
||||
"gradebook.GradesView.table.headings.email": "Courriel",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Note totale (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Nom d'utilisateur",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Clé étudiante*",
|
||||
"gradebook.GradesView.table.labels.username": "Nom d'utilisateur",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "La valeur des notes totales est toujours affichée en pourcentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Téléverser les notes en CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Importer les notes",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Succès de l'importation ! Les notes seront mises à jour momentanément.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "Voir le log des activités",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Rapport des interventions",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Besoin de trouver les étudiants en difficulté ? Téléchargez le rapport d'interventions afin d'obtenir les métriques d'engagement telles que le nombre de tentatives ou de visites des sections.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Télécharger les interventions",
|
||||
"gradebook.GradesView.filterHeading": "Étape 1 : Filter le rapport de notes",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Étape 2 : Voir ou modifier les notes individuelles",
|
||||
"gradebook.GradesView.mastersHint": "disponible seulement aux apprenants sur le parcours Master",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Page précédente",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Page suivante",
|
||||
"gradebook.GradesView.scoreViewLabel": "Vue des scores",
|
||||
"gradebook.GradesView.absoluteOption": "Absolu",
|
||||
"gradebook.GradesView.percentOption": "Pourcentage",
|
||||
"gradebook.GradesView.search.label": "Chercher pour un apprenant",
|
||||
"gradebook.GradesView.search.hint": "Chercher par nom d'utilisateur, courriel ou clé étudiante",
|
||||
"gradebook.GradesView.editSuccessAlert": "Les notes ont été éditées avec succès. Un délai est possible avant que vous ne constatiez la mise-à-jour dans le carnet de note.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Note maximale du cours doit être entre 0 et 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Note minimale du cours doit être entre 0 et 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Devoir",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Note de devoir",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Type de devoir",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohorte",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Note du cours",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Inclure les membres de l'équipe de cours",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Parcours"
|
||||
}
|
||||
73
src/i18n/messages/hi.json
Normal file
73
src/i18n/messages/hi.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
}
|
||||
73
src/i18n/messages/it.json
Normal file
73
src/i18n/messages/it.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
}
|
||||
73
src/i18n/messages/pt.json
Normal file
73
src/i18n/messages/pt.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
}
|
||||
73
src/i18n/messages/ru.json
Normal file
73
src/i18n/messages/ru.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
}
|
||||
73
src/i18n/messages/uk.json
Normal file
73
src/i18n/messages/uk.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"gradebook.BulkManagementHistoryView.heading": "Bulk Management History",
|
||||
"gradebook.BulkManagementHistoryView": "Below is a log of previous grade imports. To download a CSV of your gradebook and import grades for override, return to the Gradebook. Please note, after importing grades, it may take a few seconds to process the override.",
|
||||
"gradebook.BulkManagementHistoryView.successDialog": "CSV processing. File uploads may take several minutes to complete.",
|
||||
"gradebook.GradebookFilters.assignmentsFilterLabel": "Assignments",
|
||||
"gradebook.GradebookFilters.overallGradeFilterLabel": "Overall Grade",
|
||||
"gradebook.GradebookFilters.studentGroupsFilterLabel": "Student Groups",
|
||||
"gradebook.GradebookFilters.includeCourseTeamMembersFilterLabel": "Include Course Team Members",
|
||||
"gradebook.GradebookFilters.assignmentFilterLabel": "Assignment",
|
||||
"gradebook.GradebookFilters.assignmentTypesLabel": "Assignment Types",
|
||||
"gradebook.GradebookFilters.maxGradeFilterLabel": "Max Grade",
|
||||
"gradebook.GradebookFilters.minGradeFilterLabel": "Min Grade",
|
||||
"gradebook.GradebookFilters.cohorts": "Cohorts",
|
||||
"gradebook.GradebookFilters.cohortsAll": "Cohort-All",
|
||||
"gradebook.GradebookFilters.tracks": "Tracks",
|
||||
"gradebook.GradebookFilters.trackAll": "Track-All",
|
||||
"gradebook.GradebookFilters.closeFilters": "Close Filters",
|
||||
"gradebook.GradebookHeader.backButton": "Back to Dashboard",
|
||||
"gradebook.GradebookHeader.appLabel": "Gradebook",
|
||||
"gradebook.GradebookHeader.frozenWarning": "The grades for this course are now frozen. Editing of grades is no longer allowed.",
|
||||
"gradebook.GradebookHeader.unauthorizedWarning": "You are not authorized to view the gradebook for this course.",
|
||||
"gradebook.GradebookHeader.toActivityLogButton": "View Bulk Management History",
|
||||
"gradebook.GradebookHeader.toGradesView": "Return to Gradebook",
|
||||
"gradebook.GradesView.BulkManagementControls.bulkManagementLabel": "Download Grades",
|
||||
"gradebook.GradesView.EditModal.headers.assignment": "Assignment",
|
||||
"gradebook.GradesView.EditModal.headers.currentGrade": "Current Grade",
|
||||
"gradebook.GradesView.EditModal.headers.originalGrade": "Original Grade",
|
||||
"gradebook.GradesView.EditModal.headers.student": "Student",
|
||||
"gradebook.GradesView.EditModal.title": "Edit Grades",
|
||||
"gradebook.GradesView.EditModal.closeText": "Cancel",
|
||||
"gradebook.GradesView.EditModal.contactSupport": "Showing most recent actions (max 5). To see more, please contact support",
|
||||
"gradebook.GradesView.EditModal.saveVisibility": "Note: Once you save, your changes will be visible to students.",
|
||||
"gradebook.GradesView.EditModal.saveGrade": "Save Grades",
|
||||
"gradebook.GradesView.EditModal.Overrides.adjustedGradeHeader": "Adjusted grade",
|
||||
"gradebook.GradesView.EditModal.Overrides.dateHeader": "Date",
|
||||
"gradebook.GradesView.EditModal.Overrides.graderHeader": "Grader",
|
||||
"gradebook.GradesView.EditModal.Overrides.reasonHeader": "Reason",
|
||||
"gradebook.GradesTab.usersVisibilityLabel'": "Showing {filteredUsers} of {totalUsers} total learners",
|
||||
"gradebook.GradesView.editFilterLabel": "Edit Filters",
|
||||
"gradebook.GradesView.table.headings.email": "Email",
|
||||
"gradebook.GradesView.table.headings.totalGrade": "Total Grade (%)",
|
||||
"gradebook.GradesView.table.headings.username": "Username",
|
||||
"gradebook.GradesView.table.labels.studentKey": "Student Key*",
|
||||
"gradebook.GradesView.table.labels.username": "Username",
|
||||
"gradebook.GradesView.table.totalGradePercentage": "Total Grade values are always displayed as a percentage",
|
||||
"gradebook.BulkManagementHistoryView.csvUploadLabel": "Upload Grade CSV",
|
||||
"gradebook.GradesView.importGradesBtnText": "Import Grades",
|
||||
"gradebook.GradesView.ImportSuccessToast.description": "Import Successful! Grades will be updated momentarily.",
|
||||
"gradebook.GradesView.ImportSuccessToast.showHistoryViewBtn": "View Activity Log",
|
||||
"gradebook.GradesView.InterventionsReport.title": "Interventions Report",
|
||||
"gradebook.GradesView.InterventionsReport.description": "Need to find students who may be falling behind? Download the interventions report to obtain engagement metrics such as section attempts and visits.",
|
||||
"gradebook.GradesView.InterventionsReport.downloadBtn": "Download Interventions",
|
||||
"gradebook.GradesView.filterHeading": "Step 1: Filter the Grade Report",
|
||||
"gradebook.GradesView.gradebookStepHeading": "Step 2: View or Modify Individual Grades",
|
||||
"gradebook.GradesView.mastersHint": "available for learners in the Master's track only",
|
||||
"gradebook.GradesView.PageButtons.prevPage": "Previous Page",
|
||||
"gradebook.GradesView.PageButtons.nextPage": "Next Page",
|
||||
"gradebook.GradesView.scoreViewLabel": "Score View",
|
||||
"gradebook.GradesView.absoluteOption": "Absolute",
|
||||
"gradebook.GradesView.percentOption": "Percent",
|
||||
"gradebook.GradesView.search.label": "Search for a learner",
|
||||
"gradebook.GradesView.search.hint": "Search by username, email, or student key",
|
||||
"gradebook.GradesView.editSuccessAlert": "The grade has been successfully edited. You may see a slight delay before updates appear in the Gradebook.",
|
||||
"gradebook.GradesView.maxCourseGradeInvalid": "Maximum course grade must be between 0 and 100",
|
||||
"gradebook.GradesView.minCourseGradeInvalid": "Minimum course grade must be between 0 and 100",
|
||||
"gradebook.GradesTab.FilterBadges.assignment": "Assignment",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentGrade": "Assignment Grade",
|
||||
"gradebook.GradesTab.FilterBadges.assignmentType": "Assignment Type",
|
||||
"gradebook.GradesTab.FilterBadges.cohort": "Cohort",
|
||||
"gradebook.GradesTab.FilterBadges.courseGrade": "Course Grade",
|
||||
"gradebook.GradesTab.FilterBadges.includeCourseRoleMembers": "Include Course Team Members",
|
||||
"gradebook.GradesTab.FilterBadges.track": "Track"
|
||||
}
|
||||
@@ -7,11 +7,12 @@ import ReactDOM from 'react-dom';
|
||||
import {
|
||||
APP_READY,
|
||||
initialize,
|
||||
mergeConfig,
|
||||
subscribe,
|
||||
} from '@edx/frontend-platform';
|
||||
import { messages as headerMessages } from '@edx/frontend-component-header';
|
||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
|
||||
import { messages as paragonMessages } from '@edx/paragon';
|
||||
import appMessages from './i18n';
|
||||
import App from './App';
|
||||
|
||||
@@ -20,10 +21,27 @@ subscribe(APP_READY, () => {
|
||||
});
|
||||
|
||||
initialize({
|
||||
handlers: {
|
||||
config: () => {
|
||||
mergeConfig({
|
||||
BASE_URL: process.env.BASE_URL,
|
||||
LMS_BASE_URL: process.env.LMS_BASE_URL,
|
||||
LOGIN_URL: process.env.LOGIN_URL,
|
||||
LOGOUT_URL: process.env.LOGOUT_URL,
|
||||
CSRF_TOKEN_API_PATH: process.env.CSRF_TOKEN_API_PATH,
|
||||
REFRESH_ACCESS_TOKEN_ENDPOINT: process.env.REFRESH_ACCESS_TOKEN_ENDPOINT,
|
||||
DATA_API_BASE_URL: process.env.DATA_API_BASE_URL,
|
||||
SECURE_COOKIES: process.env.NODE_ENV !== 'development',
|
||||
SEGMENT_KEY: process.env.SEGMENT_KEY,
|
||||
ACCESS_TOKEN_COOKIE_NAME: process.env.ACCESS_TOKEN_COOKIE_NAME,
|
||||
});
|
||||
},
|
||||
},
|
||||
messages: [
|
||||
appMessages,
|
||||
headerMessages,
|
||||
footerMessages,
|
||||
paragonMessages,
|
||||
],
|
||||
requireAuthenticatedUser: true,
|
||||
});
|
||||
|
||||
@@ -4,11 +4,12 @@ import ReactDOM from 'react-dom';
|
||||
import {
|
||||
APP_READY,
|
||||
initialize,
|
||||
mergeConfig,
|
||||
subscribe,
|
||||
} from '@edx/frontend-platform';
|
||||
import { messages as headerMessages } from '@edx/frontend-component-header';
|
||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
|
||||
import { messages as paragonMessages } from '@edx/paragon';
|
||||
import appMessages from './i18n';
|
||||
import App from './App';
|
||||
import '.';
|
||||
@@ -19,6 +20,7 @@ jest.mock('react-dom', () => ({
|
||||
jest.mock('@edx/frontend-platform', () => ({
|
||||
APP_READY: 'app-is-ready-key',
|
||||
initialize: jest.fn(),
|
||||
mergeConfig: jest.fn(),
|
||||
subscribe: jest.fn(),
|
||||
}));
|
||||
jest.mock('@edx/frontend-component-header', () => ({
|
||||
@@ -46,10 +48,23 @@ describe('app registry', () => {
|
||||
ReactDOM.render(<App />, document.getElementById('root')),
|
||||
);
|
||||
});
|
||||
test('initialize is called with footerMessages and requireAuthenticatedUser', () => {
|
||||
test('initialize is called with requireAuthenticatedUser, messages, and a config handler', () => {
|
||||
expect(initialize).toHaveBeenCalledWith({
|
||||
messages: [appMessages, headerMessages, footerMessages],
|
||||
messages: [appMessages, headerMessages, footerMessages, paragonMessages],
|
||||
requireAuthenticatedUser: true,
|
||||
handlers: {
|
||||
config: expect.any(Function),
|
||||
},
|
||||
});
|
||||
});
|
||||
test('initialize config loads LMS_BASE_URL from env', () => {
|
||||
const oldEnv = process.env;
|
||||
const initializeArg = initialize.mock.calls[0][0];
|
||||
process.env = { ...oldEnv, LMS_BASE_URL: 'http://example.com/fake' };
|
||||
initializeArg.handlers.config();
|
||||
expect(mergeConfig).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ LMS_BASE_URL: 'http://example.com/fake' }),
|
||||
);
|
||||
process.env = oldEnv;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// The code in this file is from Segment's website:
|
||||
// https://segment.com/docs/sources/website/analytics.js/quickstart/
|
||||
import { configuration } from './config';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
(function () {
|
||||
// Create a queue, but don't obliterate an existing one!
|
||||
@@ -81,5 +81,5 @@ import { configuration } from './config';
|
||||
|
||||
// Load Analytics.js with your key, which will automatically
|
||||
// load the tools you've enabled for your account. Boosh!
|
||||
analytics.load(configuration.SEGMENT_KEY);
|
||||
analytics.load(getConfig().SEGMENT_KEY);
|
||||
}());
|
||||
|
||||
@@ -8,6 +8,8 @@ Enzyme.configure({ adapter: new Adapter() });
|
||||
// These configuration values are usually set in webpack's EnvironmentPlugin however
|
||||
// Jest does not use webpack so we need to set these so for testing
|
||||
process.env.LMS_BASE_URL = 'http://localhost:18000';
|
||||
process.env.SITE_NAME = 'localhost';
|
||||
process.env.FAVICON_URL = 'http://localhost:18000/favicon.ico';
|
||||
|
||||
jest.mock('@edx/frontend-platform/i18n', () => {
|
||||
const i18n = jest.requireActual('@edx/frontend-platform/i18n');
|
||||
|
||||
Reference in New Issue
Block a user