Compare commits
21 Commits
dependabot
...
open-relea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d8dccda85 | ||
|
|
9ffc2c0b84 | ||
|
|
c7ca1ba57e | ||
|
|
d947d598b7 | ||
|
|
4082b4f90e | ||
|
|
fbaa41a8ae | ||
|
|
5dab08761c | ||
|
|
e499280e49 | ||
|
|
08c7d2d118 | ||
|
|
17a102d5cf | ||
|
|
77e3b17f03 | ||
|
|
b1d51a0468 | ||
|
|
13f884fc56 | ||
|
|
a701ea5e15 | ||
|
|
108fb314f5 | ||
|
|
75d2abe1a0 | ||
|
|
d00961d85c | ||
|
|
96e2c88837 | ||
|
|
14a4fae421 | ||
|
|
0d1f01628e | ||
|
|
95b285d371 |
2045
package-lock.json
generated
2045
package-lock.json
generated
@@ -10,11 +10,11 @@
|
|||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
||||||
"@edx/frontend-component-footer": "10.2.4",
|
"@edx/frontend-component-footer": "^12.0.0",
|
||||||
"@edx/frontend-component-header": "2.4.6",
|
"@edx/frontend-component-header": "^4.0.0",
|
||||||
"@edx/frontend-lib-special-exams": "1.16.3",
|
"@edx/frontend-lib-special-exams": "^2.16.1",
|
||||||
"@edx/frontend-platform": "1.15.6",
|
"@edx/frontend-platform": "^4.2.0",
|
||||||
"@edx/paragon": "19.18.3",
|
"@edx/paragon": "^20.28.4",
|
||||||
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
||||||
@@ -3056,73 +3056,281 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-component-footer": {
|
"node_modules/@edx/frontend-component-footer": {
|
||||||
"version": "10.2.4",
|
"version": "12.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-10.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-12.0.0.tgz",
|
||||||
"integrity": "sha512-kmNHL+D4ieB2VGhJ+Hf/Oa07NvmHJqyuSRWHMIph83GXhGh1EfZkmQPw6w7Z1TxLWaKQMr1HfZnQ1+Tz/nNAjQ==",
|
"integrity": "sha512-m8Rx6ZPWzIN5XLrz6Ft3aTuFo0rty0jECd79CBYWdm0D9KD1WxoYEG+fElluyOQp/t42T5jLImHTSWjFURx5kw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
"@fortawesome/fontawesome-svg-core": "6.4.0",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "6.4.0",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "6.4.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
"@fortawesome/free-solid-svg-icons": "6.4.0",
|
||||||
"@fortawesome/react-fontawesome": "0.1.18"
|
"@fortawesome/react-fontawesome": "0.2.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@edx/frontend-platform": "^1.8.0",
|
"@edx/frontend-platform": "^4.0.0",
|
||||||
"prop-types": "^15.5.10",
|
"prop-types": "^15.5.10",
|
||||||
"react": "^16.9.0",
|
"react": "^16.9.0 || ^17.0.0",
|
||||||
"react-dom": "^16.9.0"
|
"react-dom": "^16.9.0 || ^17.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/fontawesome-svg-core": {
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/fontawesome-svg-core": {
|
||||||
"version": "1.2.36",
|
"version": "6.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz",
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz",
|
||||||
"integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==",
|
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-brands-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-regular-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-solid-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
|
||||||
|
"react": ">=16.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@edx/frontend-component-header": {
|
"node_modules/@edx/frontend-component-header": {
|
||||||
"version": "2.4.6",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-2.4.6.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-4.0.0.tgz",
|
||||||
"integrity": "sha512-bwEP3B37N4lIDPM4cz/Dg1egQHWf14qj+3VU44BOf5DC/bNhASKeeEJEvDn6XTZdFCpGioHRBtqlEJQJsp0WqA==",
|
"integrity": "sha512-r/L3p2ZSI1DitjxVKAor18GmgJllafYslrdpzGI0vcX/gTemH13jf2Xr9iQqrT921DP2nzZ5GOwGJNptTSjiaA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
"@edx/paragon": "20.30.1",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/fontawesome-svg-core": "6.3.0",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "6.3.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "6.3.0",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.14",
|
"@fortawesome/free-solid-svg-icons": "6.3.0",
|
||||||
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
||||||
"babel-polyfill": "6.26.0",
|
"babel-polyfill": "6.26.0",
|
||||||
"react-responsive": "8.2.0",
|
"react-responsive": "8.2.0",
|
||||||
"react-transition-group": "4.4.2"
|
"react-transition-group": "4.4.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@edx/frontend-platform": "^1.8.0",
|
"@edx/frontend-platform": "^4.0.0",
|
||||||
"@edx/paragon": ">= 7.0.0 < 20.0.0",
|
|
||||||
"prop-types": "^15.5.10",
|
"prop-types": "^15.5.10",
|
||||||
"react": "^16.9.0",
|
"react": "^16.9.0 || ^17.0.0",
|
||||||
"react-dom": "^16.9.0"
|
"react-dom": "^16.9.0 || ^17.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@edx/paragon": {
|
||||||
|
"version": "20.30.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.30.1.tgz",
|
||||||
|
"integrity": "sha512-v3Ek8deZWqVKi3IWP08Mj4egrvbmbqQEyRA6+qazHZdgHJA4qOP1SST42UKd9XxPeRbLWUgaJWd0iBAOAna/gw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@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": "^2.0.0",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-bootstrap": "^1.6.5",
|
||||||
|
"react-colorful": "^5.6.1",
|
||||||
|
"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": "^5.3.3",
|
||||||
|
"uncontrollable": "^7.2.1",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^16.8.6 || ^17.0.0",
|
||||||
|
"react-dom": "^16.8.6 || ^17.0.0",
|
||||||
|
"react-intl": "^5.25.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@edx/paragon/node_modules/@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.1.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.19.tgz",
|
||||||
|
"integrity": "sha512-Hyb+lB8T18cvLNX0S3llz7PcSOAJMLwiVKBuuzwM/nI5uoBw+gQjnf9il0fR1C3DKOI5Kc79pkJ4/xB0Uw9aFQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
|
||||||
|
"react": ">=16.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/fontawesome-svg-core": {
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/fontawesome-svg-core": {
|
||||||
"version": "1.2.36",
|
"version": "6.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz",
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz",
|
||||||
"integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==",
|
"integrity": "sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/free-brands-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-xI0c+a8xnKItAXCN8rZgCNCJQiVAd2Y7p9e2ND6zN3J3ekneu96qrePieJ7yA7073C1JxxoM3vH1RU7rYsaj8w==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/free-regular-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-cZnwiVHZ51SVzWHOaNCIA+u9wevZjCuAGSvSYpNlm6A4H4Vhwh8481Bf/5rwheIC3fFKlgXxLKaw8Xeroz8Ntg==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/free-solid-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
|
||||||
|
"react": ">=16.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/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/frontend-component-header/node_modules/glob": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
|
"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/frontend-component-header/node_modules/minimatch": {
|
||||||
|
"version": "5.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"dependencies": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-component-header/node_modules/uuid": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@edx/frontend-lib-special-exams": {
|
"node_modules/@edx/frontend-lib-special-exams": {
|
||||||
"version": "1.16.3",
|
"version": "2.16.1",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-1.16.3.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-2.16.1.tgz",
|
||||||
"integrity": "sha512-i88xa/msZgh1vgcgTSihG19C+gQcG9AUsxzuamtKKA8swBtK5cDyknsE7XY4RB5z1IE1Wj1x4Bpi4DS6bxBkiQ==",
|
"integrity": "sha512-psmSRary2khFMRHF0uGcAk+IyHFTAJK2a80TH6/gjk9Ewyvup3NQTcFV4MF68NXKy/KsZ0tc1phfpp4NYTG0aA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.34",
|
"@fortawesome/fontawesome-svg-core": "1.2.34",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.11.2",
|
"@fortawesome/free-brands-svg-icons": "5.11.2",
|
||||||
@@ -3133,8 +3341,8 @@
|
|||||||
"eventemitter3": "^4.0.7"
|
"eventemitter3": "^4.0.7"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@edx/frontend-platform": "^1.8.4",
|
"@edx/frontend-platform": "^4.2.0",
|
||||||
"@edx/paragon": "^19.14.1",
|
"@edx/paragon": "^19.4.1 || ^20.22.4",
|
||||||
"@reduxjs/toolkit": "^1.5.1",
|
"@reduxjs/toolkit": "^1.5.1",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^16.13.1",
|
"react": "^16.13.1",
|
||||||
@@ -3203,15 +3411,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-platform": {
|
"node_modules/@edx/frontend-platform": {
|
||||||
"version": "1.15.6",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-1.15.6.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-4.2.0.tgz",
|
||||||
"integrity": "sha512-hvcJwRLy4JBdyBjHgu11nrqmMTWI901q6Ax83pf+yQpz68PpsJ0KdFjerxnkNJjU//XrWUuhSLesOPY2ntIjjg==",
|
"integrity": "sha512-iDoFeccENQKBjqUgdjl5KSwBrjNEj8YW6Ual+6twcHHJUBg3yRoBEphwHIoRREcMgQjhdKVAdWj8eleh4JsEKA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cospired/i18n-iso-languages": "2.2.0",
|
"@cospired/i18n-iso-languages": "2.2.0",
|
||||||
"axios": "0.26.1",
|
"@formatjs/intl-pluralrules": "4.3.3",
|
||||||
"axios-cache-adapter": "2.7.3",
|
"@formatjs/intl-relativetimeformat": "10.0.1",
|
||||||
|
"axios": "0.27.2",
|
||||||
|
"axios-cache-interceptor": "0.10.7",
|
||||||
"form-urlencoded": "4.1.4",
|
"form-urlencoded": "4.1.4",
|
||||||
"glob": "7.2.0",
|
"glob": "7.2.3",
|
||||||
"history": "4.10.1",
|
"history": "4.10.1",
|
||||||
"i18n-iso-countries": "4.3.1",
|
"i18n-iso-countries": "4.3.1",
|
||||||
"jwt-decode": "3.1.2",
|
"jwt-decode": "3.1.2",
|
||||||
@@ -3222,29 +3432,62 @@
|
|||||||
"lodash.merge": "4.6.2",
|
"lodash.merge": "4.6.2",
|
||||||
"lodash.snakecase": "4.1.1",
|
"lodash.snakecase": "4.1.1",
|
||||||
"pubsub-js": "1.9.4",
|
"pubsub-js": "1.9.4",
|
||||||
"react-intl": "2.9.0",
|
"react-intl": "^5.25.0",
|
||||||
"universal-cookie": "4.0.4"
|
"universal-cookie": "4.0.4"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"transifex-Makefile": "i18n/scripts/Makefile",
|
"intl-imports.js": "i18n/scripts/intl-imports.js",
|
||||||
"transifex-utils.js": "i18n/scripts/transifex-utils.js"
|
"transifex-utils.js": "i18n/scripts/transifex-utils.js"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@edx/paragon": ">= 10.0.0 < 20.0.0",
|
"@edx/paragon": ">= 10.0.0 < 21.0.0",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^16.9.0",
|
"react": "^16.9.0 || ^17.0.0",
|
||||||
"react-dom": "^16.9.0",
|
"react-dom": "^16.9.0 || ^17.0.0",
|
||||||
"react-redux": "^7.1.1",
|
"react-redux": "^7.1.1",
|
||||||
"react-router-dom": "^5.0.1",
|
"react-router-dom": "^5.0.1",
|
||||||
"redux": "^4.0.4"
|
"redux": "^4.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-platform/node_modules/axios": {
|
"node_modules/@edx/frontend-platform/node_modules/axios": {
|
||||||
"version": "0.26.1",
|
"version": "0.27.2",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||||
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
|
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.14.8"
|
"follow-redirects": "^1.14.9",
|
||||||
|
"form-data": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-platform/node_modules/form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"dependencies": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/frontend-platform/node_modules/glob": {
|
||||||
|
"version": "7.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||||
|
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.1.1",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-platform/node_modules/history": {
|
"node_modules/@edx/frontend-platform/node_modules/history": {
|
||||||
@@ -3260,20 +3503,15 @@
|
|||||||
"value-equal": "^1.0.1"
|
"value-equal": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/frontend-platform/node_modules/react-intl": {
|
"node_modules/@edx/frontend-platform/node_modules/minimatch": {
|
||||||
"version": "2.9.0",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
"integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==",
|
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hoist-non-react-statics": "^3.3.0",
|
"brace-expansion": "^1.1.7"
|
||||||
"intl-format-cache": "^2.0.5",
|
|
||||||
"intl-messageformat": "^2.1.0",
|
|
||||||
"intl-relativeformat": "^2.1.0",
|
|
||||||
"invariant": "^2.1.1"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"engines": {
|
||||||
"prop-types": "^15.5.4",
|
"node": "*"
|
||||||
"react": "^0.14.9 || ^15.0.0 || ^16.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/new-relic-source-map-webpack-plugin": {
|
"node_modules/@edx/new-relic-source-map-webpack-plugin": {
|
||||||
@@ -3286,35 +3524,105 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/paragon": {
|
"node_modules/@edx/paragon": {
|
||||||
"version": "19.18.3",
|
"version": "20.28.4",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.18.3.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.28.4.tgz",
|
||||||
"integrity": "sha512-nG+17daC72qbMlLmIRegXVCylmVdQEPcA6ELg9VSVSgWP+xnQgBx/th0z0fyzp5hr5opesg2TM6azFg+nDTKZw==",
|
"integrity": "sha512-JiEAUaEuOnHB/zC8h9d5f3AwchREiHFKbXFm7JpXNcvXpkTj0TTKTCS6zcfwZeDl77q/+Rx6Js7SpSE2EzAtDg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
"@fortawesome/fontawesome-svg-core": "^6.1.1",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.18",
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
||||||
"@popperjs/core": "^2.11.4",
|
"@popperjs/core": "^2.11.4",
|
||||||
"airbnb-prop-types": "^2.12.0",
|
"bootstrap": "^4.6.2",
|
||||||
"bootstrap": "^4.6.1",
|
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"email-prop-type": "^3.0.0",
|
"email-prop-type": "^3.0.0",
|
||||||
|
"file-selector": "^0.6.0",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
|
"glob": "^8.0.3",
|
||||||
"lodash.uniqby": "^4.7.0",
|
"lodash.uniqby": "^4.7.0",
|
||||||
"mailto-link": "^1.0.0",
|
"mailto-link": "^2.0.0",
|
||||||
"prop-types": "^15.8.1",
|
"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-focus-on": "^3.5.4",
|
||||||
|
"react-loading-skeleton": "^3.1.0",
|
||||||
"react-popper": "^2.2.5",
|
"react-popper": "^2.2.5",
|
||||||
"react-proptype-conditional-require": "^1.0.4",
|
"react-proptype-conditional-require": "^1.0.4",
|
||||||
"react-responsive": "^8.2.0",
|
"react-responsive": "^8.2.0",
|
||||||
"react-table": "^7.7.0",
|
"react-table": "^7.7.0",
|
||||||
"react-transition-group": "^4.4.2",
|
"react-transition-group": "^4.4.2",
|
||||||
"tabbable": "^4.0.0",
|
"tabbable": "^5.3.3",
|
||||||
"uncontrollable": "^7.2.1"
|
"uncontrollable": "^7.2.1",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"prop-types": "^15.7.2",
|
"react": "^16.8.6 || ^17.0.0",
|
||||||
"react": "^16.8.6",
|
"react-dom": "^16.8.6 || ^17.0.0",
|
||||||
"react-dom": "^16.8.6"
|
"react-intl": "^5.25.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-svg-core": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
},
|
||||||
|
"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/glob": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
|
"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.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"dependencies": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@edx/paragon/node_modules/uuid": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@edx/reactifex": {
|
"node_modules/@edx/reactifex": {
|
||||||
@@ -3372,6 +3680,149 @@
|
|||||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@formatjs/fast-memoize": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/fast-memoize/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-messageformat-parser": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/icu-skeleton-parser": "1.3.6",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-messageformat-parser/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-skeleton-parser": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-skeleton-parser/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/fast-memoize": "1.2.1",
|
||||||
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
|
"@formatjs/intl-displaynames": "5.4.3",
|
||||||
|
"@formatjs/intl-listformat": "6.5.3",
|
||||||
|
"intl-messageformat": "9.13.0",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^4.5"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-displaynames": {
|
||||||
|
"version": "5.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
|
||||||
|
"integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-displaynames/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-displaynames/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-listformat": {
|
||||||
|
"version": "6.5.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
|
||||||
|
"integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-listformat/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-listformat/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-localematcher": {
|
||||||
|
"version": "0.2.25",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
|
||||||
|
"integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-localematcher/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
"node_modules/@formatjs/intl-numberformat": {
|
"node_modules/@formatjs/intl-numberformat": {
|
||||||
"version": "5.7.6",
|
"version": "5.7.6",
|
||||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
|
||||||
@@ -3397,6 +3848,68 @@
|
|||||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@formatjs/intl-pluralrules": {
|
||||||
|
"version": "4.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz",
|
||||||
|
"integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-pluralrules/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-pluralrules/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-relativetimeformat": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-relativetimeformat/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl-relativetimeformat/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@formatjs/intl/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
"node_modules/@formatjs/ts-transformer": {
|
"node_modules/@formatjs/ts-transformer": {
|
||||||
"version": "2.13.0",
|
"version": "2.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
|
||||||
@@ -4580,9 +5093,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@restart/hooks": {
|
"node_modules/@restart/hooks": {
|
||||||
"version": "0.3.27",
|
"version": "0.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz",
|
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz",
|
||||||
"integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==",
|
"integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dequal": "^2.0.2"
|
"dequal": "^2.0.2"
|
||||||
},
|
},
|
||||||
@@ -5649,9 +6162,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/react-transition-group": {
|
"node_modules/@types/react-transition-group": {
|
||||||
"version": "4.4.4",
|
"version": "4.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
"integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
|
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
@@ -5791,7 +6304,7 @@
|
|||||||
"node_modules/@types/warning": {
|
"node_modules/@types/warning": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
|
"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": {
|
"node_modules/@types/webpack": {
|
||||||
"version": "4.41.32",
|
"version": "4.41.32",
|
||||||
@@ -6201,28 +6714,6 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/airbnb-prop-types": {
|
|
||||||
"version": "2.16.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
|
|
||||||
"integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
|
|
||||||
"dependencies": {
|
|
||||||
"array.prototype.find": "^2.1.1",
|
|
||||||
"function.prototype.name": "^1.1.2",
|
|
||||||
"is-regex": "^1.1.0",
|
|
||||||
"object-is": "^1.1.2",
|
|
||||||
"object.assign": "^4.1.0",
|
|
||||||
"object.entries": "^1.1.2",
|
|
||||||
"prop-types": "^15.7.2",
|
|
||||||
"prop-types-exact": "^1.2.0",
|
|
||||||
"react-is": "^16.13.1"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^0.14 || ^15.0.0 || ^16.0.0-alpha"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/ajv": {
|
"node_modules/ajv": {
|
||||||
"version": "6.12.6",
|
"version": "6.12.6",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||||
@@ -6555,19 +7046,6 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/array.prototype.find": {
|
|
||||||
"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==",
|
|
||||||
"dependencies": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.19.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/array.prototype.flat": {
|
"node_modules/array.prototype.flat": {
|
||||||
"version": "1.2.5",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
||||||
@@ -6588,7 +7066,7 @@
|
|||||||
"node_modules/assert-ok": {
|
"node_modules/assert-ok": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
||||||
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
|
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
|
||||||
},
|
},
|
||||||
"node_modules/assign-symbols": {
|
"node_modules/assign-symbols": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -6632,8 +7110,7 @@
|
|||||||
"node_modules/asynckit": {
|
"node_modules/asynckit": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/at-least-node": {
|
"node_modules/at-least-node": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -6665,6 +7142,14 @@
|
|||||||
"node": ">=8.0.0"
|
"node": ">=8.0.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": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.2.6",
|
"version": "10.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
||||||
@@ -6707,20 +7192,22 @@
|
|||||||
"version": "0.21.4",
|
"version": "0.21.4",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||||
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios-cache-adapter": {
|
"node_modules/axios-cache-interceptor": {
|
||||||
"version": "2.7.3",
|
"version": "0.10.7",
|
||||||
"resolved": "https://registry.npmjs.org/axios-cache-adapter/-/axios-cache-adapter-2.7.3.tgz",
|
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-0.10.7.tgz",
|
||||||
"integrity": "sha512-A+ZKJ9lhpjthOEp4Z3QR/a9xC4du1ALaAsejgRGrH9ef6kSDxdFrhRpulqsh9khsEnwXxGfgpUuDp1YXMNMEiQ==",
|
"integrity": "sha512-UjpxChG5DpF6Kf1IPGMLOzRDNL8ZNS6TOn1jTaVvCE7cWFU904jJwi0T1s+IbijpnLEjK2iq5uLIuR8Sj+RsFQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cache-control-esm": "1.0.0",
|
"cache-parser": "^1.2.4",
|
||||||
"md5": "^2.2.1"
|
"fast-defer": "^1.1.7",
|
||||||
|
"object-code": "^1.2.4"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"funding": {
|
||||||
"axios": "~0.21.1"
|
"url": "https://github.com/ArthurFiorette/axios-cache-interceptor?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios-mock-adapter": {
|
"node_modules/axios-mock-adapter": {
|
||||||
@@ -7827,13 +8314,19 @@
|
|||||||
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
|
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
|
||||||
},
|
},
|
||||||
"node_modules/bootstrap": {
|
"node_modules/bootstrap": {
|
||||||
"version": "4.6.1",
|
"version": "4.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
|
||||||
"integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==",
|
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
|
||||||
"funding": {
|
"funding": [
|
||||||
"type": "opencollective",
|
{
|
||||||
"url": "https://opencollective.com/bootstrap"
|
"type": "github",
|
||||||
},
|
"url": "https://github.com/sponsors/twbs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/bootstrap"
|
||||||
|
}
|
||||||
|
],
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"jquery": "1.9.1 - 3",
|
"jquery": "1.9.1 - 3",
|
||||||
"popper.js": "^1.16.1"
|
"popper.js": "^1.16.1"
|
||||||
@@ -8017,10 +8510,10 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cache-control-esm": {
|
"node_modules/cache-parser": {
|
||||||
"version": "1.0.0",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/cache-control-esm/-/cache-control-esm-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.4.tgz",
|
||||||
"integrity": "sha512-Fa3UV4+eIk4EOih8FTV6EEsVKO0W5XWtNs6FC3InTfVz+EjurjPfDXY5wZDo/lxjDxg5RjNcurLyxEJBcEUx9g=="
|
"integrity": "sha512-O0KwuHuJnbHUrghHi2kGp0SxnWSIBXTYt7M8WVhW0kbPRUNUKoE/Of6e1rRD6AAxmfxFunKnt90yEK09D+sc5g=="
|
||||||
},
|
},
|
||||||
"node_modules/cacheable-request": {
|
"node_modules/cacheable-request": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.4",
|
||||||
@@ -8197,7 +8690,7 @@
|
|||||||
"node_modules/cast-array": {
|
"node_modules/cast-array": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
||||||
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
|
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"isarray": "0.0.1"
|
"isarray": "0.0.1"
|
||||||
}
|
}
|
||||||
@@ -8271,14 +8764,6 @@
|
|||||||
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/charenc": {
|
|
||||||
"version": "0.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
|
|
||||||
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/check-types": {
|
"node_modules/check-types": {
|
||||||
"version": "8.0.3",
|
"version": "8.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
|
||||||
@@ -8647,7 +9132,6 @@
|
|||||||
"version": "1.0.8",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"delayed-stream": "~1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
},
|
},
|
||||||
@@ -8971,14 +9455,6 @@
|
|||||||
"node": ">=4.8"
|
"node": ">=4.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/crypt": {
|
|
||||||
"version": "0.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
|
|
||||||
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/css": {
|
"node_modules/css": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
|
||||||
@@ -9783,7 +10259,6 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.4.0"
|
"node": ">=0.4.0"
|
||||||
}
|
}
|
||||||
@@ -9798,9 +10273,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dequal": {
|
"node_modules/dequal": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
||||||
"integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
|
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
@@ -11612,6 +12087,11 @@
|
|||||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/fast-defer": {
|
||||||
|
"version": "1.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz",
|
||||||
|
"integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg=="
|
||||||
|
},
|
||||||
"node_modules/fast-glob": {
|
"node_modules/fast-glob": {
|
||||||
"version": "3.2.11",
|
"version": "3.2.11",
|
||||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
|
||||||
@@ -11777,6 +12257,22 @@
|
|||||||
"webpack": "^4.0.0 || ^5.0.0"
|
"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-selector/node_modules/tslib": {
|
||||||
|
"version": "2.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
||||||
|
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
||||||
|
},
|
||||||
"node_modules/file-type": {
|
"node_modules/file-type": {
|
||||||
"version": "12.4.2",
|
"version": "12.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
||||||
@@ -11980,9 +12476,9 @@
|
|||||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
"node_modules/follow-redirects": {
|
||||||
"version": "1.14.8",
|
"version": "1.15.2",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||||
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
|
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
@@ -12374,37 +12870,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
||||||
},
|
},
|
||||||
"node_modules/function.prototype.name": {
|
|
||||||
"version": "1.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
|
|
||||||
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
|
|
||||||
"dependencies": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.19.0",
|
|
||||||
"functions-have-names": "^1.2.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/functional-red-black-tree": {
|
"node_modules/functional-red-black-tree": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
||||||
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/functions-have-names": {
|
|
||||||
"version": "1.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
|
|
||||||
"integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==",
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/gensync": {
|
"node_modules/gensync": {
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.2",
|
||||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
@@ -12655,6 +13126,7 @@
|
|||||||
"version": "7.2.0",
|
"version": "7.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
||||||
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
@@ -14191,34 +14663,31 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/intl-format-cache": {
|
|
||||||
"version": "2.2.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz",
|
|
||||||
"integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ=="
|
|
||||||
},
|
|
||||||
"node_modules/intl-messageformat": {
|
"node_modules/intl-messageformat": {
|
||||||
"version": "2.2.0",
|
"version": "9.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
|
||||||
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
|
"integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"intl-messageformat-parser": "1.4.0"
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/fast-memoize": "1.2.1",
|
||||||
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/intl-messageformat-parser": {
|
"node_modules/intl-messageformat/node_modules/@formatjs/ecma402-abstract": {
|
||||||
"version": "1.4.0",
|
"version": "1.11.4",
|
||||||
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=",
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
"deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser"
|
|
||||||
},
|
|
||||||
"node_modules/intl-relativeformat": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==",
|
|
||||||
"deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"intl-messageformat": "^2.0.0"
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/intl-messageformat/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
"node_modules/into-stream": {
|
"node_modules/into-stream": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
|
||||||
@@ -14350,7 +14819,8 @@
|
|||||||
"node_modules/is-buffer": {
|
"node_modules/is-buffer": {
|
||||||
"version": "1.1.6",
|
"version": "1.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/is-callable": {
|
"node_modules/is-callable": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
@@ -18640,9 +19110,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jquery": {
|
"node_modules/jquery": {
|
||||||
"version": "3.6.0",
|
"version": "3.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz",
|
||||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/js-cookie": {
|
"node_modules/js-cookie": {
|
||||||
@@ -19288,25 +19758,42 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mailto-link": {
|
"node_modules/mailto-link": {
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
|
||||||
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
|
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"assert-ok": "~1.0.0",
|
"assert-ok": "~1.0.0",
|
||||||
"cast-array": "~1.0.0",
|
"cast-array": "~1.0.1",
|
||||||
"object-filter": "~1.0.2",
|
"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": {
|
"node_modules/mailto-link/node_modules/query-string": {
|
||||||
"version": "2.4.2",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
|
||||||
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
|
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
|
||||||
"dependencies": {
|
"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": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mailto-link/node_modules/strict-uri-encode": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/make-dir": {
|
"node_modules/make-dir": {
|
||||||
@@ -19375,16 +19862,6 @@
|
|||||||
"css-mediaquery": "^0.1.2"
|
"css-mediaquery": "^0.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/md5": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
|
|
||||||
"dependencies": {
|
|
||||||
"charenc": "0.0.2",
|
|
||||||
"crypt": "0.0.2",
|
|
||||||
"is-buffer": "~1.1.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mdn-data": {
|
"node_modules/mdn-data": {
|
||||||
"version": "2.0.14",
|
"version": "2.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
||||||
@@ -19487,7 +19964,6 @@
|
|||||||
"version": "1.47.0",
|
"version": "1.47.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
|
||||||
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
|
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
@@ -19496,7 +19972,6 @@
|
|||||||
"version": "2.1.30",
|
"version": "2.1.30",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
|
||||||
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
|
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mime-db": "1.47.0"
|
"mime-db": "1.47.0"
|
||||||
},
|
},
|
||||||
@@ -19576,6 +20051,7 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
},
|
},
|
||||||
@@ -20001,6 +20477,11 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/object-code": {
|
||||||
|
"version": "1.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.2.4.tgz",
|
||||||
|
"integrity": "sha512-uGq4ETUuWe+GA586NXEriiaozNuff+YNFXlpD8cVrM1GoiuTZpCABP+bZCWDrvQDoCiSTyiWAFHD/HF/iwhb2w=="
|
||||||
|
},
|
||||||
"node_modules/object-copy": {
|
"node_modules/object-copy": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
||||||
@@ -20042,7 +20523,7 @@
|
|||||||
"node_modules/object-filter": {
|
"node_modules/object-filter": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
|
"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": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.12.0",
|
"version": "1.12.0",
|
||||||
@@ -20056,6 +20537,7 @@
|
|||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
|
||||||
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
|
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"call-bind": "^1.0.2",
|
"call-bind": "^1.0.2",
|
||||||
"define-properties": "^1.1.3"
|
"define-properties": "^1.1.3"
|
||||||
@@ -20108,6 +20590,7 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
|
||||||
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
|
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"call-bind": "^1.0.0",
|
"call-bind": "^1.0.0",
|
||||||
"define-properties": "^1.1.3",
|
"define-properties": "^1.1.3",
|
||||||
@@ -21794,16 +22277,6 @@
|
|||||||
"react-is": "^16.13.1"
|
"react-is": "^16.13.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prop-types-exact": {
|
|
||||||
"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==",
|
|
||||||
"dependencies": {
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"object.assign": "^4.1.0",
|
|
||||||
"reflect.ownkeys": "^0.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/prop-types-extra": {
|
"node_modules/prop-types-extra": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
|
||||||
@@ -21996,13 +22469,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-bootstrap": {
|
"node_modules/react-bootstrap": {
|
||||||
"version": "1.6.4",
|
"version": "1.6.6",
|
||||||
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz",
|
||||||
"integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==",
|
"integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.14.0",
|
"@babel/runtime": "^7.14.0",
|
||||||
"@restart/context": "^2.1.4",
|
"@restart/context": "^2.1.4",
|
||||||
"@restart/hooks": "^0.3.26",
|
"@restart/hooks": "^0.4.7",
|
||||||
"@types/invariant": "^2.2.33",
|
"@types/invariant": "^2.2.33",
|
||||||
"@types/prop-types": "^15.7.3",
|
"@types/prop-types": "^15.7.3",
|
||||||
"@types/react": ">=16.14.8",
|
"@types/react": ">=16.14.8",
|
||||||
@@ -22013,7 +22486,7 @@
|
|||||||
"invariant": "^2.2.4",
|
"invariant": "^2.2.4",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"prop-types-extra": "^1.1.0",
|
"prop-types-extra": "^1.1.0",
|
||||||
"react-overlays": "^5.1.1",
|
"react-overlays": "^5.1.2",
|
||||||
"react-transition-group": "^4.4.1",
|
"react-transition-group": "^4.4.1",
|
||||||
"uncontrollable": "^7.2.1",
|
"uncontrollable": "^7.2.1",
|
||||||
"warning": "^4.0.3"
|
"warning": "^4.0.3"
|
||||||
@@ -22034,6 +22507,15 @@
|
|||||||
"react": "^15.3.0 || ^16.0.0 || ^17.0.0"
|
"react": "^15.3.0 || ^16.0.0 || ^17.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-colorful": {
|
||||||
|
"version": "5.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz",
|
||||||
|
"integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0",
|
||||||
|
"react-dom": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-dev-utils": {
|
"node_modules/react-dev-utils": {
|
||||||
"version": "12.0.0",
|
"version": "12.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
|
||||||
@@ -22354,6 +22836,22 @@
|
|||||||
"react": "^16.14.0"
|
"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-error-overlay": {
|
"node_modules/react-error-overlay": {
|
||||||
"version": "6.0.10",
|
"version": "6.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
|
||||||
@@ -22426,6 +22924,46 @@
|
|||||||
"react": ">=16.3.0"
|
"react": ">=16.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-intl": {
|
||||||
|
"version": "5.25.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz",
|
||||||
|
"integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
|
"@formatjs/intl": "2.2.1",
|
||||||
|
"@formatjs/intl-displaynames": "5.4.3",
|
||||||
|
"@formatjs/intl-listformat": "6.5.3",
|
||||||
|
"@types/hoist-non-react-statics": "^3.3.1",
|
||||||
|
"@types/react": "16 || 17 || 18",
|
||||||
|
"hoist-non-react-statics": "^3.3.2",
|
||||||
|
"intl-messageformat": "9.13.0",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^16.3.0 || 17 || 18",
|
||||||
|
"typescript": "^4.5"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/react-intl/node_modules/@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/react-intl/node_modules/tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
},
|
||||||
"node_modules/react-is": {
|
"node_modules/react-is": {
|
||||||
"version": "16.13.1",
|
"version": "16.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||||
@@ -22436,14 +22974,22 @@
|
|||||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/react-loading-skeleton": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-e1KwEOuBa1REXWoseELIJXlsqWTCHL5IQnqhVhI33WmnuTK7LK1DXl4mmcOLsWVcwqXeOATU9VFJEjz2ytZSng==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-overlays": {
|
"node_modules/react-overlays": {
|
||||||
"version": "5.1.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz",
|
||||||
"integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==",
|
"integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.13.8",
|
"@babel/runtime": "^7.13.8",
|
||||||
"@popperjs/core": "^2.8.6",
|
"@popperjs/core": "^2.11.6",
|
||||||
"@restart/hooks": "^0.3.26",
|
"@restart/hooks": "^0.4.7",
|
||||||
"@types/warning": "^3.0.0",
|
"@types/warning": "^3.0.0",
|
||||||
"dom-helpers": "^5.2.0",
|
"dom-helpers": "^5.2.0",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
@@ -22455,6 +23001,15 @@
|
|||||||
"react-dom": ">=16.3.0"
|
"react-dom": ">=16.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-overlays/node_modules/@popperjs/core": {
|
||||||
|
"version": "2.11.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||||
|
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/popperjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-popper": {
|
"node_modules/react-popper": {
|
||||||
"version": "2.2.5",
|
"version": "2.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz",
|
||||||
@@ -22706,9 +23261,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-transition-group": {
|
"node_modules/react-transition-group": {
|
||||||
"version": "4.4.2",
|
"version": "4.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
"integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
|
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.5.5",
|
"@babel/runtime": "^7.5.5",
|
||||||
"dom-helpers": "^5.0.1",
|
"dom-helpers": "^5.0.1",
|
||||||
@@ -22913,11 +23468,6 @@
|
|||||||
"redux": "^4"
|
"redux": "^4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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="
|
|
||||||
},
|
|
||||||
"node_modules/regenerate": {
|
"node_modules/regenerate": {
|
||||||
"version": "1.4.2",
|
"version": "1.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
||||||
@@ -24677,6 +25227,8 @@
|
|||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
||||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@@ -25151,9 +25703,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/tabbable": {
|
"node_modules/tabbable": {
|
||||||
"version": "4.0.0",
|
"version": "5.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
|
||||||
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
|
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
|
||||||
},
|
},
|
||||||
"node_modules/table": {
|
"node_modules/table": {
|
||||||
"version": "5.4.6",
|
"version": "5.4.6",
|
||||||
@@ -26014,20 +26566,6 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/type-fest": {
|
|
||||||
"version": "2.12.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz",
|
|
||||||
"integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12.20"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/type-is": {
|
"node_modules/type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||||
@@ -26060,7 +26598,7 @@
|
|||||||
"version": "4.6.3",
|
"version": "4.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
@@ -29944,56 +30482,206 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/frontend-component-footer": {
|
"@edx/frontend-component-footer": {
|
||||||
"version": "10.2.4",
|
"version": "12.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-10.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-12.0.0.tgz",
|
||||||
"integrity": "sha512-kmNHL+D4ieB2VGhJ+Hf/Oa07NvmHJqyuSRWHMIph83GXhGh1EfZkmQPw6w7Z1TxLWaKQMr1HfZnQ1+Tz/nNAjQ==",
|
"integrity": "sha512-m8Rx6ZPWzIN5XLrz6Ft3aTuFo0rty0jECd79CBYWdm0D9KD1WxoYEG+fElluyOQp/t42T5jLImHTSWjFURx5kw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
"@fortawesome/fontawesome-svg-core": "6.4.0",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "6.4.0",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "6.4.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
"@fortawesome/free-solid-svg-icons": "6.4.0",
|
||||||
"@fortawesome/react-fontawesome": "0.1.18"
|
"@fortawesome/react-fontawesome": "0.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ=="
|
||||||
|
},
|
||||||
"@fortawesome/fontawesome-svg-core": {
|
"@fortawesome/fontawesome-svg-core": {
|
||||||
"version": "1.2.36",
|
"version": "6.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz",
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz",
|
||||||
"integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==",
|
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-brands-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-regular-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-solid-svg-icons": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
|
||||||
|
"requires": {
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/frontend-component-header": {
|
"@edx/frontend-component-header": {
|
||||||
"version": "2.4.6",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-2.4.6.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-4.0.0.tgz",
|
||||||
"integrity": "sha512-bwEP3B37N4lIDPM4cz/Dg1egQHWf14qj+3VU44BOf5DC/bNhASKeeEJEvDn6XTZdFCpGioHRBtqlEJQJsp0WqA==",
|
"integrity": "sha512-r/L3p2ZSI1DitjxVKAor18GmgJllafYslrdpzGI0vcX/gTemH13jf2Xr9iQqrT921DP2nzZ5GOwGJNptTSjiaA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
"@edx/paragon": "20.30.1",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/fontawesome-svg-core": "6.3.0",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "6.3.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "6.3.0",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.14",
|
"@fortawesome/free-solid-svg-icons": "6.3.0",
|
||||||
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
||||||
"babel-polyfill": "6.26.0",
|
"babel-polyfill": "6.26.0",
|
||||||
"react-responsive": "8.2.0",
|
"react-responsive": "8.2.0",
|
||||||
"react-transition-group": "4.4.2"
|
"react-transition-group": "4.4.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": {
|
"@edx/paragon": {
|
||||||
"version": "1.2.36",
|
"version": "20.30.1",
|
||||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.30.1.tgz",
|
||||||
"integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==",
|
"integrity": "sha512-v3Ek8deZWqVKi3IWP08Mj4egrvbmbqQEyRA6+qazHZdgHJA4qOP1SST42UKd9XxPeRbLWUgaJWd0iBAOAna/gw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
"@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": "^2.0.0",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-bootstrap": "^1.6.5",
|
||||||
|
"react-colorful": "^5.6.1",
|
||||||
|
"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": "^5.3.3",
|
||||||
|
"uncontrollable": "^7.2.1",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.1.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.19.tgz",
|
||||||
|
"integrity": "sha512-Hyb+lB8T18cvLNX0S3llz7PcSOAJMLwiVKBuuzwM/nI5uoBw+gQjnf9il0fR1C3DKOI5Kc79pkJ4/xB0Uw9aFQ==",
|
||||||
|
"requires": {
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg=="
|
||||||
|
},
|
||||||
|
"@fortawesome/fontawesome-svg-core": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-brands-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-xI0c+a8xnKItAXCN8rZgCNCJQiVAd2Y7p9e2ND6zN3J3ekneu96qrePieJ7yA7073C1JxxoM3vH1RU7rYsaj8w==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-regular-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-cZnwiVHZ51SVzWHOaNCIA+u9wevZjCuAGSvSYpNlm6A4H4Vhwh8481Bf/5rwheIC3fFKlgXxLKaw8Xeroz8Ntg==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/free-solid-svg-icons": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fortawesome/react-fontawesome": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
|
||||||
|
"requires": {
|
||||||
|
"prop-types": "^15.8.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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^5.0.1",
|
||||||
|
"once": "^1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimatch": {
|
||||||
|
"version": "5.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"requires": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uuid": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/frontend-lib-special-exams": {
|
"@edx/frontend-lib-special-exams": {
|
||||||
"version": "1.16.3",
|
"version": "2.16.1",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-1.16.3.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-2.16.1.tgz",
|
||||||
"integrity": "sha512-i88xa/msZgh1vgcgTSihG19C+gQcG9AUsxzuamtKKA8swBtK5cDyknsE7XY4RB5z1IE1Wj1x4Bpi4DS6bxBkiQ==",
|
"integrity": "sha512-psmSRary2khFMRHF0uGcAk+IyHFTAJK2a80TH6/gjk9Ewyvup3NQTcFV4MF68NXKy/KsZ0tc1phfpp4NYTG0aA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-svg-core": "1.2.34",
|
"@fortawesome/fontawesome-svg-core": "1.2.34",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.11.2",
|
"@fortawesome/free-brands-svg-icons": "5.11.2",
|
||||||
@@ -30047,15 +30735,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/frontend-platform": {
|
"@edx/frontend-platform": {
|
||||||
"version": "1.15.6",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-1.15.6.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-4.2.0.tgz",
|
||||||
"integrity": "sha512-hvcJwRLy4JBdyBjHgu11nrqmMTWI901q6Ax83pf+yQpz68PpsJ0KdFjerxnkNJjU//XrWUuhSLesOPY2ntIjjg==",
|
"integrity": "sha512-iDoFeccENQKBjqUgdjl5KSwBrjNEj8YW6Ual+6twcHHJUBg3yRoBEphwHIoRREcMgQjhdKVAdWj8eleh4JsEKA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@cospired/i18n-iso-languages": "2.2.0",
|
"@cospired/i18n-iso-languages": "2.2.0",
|
||||||
"axios": "0.26.1",
|
"@formatjs/intl-pluralrules": "4.3.3",
|
||||||
"axios-cache-adapter": "2.7.3",
|
"@formatjs/intl-relativetimeformat": "10.0.1",
|
||||||
|
"axios": "0.27.2",
|
||||||
|
"axios-cache-interceptor": "0.10.7",
|
||||||
"form-urlencoded": "4.1.4",
|
"form-urlencoded": "4.1.4",
|
||||||
"glob": "7.2.0",
|
"glob": "7.2.3",
|
||||||
"history": "4.10.1",
|
"history": "4.10.1",
|
||||||
"i18n-iso-countries": "4.3.1",
|
"i18n-iso-countries": "4.3.1",
|
||||||
"jwt-decode": "3.1.2",
|
"jwt-decode": "3.1.2",
|
||||||
@@ -30066,16 +30756,40 @@
|
|||||||
"lodash.merge": "4.6.2",
|
"lodash.merge": "4.6.2",
|
||||||
"lodash.snakecase": "4.1.1",
|
"lodash.snakecase": "4.1.1",
|
||||||
"pubsub-js": "1.9.4",
|
"pubsub-js": "1.9.4",
|
||||||
"react-intl": "2.9.0",
|
"react-intl": "^5.25.0",
|
||||||
"universal-cookie": "4.0.4"
|
"universal-cookie": "4.0.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": {
|
"axios": {
|
||||||
"version": "0.26.1",
|
"version": "0.27.2",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||||
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
|
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.14.8"
|
"follow-redirects": "^1.14.9",
|
||||||
|
"form-data": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "7.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||||
|
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.1.1",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"history": {
|
"history": {
|
||||||
@@ -30091,16 +30805,12 @@
|
|||||||
"value-equal": "^1.0.1"
|
"value-equal": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"react-intl": {
|
"minimatch": {
|
||||||
"version": "2.9.0",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
"integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==",
|
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"hoist-non-react-statics": "^3.3.0",
|
"brace-expansion": "^1.1.7"
|
||||||
"intl-format-cache": "^2.0.5",
|
|
||||||
"intl-messageformat": "^2.1.0",
|
|
||||||
"intl-relativeformat": "^2.1.0",
|
|
||||||
"invariant": "^2.1.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30115,30 +30825,82 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/paragon": {
|
"@edx/paragon": {
|
||||||
"version": "19.18.3",
|
"version": "20.28.4",
|
||||||
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.18.3.tgz",
|
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.28.4.tgz",
|
||||||
"integrity": "sha512-nG+17daC72qbMlLmIRegXVCylmVdQEPcA6ELg9VSVSgWP+xnQgBx/th0z0fyzp5hr5opesg2TM6azFg+nDTKZw==",
|
"integrity": "sha512-JiEAUaEuOnHB/zC8h9d5f3AwchREiHFKbXFm7JpXNcvXpkTj0TTKTCS6zcfwZeDl77q/+Rx6Js7SpSE2EzAtDg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
"@fortawesome/fontawesome-svg-core": "^6.1.1",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.18",
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
||||||
"@popperjs/core": "^2.11.4",
|
"@popperjs/core": "^2.11.4",
|
||||||
"airbnb-prop-types": "^2.12.0",
|
"bootstrap": "^4.6.2",
|
||||||
"bootstrap": "^4.6.1",
|
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"email-prop-type": "^3.0.0",
|
"email-prop-type": "^3.0.0",
|
||||||
|
"file-selector": "^0.6.0",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
|
"glob": "^8.0.3",
|
||||||
"lodash.uniqby": "^4.7.0",
|
"lodash.uniqby": "^4.7.0",
|
||||||
"mailto-link": "^1.0.0",
|
"mailto-link": "^2.0.0",
|
||||||
"prop-types": "^15.8.1",
|
"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-focus-on": "^3.5.4",
|
||||||
|
"react-loading-skeleton": "^3.1.0",
|
||||||
"react-popper": "^2.2.5",
|
"react-popper": "^2.2.5",
|
||||||
"react-proptype-conditional-require": "^1.0.4",
|
"react-proptype-conditional-require": "^1.0.4",
|
||||||
"react-responsive": "^8.2.0",
|
"react-responsive": "^8.2.0",
|
||||||
"react-table": "^7.7.0",
|
"react-table": "^7.7.0",
|
||||||
"react-transition-group": "^4.4.2",
|
"react-transition-group": "^4.4.2",
|
||||||
"tabbable": "^4.0.0",
|
"tabbable": "^5.3.3",
|
||||||
"uncontrollable": "^7.2.1"
|
"uncontrollable": "^7.2.1",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-common-types": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ=="
|
||||||
|
},
|
||||||
|
"@fortawesome/fontawesome-svg-core": {
|
||||||
|
"version": "6.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz",
|
||||||
|
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==",
|
||||||
|
"requires": {
|
||||||
|
"@fortawesome/fontawesome-common-types": "6.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^5.0.1",
|
||||||
|
"once": "^1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimatch": {
|
||||||
|
"version": "5.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"requires": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uuid": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@edx/reactifex": {
|
"@edx/reactifex": {
|
||||||
@@ -30191,6 +30953,169 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@formatjs/fast-memoize": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/icu-messageformat-parser": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/icu-skeleton-parser": "1.3.6",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/icu-skeleton-parser": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/intl": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/fast-memoize": "1.2.1",
|
||||||
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
|
"@formatjs/intl-displaynames": "5.4.3",
|
||||||
|
"@formatjs/intl-listformat": "6.5.3",
|
||||||
|
"intl-messageformat": "9.13.0",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/intl-displaynames": {
|
||||||
|
"version": "5.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
|
||||||
|
"integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/intl-listformat": {
|
||||||
|
"version": "6.5.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
|
||||||
|
"integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/intl-localematcher": {
|
||||||
|
"version": "0.2.25",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
|
||||||
|
"integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@formatjs/intl-numberformat": {
|
"@formatjs/intl-numberformat": {
|
||||||
"version": "5.7.6",
|
"version": "5.7.6",
|
||||||
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
|
||||||
@@ -30218,6 +31143,58 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@formatjs/intl-pluralrules": {
|
||||||
|
"version": "4.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz",
|
||||||
|
"integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@formatjs/intl-relativetimeformat": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@formatjs/ts-transformer": {
|
"@formatjs/ts-transformer": {
|
||||||
"version": "2.13.0",
|
"version": "2.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
|
||||||
@@ -31082,9 +32059,9 @@
|
|||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@restart/hooks": {
|
"@restart/hooks": {
|
||||||
"version": "0.3.27",
|
"version": "0.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz",
|
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.9.tgz",
|
||||||
"integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==",
|
"integrity": "sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"dequal": "^2.0.2"
|
"dequal": "^2.0.2"
|
||||||
}
|
}
|
||||||
@@ -31922,9 +32899,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/react-transition-group": {
|
"@types/react-transition-group": {
|
||||||
"version": "4.4.4",
|
"version": "4.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
"integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
|
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
@@ -32062,7 +33039,7 @@
|
|||||||
"@types/warning": {
|
"@types/warning": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
|
"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": {
|
"@types/webpack": {
|
||||||
"version": "4.41.32",
|
"version": "4.41.32",
|
||||||
@@ -32420,22 +33397,6 @@
|
|||||||
"indent-string": "^4.0.0"
|
"indent-string": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"airbnb-prop-types": {
|
|
||||||
"version": "2.16.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
|
|
||||||
"integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
|
|
||||||
"requires": {
|
|
||||||
"array.prototype.find": "^2.1.1",
|
|
||||||
"function.prototype.name": "^1.1.2",
|
|
||||||
"is-regex": "^1.1.0",
|
|
||||||
"object-is": "^1.1.2",
|
|
||||||
"object.assign": "^4.1.0",
|
|
||||||
"object.entries": "^1.1.2",
|
|
||||||
"prop-types": "^15.7.2",
|
|
||||||
"prop-types-exact": "^1.2.0",
|
|
||||||
"react-is": "^16.13.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ajv": {
|
"ajv": {
|
||||||
"version": "6.12.6",
|
"version": "6.12.6",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||||
@@ -32677,16 +33638,6 @@
|
|||||||
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
|
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"array.prototype.find": {
|
|
||||||
"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==",
|
|
||||||
"requires": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.19.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"array.prototype.flat": {
|
"array.prototype.flat": {
|
||||||
"version": "1.2.5",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
||||||
@@ -32701,7 +33652,7 @@
|
|||||||
"assert-ok": {
|
"assert-ok": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
|
||||||
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
|
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
|
||||||
},
|
},
|
||||||
"assign-symbols": {
|
"assign-symbols": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -32739,8 +33690,7 @@
|
|||||||
"asynckit": {
|
"asynckit": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"at-least-node": {
|
"at-least-node": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -32760,6 +33710,11 @@
|
|||||||
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
|
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
|
||||||
"dev": true
|
"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": {
|
"autoprefixer": {
|
||||||
"version": "10.2.6",
|
"version": "10.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
|
||||||
@@ -32783,17 +33738,19 @@
|
|||||||
"version": "0.21.4",
|
"version": "0.21.4",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||||
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"axios-cache-adapter": {
|
"axios-cache-interceptor": {
|
||||||
"version": "2.7.3",
|
"version": "0.10.7",
|
||||||
"resolved": "https://registry.npmjs.org/axios-cache-adapter/-/axios-cache-adapter-2.7.3.tgz",
|
"resolved": "https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-0.10.7.tgz",
|
||||||
"integrity": "sha512-A+ZKJ9lhpjthOEp4Z3QR/a9xC4du1ALaAsejgRGrH9ef6kSDxdFrhRpulqsh9khsEnwXxGfgpUuDp1YXMNMEiQ==",
|
"integrity": "sha512-UjpxChG5DpF6Kf1IPGMLOzRDNL8ZNS6TOn1jTaVvCE7cWFU904jJwi0T1s+IbijpnLEjK2iq5uLIuR8Sj+RsFQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"cache-control-esm": "1.0.0",
|
"cache-parser": "^1.2.4",
|
||||||
"md5": "^2.2.1"
|
"fast-defer": "^1.1.7",
|
||||||
|
"object-code": "^1.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"axios-mock-adapter": {
|
"axios-mock-adapter": {
|
||||||
@@ -33702,9 +34659,9 @@
|
|||||||
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
|
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
|
||||||
},
|
},
|
||||||
"bootstrap": {
|
"bootstrap": {
|
||||||
"version": "4.6.1",
|
"version": "4.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
|
||||||
"integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==",
|
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
@@ -33843,10 +34800,10 @@
|
|||||||
"unset-value": "^1.0.0"
|
"unset-value": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cache-control-esm": {
|
"cache-parser": {
|
||||||
"version": "1.0.0",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/cache-control-esm/-/cache-control-esm-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cache-parser/-/cache-parser-1.2.4.tgz",
|
||||||
"integrity": "sha512-Fa3UV4+eIk4EOih8FTV6EEsVKO0W5XWtNs6FC3InTfVz+EjurjPfDXY5wZDo/lxjDxg5RjNcurLyxEJBcEUx9g=="
|
"integrity": "sha512-O0KwuHuJnbHUrghHi2kGp0SxnWSIBXTYt7M8WVhW0kbPRUNUKoE/Of6e1rRD6AAxmfxFunKnt90yEK09D+sc5g=="
|
||||||
},
|
},
|
||||||
"cacheable-request": {
|
"cacheable-request": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.4",
|
||||||
@@ -33990,7 +34947,7 @@
|
|||||||
"cast-array": {
|
"cast-array": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
|
||||||
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
|
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"isarray": "0.0.1"
|
"isarray": "0.0.1"
|
||||||
}
|
}
|
||||||
@@ -34051,11 +35008,6 @@
|
|||||||
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"charenc": {
|
|
||||||
"version": "0.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
|
|
||||||
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
|
|
||||||
},
|
|
||||||
"check-types": {
|
"check-types": {
|
||||||
"version": "8.0.3",
|
"version": "8.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
|
||||||
@@ -34373,7 +35325,6 @@
|
|||||||
"version": "1.0.8",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "~1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
@@ -34648,11 +35599,6 @@
|
|||||||
"which": "^1.2.9"
|
"which": "^1.2.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crypt": {
|
|
||||||
"version": "0.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
|
|
||||||
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
|
|
||||||
},
|
|
||||||
"css": {
|
"css": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
|
||||||
@@ -35283,8 +36229,7 @@
|
|||||||
"delayed-stream": {
|
"delayed-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"depd": {
|
"depd": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
@@ -35293,9 +36238,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"dequal": {
|
"dequal": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
||||||
"integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug=="
|
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
|
||||||
},
|
},
|
||||||
"destroy": {
|
"destroy": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
@@ -36773,6 +37718,11 @@
|
|||||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"fast-defer": {
|
||||||
|
"version": "1.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz",
|
||||||
|
"integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg=="
|
||||||
|
},
|
||||||
"fast-glob": {
|
"fast-glob": {
|
||||||
"version": "3.2.11",
|
"version": "3.2.11",
|
||||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
|
||||||
@@ -36903,6 +37853,21 @@
|
|||||||
"schema-utils": "^3.0.0"
|
"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"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
||||||
|
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"file-type": {
|
"file-type": {
|
||||||
"version": "12.4.2",
|
"version": "12.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
|
||||||
@@ -37061,9 +38026,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"follow-redirects": {
|
"follow-redirects": {
|
||||||
"version": "1.14.8",
|
"version": "1.15.2",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||||
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA=="
|
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
||||||
},
|
},
|
||||||
"font-awesome": {
|
"font-awesome": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
@@ -37348,28 +38313,12 @@
|
|||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
||||||
},
|
},
|
||||||
"function.prototype.name": {
|
|
||||||
"version": "1.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
|
|
||||||
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
|
|
||||||
"requires": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.19.0",
|
|
||||||
"functions-have-names": "^1.2.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"functional-red-black-tree": {
|
"functional-red-black-tree": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
||||||
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"functions-have-names": {
|
|
||||||
"version": "1.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
|
|
||||||
"integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA=="
|
|
||||||
},
|
|
||||||
"gensync": {
|
"gensync": {
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.2",
|
||||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
@@ -37543,6 +38492,7 @@
|
|||||||
"version": "7.2.0",
|
"version": "7.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
||||||
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
@@ -38701,30 +39651,31 @@
|
|||||||
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
|
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"intl-format-cache": {
|
|
||||||
"version": "2.2.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz",
|
|
||||||
"integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ=="
|
|
||||||
},
|
|
||||||
"intl-messageformat": {
|
"intl-messageformat": {
|
||||||
"version": "2.2.0",
|
"version": "9.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
|
||||||
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
|
"integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"intl-messageformat-parser": "1.4.0"
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
}
|
"@formatjs/fast-memoize": "1.2.1",
|
||||||
},
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
"intl-messageformat-parser": {
|
"tslib": "^2.1.0"
|
||||||
"version": "1.4.0",
|
},
|
||||||
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
|
"dependencies": {
|
||||||
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="
|
"@formatjs/ecma402-abstract": {
|
||||||
},
|
"version": "1.11.4",
|
||||||
"intl-relativeformat": {
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
"version": "2.2.0",
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
"resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz",
|
"requires": {
|
||||||
"integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==",
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
"requires": {
|
"tslib": "^2.1.0"
|
||||||
"intl-messageformat": "^2.0.0"
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"into-stream": {
|
"into-stream": {
|
||||||
@@ -38824,7 +39775,8 @@
|
|||||||
"is-buffer": {
|
"is-buffer": {
|
||||||
"version": "1.1.6",
|
"version": "1.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-callable": {
|
"is-callable": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
@@ -42091,9 +43043,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"jquery": {
|
"jquery": {
|
||||||
"version": "3.6.0",
|
"version": "3.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz",
|
||||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
|
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"js-cookie": {
|
"js-cookie": {
|
||||||
@@ -42649,23 +43601,31 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mailto-link": {
|
"mailto-link": {
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
|
||||||
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
|
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-ok": "~1.0.0",
|
"assert-ok": "~1.0.0",
|
||||||
"cast-array": "~1.0.0",
|
"cast-array": "~1.0.1",
|
||||||
"object-filter": "~1.0.2",
|
"object-filter": "~1.0.2",
|
||||||
"query-string": "~2.4.1"
|
"query-string": "~7.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"query-string": {
|
"query-string": {
|
||||||
"version": "2.4.2",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
|
||||||
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
|
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
|
||||||
"requires": {
|
"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": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -42726,16 +43686,6 @@
|
|||||||
"css-mediaquery": "^0.1.2"
|
"css-mediaquery": "^0.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"md5": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
|
|
||||||
"requires": {
|
|
||||||
"charenc": "0.0.2",
|
|
||||||
"crypt": "0.0.2",
|
|
||||||
"is-buffer": "~1.1.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mdn-data": {
|
"mdn-data": {
|
||||||
"version": "2.0.14",
|
"version": "2.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
||||||
@@ -42816,14 +43766,12 @@
|
|||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.47.0",
|
"version": "1.47.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
|
||||||
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
|
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mime-types": {
|
"mime-types": {
|
||||||
"version": "2.1.30",
|
"version": "2.1.30",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
|
||||||
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
|
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.47.0"
|
"mime-db": "1.47.0"
|
||||||
}
|
}
|
||||||
@@ -42877,6 +43825,7 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
@@ -43221,6 +44170,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
||||||
},
|
},
|
||||||
|
"object-code": {
|
||||||
|
"version": "1.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-code/-/object-code-1.2.4.tgz",
|
||||||
|
"integrity": "sha512-uGq4ETUuWe+GA586NXEriiaozNuff+YNFXlpD8cVrM1GoiuTZpCABP+bZCWDrvQDoCiSTyiWAFHD/HF/iwhb2w=="
|
||||||
|
},
|
||||||
"object-copy": {
|
"object-copy": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
||||||
@@ -43255,7 +44209,7 @@
|
|||||||
"object-filter": {
|
"object-filter": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
|
"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": {
|
"object-inspect": {
|
||||||
"version": "1.12.0",
|
"version": "1.12.0",
|
||||||
@@ -43266,6 +44220,7 @@
|
|||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
|
||||||
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
|
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"call-bind": "^1.0.2",
|
"call-bind": "^1.0.2",
|
||||||
"define-properties": "^1.1.3"
|
"define-properties": "^1.1.3"
|
||||||
@@ -43300,6 +44255,7 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
|
||||||
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
|
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"call-bind": "^1.0.0",
|
"call-bind": "^1.0.0",
|
||||||
"define-properties": "^1.1.3",
|
"define-properties": "^1.1.3",
|
||||||
@@ -44506,16 +45462,6 @@
|
|||||||
"react-is": "^16.13.1"
|
"react-is": "^16.13.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prop-types-exact": {
|
|
||||||
"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==",
|
|
||||||
"requires": {
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"object.assign": "^4.1.0",
|
|
||||||
"reflect.ownkeys": "^0.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"prop-types-extra": {
|
"prop-types-extra": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
|
||||||
@@ -44659,13 +45605,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"react-bootstrap": {
|
"react-bootstrap": {
|
||||||
"version": "1.6.4",
|
"version": "1.6.6",
|
||||||
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz",
|
||||||
"integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==",
|
"integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.14.0",
|
"@babel/runtime": "^7.14.0",
|
||||||
"@restart/context": "^2.1.4",
|
"@restart/context": "^2.1.4",
|
||||||
"@restart/hooks": "^0.3.26",
|
"@restart/hooks": "^0.4.7",
|
||||||
"@types/invariant": "^2.2.33",
|
"@types/invariant": "^2.2.33",
|
||||||
"@types/prop-types": "^15.7.3",
|
"@types/prop-types": "^15.7.3",
|
||||||
"@types/react": ">=16.14.8",
|
"@types/react": ">=16.14.8",
|
||||||
@@ -44676,7 +45622,7 @@
|
|||||||
"invariant": "^2.2.4",
|
"invariant": "^2.2.4",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"prop-types-extra": "^1.1.0",
|
"prop-types-extra": "^1.1.0",
|
||||||
"react-overlays": "^5.1.1",
|
"react-overlays": "^5.1.2",
|
||||||
"react-transition-group": "^4.4.1",
|
"react-transition-group": "^4.4.1",
|
||||||
"uncontrollable": "^7.2.1",
|
"uncontrollable": "^7.2.1",
|
||||||
"warning": "^4.0.3"
|
"warning": "^4.0.3"
|
||||||
@@ -44690,6 +45636,12 @@
|
|||||||
"@babel/runtime": "^7.12.13"
|
"@babel/runtime": "^7.12.13"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-colorful": {
|
||||||
|
"version": "5.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz",
|
||||||
|
"integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"react-dev-utils": {
|
"react-dev-utils": {
|
||||||
"version": "12.0.0",
|
"version": "12.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
|
||||||
@@ -44918,6 +45870,16 @@
|
|||||||
"scheduler": "^0.19.1"
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-error-overlay": {
|
"react-error-overlay": {
|
||||||
"version": "6.0.10",
|
"version": "6.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
|
||||||
@@ -44974,6 +45936,39 @@
|
|||||||
"react-side-effect": "^2.1.0"
|
"react-side-effect": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-intl": {
|
||||||
|
"version": "5.25.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz",
|
||||||
|
"integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/ecma402-abstract": "1.11.4",
|
||||||
|
"@formatjs/icu-messageformat-parser": "2.1.0",
|
||||||
|
"@formatjs/intl": "2.2.1",
|
||||||
|
"@formatjs/intl-displaynames": "5.4.3",
|
||||||
|
"@formatjs/intl-listformat": "6.5.3",
|
||||||
|
"@types/hoist-non-react-statics": "^3.3.1",
|
||||||
|
"@types/react": "16 || 17 || 18",
|
||||||
|
"hoist-non-react-statics": "^3.3.2",
|
||||||
|
"intl-messageformat": "9.13.0",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@formatjs/ecma402-abstract": {
|
||||||
|
"version": "1.11.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
||||||
|
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
||||||
|
"requires": {
|
||||||
|
"@formatjs/intl-localematcher": "0.2.25",
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-is": {
|
"react-is": {
|
||||||
"version": "16.13.1",
|
"version": "16.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
||||||
@@ -44984,19 +45979,32 @@
|
|||||||
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
|
||||||
},
|
},
|
||||||
|
"react-loading-skeleton": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-e1KwEOuBa1REXWoseELIJXlsqWTCHL5IQnqhVhI33WmnuTK7LK1DXl4mmcOLsWVcwqXeOATU9VFJEjz2ytZSng==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"react-overlays": {
|
"react-overlays": {
|
||||||
"version": "5.1.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz",
|
||||||
"integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==",
|
"integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.13.8",
|
"@babel/runtime": "^7.13.8",
|
||||||
"@popperjs/core": "^2.8.6",
|
"@popperjs/core": "^2.11.6",
|
||||||
"@restart/hooks": "^0.3.26",
|
"@restart/hooks": "^0.4.7",
|
||||||
"@types/warning": "^3.0.0",
|
"@types/warning": "^3.0.0",
|
||||||
"dom-helpers": "^5.2.0",
|
"dom-helpers": "^5.2.0",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"uncontrollable": "^7.2.1",
|
"uncontrollable": "^7.2.1",
|
||||||
"warning": "^4.0.3"
|
"warning": "^4.0.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@popperjs/core": {
|
||||||
|
"version": "2.11.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||||
|
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"react-popper": {
|
"react-popper": {
|
||||||
@@ -45172,9 +46180,9 @@
|
|||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"react-transition-group": {
|
"react-transition-group": {
|
||||||
"version": "4.4.2",
|
"version": "4.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
"integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
|
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.5.5",
|
"@babel/runtime": "^7.5.5",
|
||||||
"dom-helpers": "^5.0.1",
|
"dom-helpers": "^5.0.1",
|
||||||
@@ -45332,11 +46340,6 @@
|
|||||||
"integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==",
|
"integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"reflect.ownkeys": {
|
|
||||||
"version": "0.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz",
|
|
||||||
"integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
|
|
||||||
},
|
|
||||||
"regenerate": {
|
"regenerate": {
|
||||||
"version": "1.4.2",
|
"version": "1.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
||||||
@@ -46728,7 +47731,9 @@
|
|||||||
"strict-uri-encode": {
|
"strict-uri-encode": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
|
||||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
|
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
@@ -47098,9 +48103,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tabbable": {
|
"tabbable": {
|
||||||
"version": "4.0.0",
|
"version": "5.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
|
||||||
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
|
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"version": "5.4.6",
|
"version": "5.4.6",
|
||||||
@@ -47794,14 +48799,6 @@
|
|||||||
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"type-fest": {
|
|
||||||
"version": "2.12.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz",
|
|
||||||
"integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"type-is": {
|
"type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||||
@@ -47831,7 +48828,7 @@
|
|||||||
"version": "4.6.3",
|
"version": "4.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||||
"dev": true
|
"devOptional": true
|
||||||
},
|
},
|
||||||
"unbox-primitive": {
|
"unbox-primitive": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -30,11 +30,11 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
||||||
"@edx/frontend-component-footer": "10.2.4",
|
"@edx/frontend-component-footer": "^12.0.0",
|
||||||
"@edx/frontend-component-header": "2.4.6",
|
"@edx/frontend-component-header": "^4.0.0",
|
||||||
"@edx/frontend-lib-special-exams": "1.16.3",
|
"@edx/frontend-lib-special-exams": "^2.16.1",
|
||||||
"@edx/frontend-platform": "1.15.6",
|
"@edx/frontend-platform": "^4.2.0",
|
||||||
"@edx/paragon": "19.18.3",
|
"@edx/paragon": "^20.28.4",
|
||||||
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
||||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ describe('ActiveEnterpriseAlert', () => {
|
|||||||
it('Shows alert message and links', () => {
|
it('Shows alert message and links', () => {
|
||||||
render(<ActiveEnterpriseAlert {...mockData} />);
|
render(<ActiveEnterpriseAlert {...mockData} />);
|
||||||
expect(screen.getByRole('alert')).toBeInTheDocument();
|
expect(screen.getByRole('alert')).toBeInTheDocument();
|
||||||
expect(screen.getByText('test message')).toBeInTheDocument();
|
expect(screen.getByText('test message', { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByRole('link', { name: 'change enterprise now' })).toHaveAttribute(
|
expect(screen.getByRole('link', { name: 'change enterprise now' })).toHaveAttribute(
|
||||||
'href', `${getConfig().LMS_BASE_URL}/enterprise/select/active/?success_url=http%3A%2F%2Flocalhost%2Fcourse%2Ftest-course-id%2Fhome`,
|
'href', `${getConfig().LMS_BASE_URL}/enterprise/select/active/?success_url=http%3A%2F%2Flocalhost%2Fcourse%2Ftest-course-id%2Fhome`,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|||||||
import {
|
import {
|
||||||
FormattedDate,
|
FormattedDate,
|
||||||
FormattedMessage,
|
FormattedMessage,
|
||||||
FormattedRelative,
|
FormattedRelativeTime,
|
||||||
FormattedTime,
|
FormattedTime,
|
||||||
} from '@edx/frontend-platform/i18n';
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { Alert } from '@edx/paragon';
|
import { Alert } from '@edx/paragon';
|
||||||
@@ -11,7 +11,9 @@ import { Info } from '@edx/paragon/icons';
|
|||||||
|
|
||||||
import { useModel } from '../../generic/model-store';
|
import { useModel } from '../../generic/model-store';
|
||||||
|
|
||||||
const DAY_MS = 24 * 60 * 60 * 1000; // in ms
|
const DAY_SEC = 24 * 60 * 60; // in seconds
|
||||||
|
const DAY_MS = DAY_SEC * 1000; // in ms
|
||||||
|
const YEAR_SEC = 365 * DAY_SEC; // in seconds
|
||||||
|
|
||||||
function CourseStartAlert({ payload }) {
|
function CourseStartAlert({ payload }) {
|
||||||
const {
|
const {
|
||||||
@@ -25,15 +27,18 @@ function CourseStartAlert({ payload }) {
|
|||||||
|
|
||||||
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
|
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
|
||||||
|
|
||||||
|
const delta = new Date(startDate) - new Date();
|
||||||
const timeRemaining = (
|
const timeRemaining = (
|
||||||
<FormattedRelative
|
<FormattedRelativeTime
|
||||||
key="timeRemaining"
|
key="timeRemaining"
|
||||||
value={startDate}
|
value={delta / 1000}
|
||||||
|
numeric="auto"
|
||||||
|
// 1 year interval to help auto format. It won't format without updateIntervalInSeconds.
|
||||||
|
updateIntervalInSeconds={YEAR_SEC}
|
||||||
{...timezoneFormatArgs}
|
{...timezoneFormatArgs}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
const delta = new Date(startDate) - new Date();
|
|
||||||
if (delta < DAY_MS) {
|
if (delta < DAY_MS) {
|
||||||
return (
|
return (
|
||||||
<Alert variant="info" icon={Info}>
|
<Alert variant="info" icon={Info}>
|
||||||
|
|||||||
@@ -577,7 +577,7 @@ describe('Outline Tab', () => {
|
|||||||
const instructorToolbar = await screen.getByTestId('instructor-toolbar');
|
const instructorToolbar = await screen.getByTestId('instructor-toolbar');
|
||||||
expect(instructorToolbar).toBeInTheDocument();
|
expect(instructorToolbar).toBeInTheDocument();
|
||||||
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
|
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByText('1/1/2020')).toBeInTheDocument();
|
expect(screen.getByText('1/1/2020', { exact: false })).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not render banner when not masquerading', async () => {
|
it('does not render banner when not masquerading', async () => {
|
||||||
@@ -1017,6 +1017,22 @@ describe('Outline Tab', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('displays expiration warning', async () => {
|
it('displays expiration warning', async () => {
|
||||||
|
const expirationDate = new Date();
|
||||||
|
// This message will render if the expiration date is within 28 days; set the date 10 days in future
|
||||||
|
expirationDate.setTime(expirationDate.getTime() + 864800000);
|
||||||
|
axiosMock.onGet(proctoringInfoUrl).reply(200, {
|
||||||
|
onboarding_status: 'verified',
|
||||||
|
onboarding_link: 'test',
|
||||||
|
expiration_date: expirationDate.toString(),
|
||||||
|
onboarding_release_date: onboardingReleaseDate.toISOString(),
|
||||||
|
});
|
||||||
|
await fetchAndRender();
|
||||||
|
await screen.findByText('This course contains proctored exams');
|
||||||
|
expect(screen.queryByText('Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
|
||||||
|
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('displays expiration warning for other course', async () => {
|
||||||
const expirationDate = new Date();
|
const expirationDate = new Date();
|
||||||
// This message will render if the expiration date is within 28 days; set the date 10 days in future
|
// This message will render if the expiration date is within 28 days; set the date 10 days in future
|
||||||
expirationDate.setTime(expirationDate.getTime() + 864800000);
|
expirationDate.setTime(expirationDate.getTime() + 864800000);
|
||||||
@@ -1028,7 +1044,23 @@ describe('Outline Tab', () => {
|
|||||||
});
|
});
|
||||||
await fetchAndRender();
|
await fetchAndRender();
|
||||||
await screen.findByText('This course contains proctored exams');
|
await screen.findByText('This course contains proctored exams');
|
||||||
expect(screen.queryByText('Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
|
expect(screen.queryByText('Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
|
||||||
|
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('displays expired', async () => {
|
||||||
|
const expirationDate = new Date();
|
||||||
|
// This message appears after expiration, set the date 10 days in the past
|
||||||
|
expirationDate.setTime(expirationDate.getTime() - 864800000);
|
||||||
|
axiosMock.onGet(proctoringInfoUrl).reply(200, {
|
||||||
|
onboarding_status: 'verified',
|
||||||
|
onboarding_link: 'test',
|
||||||
|
expiration_date: expirationDate.toString(),
|
||||||
|
onboarding_release_date: onboardingReleaseDate.toISOString(),
|
||||||
|
});
|
||||||
|
await fetchAndRender();
|
||||||
|
await screen.findByText('This course contains proctored exams');
|
||||||
|
expect(screen.queryByText('Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.')).toBeInTheDocument();
|
||||||
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
|
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|||||||
import {
|
import {
|
||||||
FormattedDate,
|
FormattedDate,
|
||||||
FormattedMessage,
|
FormattedMessage,
|
||||||
FormattedRelative,
|
FormattedRelativeTime,
|
||||||
FormattedTime,
|
FormattedTime,
|
||||||
} from '@edx/frontend-platform/i18n';
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { Alert } from '@edx/paragon';
|
import { Alert } from '@edx/paragon';
|
||||||
@@ -21,7 +21,7 @@ function CourseEndAlert({ payload }) {
|
|||||||
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
|
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
|
||||||
|
|
||||||
const timeRemaining = (
|
const timeRemaining = (
|
||||||
<FormattedRelative
|
<FormattedRelativeTime
|
||||||
key="timeRemaining"
|
key="timeRemaining"
|
||||||
value={endDate}
|
value={endDate}
|
||||||
{...timezoneFormatArgs}
|
{...timezoneFormatArgs}
|
||||||
|
|||||||
@@ -231,6 +231,11 @@ const messages = defineMessages({
|
|||||||
defaultMessage: 'Expiring Soon',
|
defaultMessage: 'Expiring Soon',
|
||||||
description: 'A label to indicate that proctortrack onboarding exam will expire soon',
|
description: 'A label to indicate that proctortrack onboarding exam will expire soon',
|
||||||
},
|
},
|
||||||
|
expiredProctoringStatus: {
|
||||||
|
id: 'learning.proctoringPanel.status.expired',
|
||||||
|
defaultMessage: 'Expired',
|
||||||
|
description: 'A label to indicate that proctortrack onboarding exam has expired',
|
||||||
|
},
|
||||||
proctoringCurrentStatus: {
|
proctoringCurrentStatus: {
|
||||||
id: 'learning.proctoringPanel.status',
|
id: 'learning.proctoringPanel.status',
|
||||||
defaultMessage: 'Current Onboarding Status:',
|
defaultMessage: 'Current Onboarding Status:',
|
||||||
@@ -278,9 +283,14 @@ const messages = defineMessages({
|
|||||||
},
|
},
|
||||||
expiringSoonProctoringMessage: {
|
expiringSoonProctoringMessage: {
|
||||||
id: 'learning.proctoringPanel.message.expiringSoon',
|
id: 'learning.proctoringPanel.message.expiringSoon',
|
||||||
defaultMessage: 'Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',
|
defaultMessage: 'Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',
|
||||||
description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expiring soon)',
|
description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expiring soon)',
|
||||||
},
|
},
|
||||||
|
expiredProctoringMessage: {
|
||||||
|
id: 'learning.proctoringPanel.message.expired',
|
||||||
|
defaultMessage: 'Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.',
|
||||||
|
description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expired)',
|
||||||
|
},
|
||||||
proctoringPanelGeneralInfo: {
|
proctoringPanelGeneralInfo: {
|
||||||
id: 'learning.proctoringPanel.generalInfo',
|
id: 'learning.proctoringPanel.generalInfo',
|
||||||
defaultMessage: 'You must complete the onboarding process prior to taking any proctored exam. ',
|
defaultMessage: 'You must complete the onboarding process prior to taking any proctored exam. ',
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ function ProctoringInfoPanel({ intl }) {
|
|||||||
error: 'error',
|
error: 'error',
|
||||||
otherCourseApproved: 'otherCourseApproved',
|
otherCourseApproved: 'otherCourseApproved',
|
||||||
expiringSoon: 'expiringSoon',
|
expiringSoon: 'expiringSoon',
|
||||||
|
expired: 'expired',
|
||||||
};
|
};
|
||||||
|
|
||||||
function getReadableStatusClass(examStatus) {
|
function getReadableStatusClass(examStatus) {
|
||||||
@@ -54,9 +55,14 @@ function ProctoringInfoPanel({ intl }) {
|
|||||||
return readableClass;
|
return readableClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isNotYetSubmitted(examStatus) {
|
function isCurrentlySubmitted(examStatus) {
|
||||||
const NO_SHOW_STATES = ['submitted', 'second_review_required', 'verified'];
|
const SUBMITTED_STATES = ['submitted', 'second_review_required'];
|
||||||
return !NO_SHOW_STATES.includes(examStatus);
|
return SUBMITTED_STATES.includes(examStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isSubmissionRequired(examStatus) {
|
||||||
|
const OK_STATES = [readableStatuses.submitted, readableStatuses.verified];
|
||||||
|
return !OK_STATES.includes(examStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isNotYetReleased(examReleaseDate) {
|
function isNotYetReleased(examReleaseDate) {
|
||||||
@@ -77,11 +83,19 @@ function ProctoringInfoPanel({ intl }) {
|
|||||||
return borderClass;
|
return borderClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isExpiringSoon(dateString) {
|
function isExpired(dateString) {
|
||||||
// Returns true if the expiration date is within 28 days
|
// Returns true if the expiration date has passed
|
||||||
const today = new Date();
|
const today = new Date();
|
||||||
const expirationDateObject = new Date(dateString);
|
const expirationDateObject = new Date(dateString);
|
||||||
return today > expirationDateObject.getTime() - 2419200000;
|
return today >= expirationDateObject.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
function isExpiringSoon(dateString) {
|
||||||
|
// Returns true if the expiration date is within 28 days
|
||||||
|
const twentyeightDays = 28 * 24 * 60 * 60 * 1000;
|
||||||
|
const today = new Date();
|
||||||
|
const expirationDateObject = new Date(dateString);
|
||||||
|
return today > expirationDateObject.getTime() - twentyeightDays;
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -96,7 +110,9 @@ function ProctoringInfoPanel({ intl }) {
|
|||||||
setStatus(response.onboarding_status);
|
setStatus(response.onboarding_status);
|
||||||
setLink(response.onboarding_link);
|
setLink(response.onboarding_link);
|
||||||
const expirationDate = response.expiration_date;
|
const expirationDate = response.expiration_date;
|
||||||
if (expirationDate && isExpiringSoon(expirationDate)) {
|
if (expirationDate && isExpired(expirationDate)) {
|
||||||
|
setReadableStatus(getReadableStatusClass('expired'));
|
||||||
|
} else if (expirationDate && isExpiringSoon(expirationDate)) {
|
||||||
setReadableStatus(getReadableStatusClass('expiringSoon'));
|
setReadableStatus(getReadableStatusClass('expiringSoon'));
|
||||||
} else {
|
} else {
|
||||||
setReadableStatus(getReadableStatusClass(response.onboarding_status));
|
setReadableStatus(getReadableStatusClass(response.onboarding_status));
|
||||||
@@ -175,17 +191,17 @@ function ProctoringInfoPanel({ intl }) {
|
|||||||
{![readableStatuses.verified, readableStatuses.otherCourseApproved].includes(readableStatus) && (
|
{![readableStatuses.verified, readableStatuses.otherCourseApproved].includes(readableStatus) && (
|
||||||
<>
|
<>
|
||||||
<p>
|
<p>
|
||||||
{isNotYetSubmitted(status) && (
|
{!isCurrentlySubmitted(status) && (
|
||||||
intl.formatMessage(messages.proctoringPanelGeneralInfo)
|
intl.formatMessage(messages.proctoringPanelGeneralInfo)
|
||||||
)}
|
)}
|
||||||
{!isNotYetSubmitted(status) && (
|
{isCurrentlySubmitted(status) && (
|
||||||
intl.formatMessage(messages.proctoringPanelGeneralInfoSubmitted)
|
intl.formatMessage(messages.proctoringPanelGeneralInfoSubmitted)
|
||||||
)}
|
)}
|
||||||
</p>
|
</p>
|
||||||
<p>{intl.formatMessage(messages.proctoringPanelGeneralTime)}</p>
|
<p>{intl.formatMessage(messages.proctoringPanelGeneralTime)}</p>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{isNotYetSubmitted(status) && (
|
{isSubmissionRequired(readableStatus) && (
|
||||||
onboardingExamButton
|
onboardingExamButton
|
||||||
)}
|
)}
|
||||||
<Button variant="outline-primary" block href="https://support.edx.org/hc/en-us/sections/115004169247-Taking-Timed-and-Proctored-Exams">
|
<Button variant="outline-primary" block href="https://support.edx.org/hc/en-us/sections/115004169247-Taking-Timed-and-Proctored-Exams">
|
||||||
|
|||||||
@@ -1237,6 +1237,7 @@ describe('Progress Tab', () => {
|
|||||||
month: 'long',
|
month: 'long',
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
}),
|
}),
|
||||||
|
{ exact: false },
|
||||||
)).toBeInTheDocument();
|
)).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1302,7 +1303,7 @@ describe('Progress Tab', () => {
|
|||||||
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
||||||
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
|
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
|
||||||
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
|
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByText('1/1/2020')).toBeInTheDocument();
|
expect(screen.getByText('1/1/2020', { exact: false })).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
it('does not render banner when not masquerading', async () => {
|
it('does not render banner when not masquerading', async () => {
|
||||||
setMetadata({ is_enrolled: true, original_user_is_staff: true });
|
setMetadata({ is_enrolled: true, original_user_is_staff: true });
|
||||||
@@ -1315,7 +1316,7 @@ describe('Progress Tab', () => {
|
|||||||
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
|
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
|
||||||
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
||||||
expect(screen.queryByText('This learner no longer has access to this course. Their access expired on', { exact: false })).not.toBeInTheDocument();
|
expect(screen.queryByText('This learner no longer has access to this course. Their access expired on', { exact: false })).not.toBeInTheDocument();
|
||||||
expect(screen.queryByText('1/1/2020')).not.toBeInTheDocument();
|
expect(screen.queryByText('1/1/2020', { exact: false })).not.toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1331,7 +1332,7 @@ describe('Progress Tab', () => {
|
|||||||
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
||||||
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
|
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
|
||||||
expect(screen.getByText('This learner does not yet have access to this course. The course starts on', { exact: false })).toBeInTheDocument();
|
expect(screen.getByText('This learner does not yet have access to this course. The course starts on', { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByText('1/1/2999')).toBeInTheDocument();
|
expect(screen.getByText('1/1/2999', { exact: false })).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
it('does not render banner when not masquerading', async () => {
|
it('does not render banner when not masquerading', async () => {
|
||||||
setMetadata({
|
setMetadata({
|
||||||
@@ -1343,7 +1344,7 @@ describe('Progress Tab', () => {
|
|||||||
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
|
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
|
||||||
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
|
||||||
expect(screen.queryByText('This learner does not yet have access to this course. The course starts on', { exact: false })).not.toBeInTheDocument();
|
expect(screen.queryByText('This learner does not yet have access to this course. The course starts on', { exact: false })).not.toBeInTheDocument();
|
||||||
expect(screen.queryByText('1/1/2999')).not.toBeInTheDocument();
|
expect(screen.queryByText('1/1/2999', { exact: false })).not.toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { useModel } from '../../../generic/model-store';
|
import { useModel } from '../../../generic/model-store';
|
||||||
|
|
||||||
import CompleteDonutSegment from './CompleteDonutSegment';
|
import CompleteDonutSegment from './CompleteDonutSegment';
|
||||||
@@ -26,6 +28,8 @@ function CompletionDonutChart({ intl }) {
|
|||||||
const lockedPercentage = lockedCount ? Number(((lockedCount / numTotalUnits) * 100).toFixed(0)) : 0;
|
const lockedPercentage = lockedCount ? Number(((lockedCount / numTotalUnits) * 100).toFixed(0)) : 0;
|
||||||
const incompletePercentage = 100 - completePercentage - lockedPercentage;
|
const incompletePercentage = 100 - completePercentage - lockedPercentage;
|
||||||
|
|
||||||
|
const isLocaleRtl = isRtl(getLocale());
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<svg role="img" width="50%" height="100%" viewBox="0 0 42 42" className="donut" style={{ maxWidth: '178px' }} aria-hidden="true">
|
<svg role="img" width="50%" height="100%" viewBox="0 0 42 42" className="donut" style={{ maxWidth: '178px' }} aria-hidden="true">
|
||||||
@@ -35,7 +39,7 @@ function CompletionDonutChart({ intl }) {
|
|||||||
<circle className="donut-hole" fill="#fff" cx="21" cy="21" r="15.91549430918954" />
|
<circle className="donut-hole" fill="#fff" cx="21" cy="21" r="15.91549430918954" />
|
||||||
<g className="donut-chart-text">
|
<g className="donut-chart-text">
|
||||||
<text x="50%" y="50%" className="donut-chart-number">
|
<text x="50%" y="50%" className="donut-chart-number">
|
||||||
{completePercentage}%
|
{completePercentage}{isLocaleRtl && '\u200f'}%
|
||||||
</text>
|
</text>
|
||||||
<text x="50%" y="50%" className="donut-chart-label">
|
<text x="50%" y="50%" className="donut-chart-label">
|
||||||
{intl.formatMessage(messages.donutLabel)}
|
{intl.formatMessage(messages.donutLabel)}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ function CurrentGradeTooltip({ intl, tooltipClassName }) {
|
|||||||
overlay={(
|
overlay={(
|
||||||
<Popover id={`${isPassing ? 'passing' : 'non-passing'}-grade-tooltip`} aria-hidden="true" className={tooltipClassName}>
|
<Popover id={`${isPassing ? 'passing' : 'non-passing'}-grade-tooltip`} aria-hidden="true" className={tooltipClassName}>
|
||||||
<Popover.Content data-testid="currentGradeTooltipContent" className={isPassing ? 'text-white' : 'text-dark-700'}>
|
<Popover.Content data-testid="currentGradeTooltipContent" className={isPassing ? 'text-white' : 'text-dark-700'}>
|
||||||
{currentGrade.toFixed(0)}%
|
{currentGrade.toFixed(0)}{isLocaleRtl ? '\u200f' : ''}%
|
||||||
</Popover.Content>
|
</Popover.Content>
|
||||||
</Popover>
|
</Popover>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import React from 'react';
|
|||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { useModel } from '../../../../generic/model-store';
|
import { useModel } from '../../../../generic/model-store';
|
||||||
import CurrentGradeTooltip from './CurrentGradeTooltip';
|
import CurrentGradeTooltip from './CurrentGradeTooltip';
|
||||||
import PassingGradeTooltip from './PassingGradeTooltip';
|
import PassingGradeTooltip from './PassingGradeTooltip';
|
||||||
@@ -26,14 +28,16 @@ function GradeBar({ intl, passingGrade }) {
|
|||||||
|
|
||||||
const lockedTooltipClassName = gradesFeatureIsFullyLocked ? 'locked-overlay' : '';
|
const lockedTooltipClassName = gradesFeatureIsFullyLocked ? 'locked-overlay' : '';
|
||||||
|
|
||||||
|
const adjustedRtlStyle = (percentOffest) => (isRtl(getLocale()) ? { transform: `translateX(${100 - percentOffest}%)` } : {});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="col-12 col-sm-6 align-self-center p-0">
|
<div className="col-12 col-sm-6 align-self-center p-0">
|
||||||
<div className="sr-only">{intl.formatMessage(messages.courseGradeBarAltText, { currentGrade, passingGrade })}</div>
|
<div className="sr-only">{intl.formatMessage(messages.courseGradeBarAltText, { currentGrade, passingGrade })}</div>
|
||||||
<svg width="100%" height="100px" className="grade-bar" aria-hidden="true">
|
<svg width="100%" height="100px" className="grade-bar" aria-hidden="true">
|
||||||
<g style={{ transform: 'translateY(2.61em)' }}>
|
<g style={{ transform: 'translateY(2.61em)' }}>
|
||||||
<rect className="grade-bar__base" width="100%" />
|
<rect className="grade-bar__base" width="100%" />
|
||||||
<rect className="grade-bar--passing" width={`${passingGrade}%`} />
|
<rect className="grade-bar--passing" width={`${passingGrade}%`} style={adjustedRtlStyle(passingGrade)} />
|
||||||
<rect className={`grade-bar--current-${isPassing ? 'passing' : 'non-passing'}`} width={`${currentGrade}%`} />
|
<rect className={`grade-bar--current-${isPassing ? 'passing' : 'non-passing'}`} width={`${currentGrade}%`} style={adjustedRtlStyle(currentGrade)} />
|
||||||
|
|
||||||
{/* Start divider */}
|
{/* Start divider */}
|
||||||
<rect className="grade-bar__divider" />
|
<rect className="grade-bar__divider" />
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function PassingGradeTooltip({ intl, passingGrade, tooltipClassName }) {
|
|||||||
overlay={(
|
overlay={(
|
||||||
<Popover id="minimum-grade-tooltip" className={`bg-primary-500 ${tooltipClassName}`} aria-hidden="true">
|
<Popover id="minimum-grade-tooltip" className={`bg-primary-500 ${tooltipClassName}`} aria-hidden="true">
|
||||||
<Popover.Content className="text-white">
|
<Popover.Content className="text-white">
|
||||||
{passingGrade}%
|
{passingGrade}{isLocaleRtl && '\u200f'}%
|
||||||
</Popover.Content>
|
</Popover.Content>
|
||||||
</Popover>
|
</Popover>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ function DetailedGrades({ intl }) {
|
|||||||
} = useSelector(state => state.courseHome);
|
} = useSelector(state => state.courseHome);
|
||||||
const {
|
const {
|
||||||
org,
|
org,
|
||||||
|
tabs,
|
||||||
} = useModel('courseHomeMeta', courseId);
|
} = useModel('courseHomeMeta', courseId);
|
||||||
const {
|
const {
|
||||||
gradesFeatureIsFullyLocked,
|
gradesFeatureIsFullyLocked,
|
||||||
@@ -36,11 +37,14 @@ function DetailedGrades({ intl }) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const outlineLink = (
|
const overviewTab = tabs.find(tab => tab.slug === 'outline');
|
||||||
|
const overviewTabUrl = overviewTab && overviewTab.url;
|
||||||
|
|
||||||
|
const outlineLink = overviewTabUrl && (
|
||||||
<Hyperlink
|
<Hyperlink
|
||||||
variant="muted"
|
variant="muted"
|
||||||
isInline
|
isInline
|
||||||
destination={`/course/${courseId}/home`}
|
destination={overviewTabUrl}
|
||||||
onClick={logOutlineLinkClick}
|
onClick={logOutlineLinkClick}
|
||||||
tabIndex={gradesFeatureIsFullyLocked ? '-1' : '0'}
|
tabIndex={gradesFeatureIsFullyLocked ? '-1' : '0'}
|
||||||
>
|
>
|
||||||
@@ -63,14 +67,16 @@ function DetailedGrades({ intl }) {
|
|||||||
{!hasSectionScores && (
|
{!hasSectionScores && (
|
||||||
<p className="small">{intl.formatMessage(messages.detailedGradesEmpty)}</p>
|
<p className="small">{intl.formatMessage(messages.detailedGradesEmpty)}</p>
|
||||||
)}
|
)}
|
||||||
<p className="x-small m-0">
|
{overviewTabUrl && (
|
||||||
<FormattedMessage
|
<p className="x-small m-0">
|
||||||
id="progress.ungradedAlert"
|
<FormattedMessage
|
||||||
defaultMessage="For progress on ungraded aspects of the course, view your {outlineLink}."
|
id="progress.ungradedAlert"
|
||||||
description="Text that precede link that redirect to course outline page"
|
defaultMessage="For progress on ungraded aspects of the course, view your {outlineLink}."
|
||||||
values={{ outlineLink }}
|
description="Text that precede link that redirect to course outline page"
|
||||||
/>
|
values={{ outlineLink }}
|
||||||
</p>
|
/>
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
|
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { DataTable } from '@edx/paragon';
|
import { DataTable } from '@edx/paragon';
|
||||||
|
|
||||||
import { useModel } from '../../../../generic/model-store';
|
import { useModel } from '../../../../generic/model-store';
|
||||||
@@ -17,6 +19,7 @@ function DetailedGradesTable({ intl }) {
|
|||||||
sectionScores,
|
sectionScores,
|
||||||
} = useModel('progress', courseId);
|
} = useModel('progress', courseId);
|
||||||
|
|
||||||
|
const isLocaleRtl = isRtl(getLocale());
|
||||||
return (
|
return (
|
||||||
sectionScores.map((chapter) => {
|
sectionScores.map((chapter) => {
|
||||||
const subsectionScores = chapter.subsections.filter(
|
const subsectionScores = chapter.subsections.filter(
|
||||||
@@ -32,7 +35,7 @@ function DetailedGradesTable({ intl }) {
|
|||||||
|
|
||||||
const detailedGradesData = subsectionScores.map((subsection) => ({
|
const detailedGradesData = subsectionScores.map((subsection) => ({
|
||||||
subsectionTitle: <SubsectionTitleCell subsection={subsection} />,
|
subsectionTitle: <SubsectionTitleCell subsection={subsection} />,
|
||||||
score: <span className={subsection.learnerHasAccess ? '' : 'greyed-out'}>{subsection.numPointsEarned}/{subsection.numPointsPossible}</span>,
|
score: <span className={subsection.learnerHasAccess ? '' : 'greyed-out'}>{subsection.numPointsEarned}{isLocaleRtl ? '\\' : '/'}{subsection.numPointsPossible}</span>,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -2,18 +2,21 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
|
|
||||||
import messages from '../messages';
|
import messages from '../messages';
|
||||||
|
|
||||||
function ProblemScoreDrawer({ intl, problemScores, subsection }) {
|
function ProblemScoreDrawer({ intl, problemScores, subsection }) {
|
||||||
|
const isLocaleRtl = isRtl(getLocale());
|
||||||
return (
|
return (
|
||||||
<span className="row w-100 m-0 x-small ml-4 pt-2 pl-1 text-gray-700 flex-nowrap">
|
<span className="row w-100 m-0 x-small ml-4 pt-2 pl-1 text-gray-700 flex-nowrap">
|
||||||
<span id="problem-score-label" className="col-auto p-0">{intl.formatMessage(messages.problemScoreLabel)}</span>
|
<span id="problem-score-label" className="col-auto p-0">{intl.formatMessage(messages.problemScoreLabel)}</span>
|
||||||
<div className={classNames('col', 'p-0', { 'greyed-out': !subsection.learnerHasAccess })}>
|
<div className={classNames('col', 'p-0', { 'greyed-out': !subsection.learnerHasAccess })}>
|
||||||
<ul className="list-unstyled row w-100 m-0" aria-labelledby="problem-score-label">
|
<ul className="list-unstyled row w-100 m-0" aria-labelledby="problem-score-label">
|
||||||
{problemScores.map(problemScore => (
|
{problemScores.map(problemScore => (
|
||||||
<li className="ml-3">{problemScore.earned}/{problemScore.possible}</li>
|
<li className="ml-3">{problemScore.earned}{isLocaleRtl ? '\\' : '/'}{problemScore.possible}</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
|
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { DataTable } from '@edx/paragon';
|
import { DataTable } from '@edx/paragon';
|
||||||
import { useModel } from '../../../../generic/model-store';
|
import { useModel } from '../../../../generic/model-store';
|
||||||
|
|
||||||
@@ -66,13 +68,15 @@ function GradeSummaryTable({ intl, setAllOfSomeAssignmentTypeIsLocked }) {
|
|||||||
|
|
||||||
const locked = !gradesFeatureIsFullyLocked && hasNoAccessToAssignmentsOfType(assignment.type);
|
const locked = !gradesFeatureIsFullyLocked && hasNoAccessToAssignmentsOfType(assignment.type);
|
||||||
|
|
||||||
|
const isLocaleRtl = isRtl(getLocale());
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: {
|
type: {
|
||||||
footnoteId, footnoteMarker, type: assignment.type, locked,
|
footnoteId, footnoteMarker, type: assignment.type, locked,
|
||||||
},
|
},
|
||||||
weight: { weight: `${(assignment.weight * 100).toFixed(0)}%`, locked },
|
weight: { weight: `${(assignment.weight * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
|
||||||
grade: { grade: `${(assignment.averageGrade * 100).toFixed(0)}%`, locked },
|
grade: { grade: `${(assignment.averageGrade * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
|
||||||
weightedGrade: { weightedGrade: `${(assignment.weightedGrade * 100).toFixed(0)}%`, locked },
|
weightedGrade: { weightedGrade: `${(assignment.weightedGrade * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
|
|
||||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
import {
|
||||||
|
getLocale, injectIntl, intlShape, isRtl,
|
||||||
|
} from '@edx/frontend-platform/i18n';
|
||||||
import { DataTable } from '@edx/paragon';
|
import { DataTable } from '@edx/paragon';
|
||||||
import { useModel } from '../../../../generic/model-store';
|
import { useModel } from '../../../../generic/model-store';
|
||||||
|
|
||||||
@@ -22,11 +24,13 @@ function GradeSummaryTableFooter({ intl }) {
|
|||||||
const bgColor = isPassing ? 'bg-success-100' : 'bg-warning-100';
|
const bgColor = isPassing ? 'bg-success-100' : 'bg-warning-100';
|
||||||
const totalGrade = (percent * 100).toFixed(0);
|
const totalGrade = (percent * 100).toFixed(0);
|
||||||
|
|
||||||
|
const isLocaleRtl = isRtl(getLocale());
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DataTable.TableFooter className={`border-top border-primary ${bgColor}`}>
|
<DataTable.TableFooter className={`border-top border-primary ${bgColor}`}>
|
||||||
<div className="row w-100 m-0">
|
<div className="row w-100 m-0">
|
||||||
<div id="weighted-grade-summary" className="col-8 p-0 small">{intl.formatMessage(messages.weightedGradeSummary)}</div>
|
<div id="weighted-grade-summary" className="col-8 p-0 small">{intl.formatMessage(messages.weightedGradeSummary)}</div>
|
||||||
<div data-testid="gradeSummaryFooterTotalWeightedGrade" aria-labelledby="weighted-grade-summary" className="col-4 p-0 text-right font-weight-bold small">{totalGrade}%</div>
|
<div data-testid="gradeSummaryFooterTotalWeightedGrade" aria-labelledby="weighted-grade-summary" className="col-4 p-0 text-right font-weight-bold small">{totalGrade}{isLocaleRtl && '\u200f'}%</div>
|
||||||
</div>
|
</div>
|
||||||
</DataTable.TableFooter>
|
</DataTable.TableFooter>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ function RelatedLinks({ intl }) {
|
|||||||
} = useSelector(state => state.courseHome);
|
} = useSelector(state => state.courseHome);
|
||||||
const {
|
const {
|
||||||
org,
|
org,
|
||||||
|
tabs,
|
||||||
} = useModel('courseHomeMeta', courseId);
|
} = useModel('courseHomeMeta', courseId);
|
||||||
|
|
||||||
const { administrator } = getAuthenticatedUser();
|
const { administrator } = getAuthenticatedUser();
|
||||||
@@ -27,22 +28,31 @@ function RelatedLinks({ intl }) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const overviewTab = tabs.find(tab => tab.slug === 'outline');
|
||||||
|
const overviewTabUrl = overviewTab && overviewTab.url;
|
||||||
|
const datesTab = tabs.find(tab => tab.slug === 'dates');
|
||||||
|
const datesTabUrl = datesTab && datesTab.url;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="mb-4 x-small">
|
<section className="mb-4 x-small">
|
||||||
<h3 className="h4">{intl.formatMessage(messages.relatedLinks)}</h3>
|
<h3 className="h4">{intl.formatMessage(messages.relatedLinks)}</h3>
|
||||||
<ul className="pl-4">
|
<ul className="pl-4">
|
||||||
|
{datesTabUrl && (
|
||||||
<li>
|
<li>
|
||||||
<Hyperlink destination={`/course/${courseId}/dates`} onClick={() => logLinkClicked('dates')}>
|
<Hyperlink destination={datesTabUrl} onClick={() => logLinkClicked('dates')}>
|
||||||
{intl.formatMessage(messages.datesCardLink)}
|
{intl.formatMessage(messages.datesCardLink)}
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
<p>{intl.formatMessage(messages.datesCardDescription)}</p>
|
<p>{intl.formatMessage(messages.datesCardDescription)}</p>
|
||||||
</li>
|
</li>
|
||||||
|
)}
|
||||||
|
{overviewTabUrl && (
|
||||||
<li>
|
<li>
|
||||||
<Hyperlink destination={`/course/${courseId}/home`} onClick={() => logLinkClicked('course_outline')}>
|
<Hyperlink destination={overviewTabUrl} onClick={() => logLinkClicked('course_outline')}>
|
||||||
{intl.formatMessage(messages.outlineCardLink)}
|
{intl.formatMessage(messages.outlineCardLink)}
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
<p>{intl.formatMessage(messages.outlineCardDescription)}</p>
|
<p>{intl.formatMessage(messages.outlineCardDescription)}</p>
|
||||||
</li>
|
</li>
|
||||||
|
)}
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { render } from '@testing-library/react';
|
|
||||||
import { Router } from 'react-router';
|
import { Router } from 'react-router';
|
||||||
import { createMemoryHistory } from 'history';
|
import { createMemoryHistory } from 'history';
|
||||||
|
import { render, initializeMockApp } from '../setupTest';
|
||||||
import CoursewareRedirectLandingPage from './CoursewareRedirectLandingPage';
|
import CoursewareRedirectLandingPage from './CoursewareRedirectLandingPage';
|
||||||
|
|
||||||
const redirectUrl = jest.fn();
|
const redirectUrl = jest.fn();
|
||||||
@@ -17,6 +17,7 @@ jest.mock('react-router', () => ({
|
|||||||
|
|
||||||
describe('CoursewareRedirectLandingPage', () => {
|
describe('CoursewareRedirectLandingPage', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
await initializeMockApp();
|
||||||
delete global.location;
|
delete global.location;
|
||||||
global.location = { assign: redirectUrl };
|
global.location = { assign: redirectUrl };
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Helmet } from 'react-helmet';
|
import { Helmet } from 'react-helmet';
|
||||||
import { useDispatch } from 'react-redux';
|
import { useDispatch } from 'react-redux';
|
||||||
@@ -46,10 +46,8 @@ function Course({
|
|||||||
|
|
||||||
// Below the tabs, above the breadcrumbs alerts (appearing in the order listed here)
|
// Below the tabs, above the breadcrumbs alerts (appearing in the order listed here)
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const celebrateFirstSection = celebrations && celebrations.firstSection;
|
|
||||||
const [firstSectionCelebrationOpen, setFirstSectionCelebrationOpen] = useState(shouldCelebrateOnSectionLoad(
|
const [firstSectionCelebrationOpen, setFirstSectionCelebrationOpen] = useState(false);
|
||||||
courseId, sequenceId, celebrateFirstSection, dispatch, celebrations,
|
|
||||||
));
|
|
||||||
// If streakLengthToCelebrate is populated, that modal takes precedence. Wait til the next load to display
|
// If streakLengthToCelebrate is populated, that modal takes precedence. Wait til the next load to display
|
||||||
// the weekly goal celebration modal.
|
// the weekly goal celebration modal.
|
||||||
const [weeklyGoalCelebrationOpen, setWeeklyGoalCelebrationOpen] = useState(
|
const [weeklyGoalCelebrationOpen, setWeeklyGoalCelebrationOpen] = useState(
|
||||||
@@ -74,6 +72,17 @@ function Course({
|
|||||||
/** [MM-P2P] Experiment */
|
/** [MM-P2P] Experiment */
|
||||||
const MMP2P = initCoursewareMMP2P(courseId, sequenceId, unitId);
|
const MMP2P = initCoursewareMMP2P(courseId, sequenceId, unitId);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const celebrateFirstSection = celebrations && celebrations.firstSection;
|
||||||
|
setFirstSectionCelebrationOpen(shouldCelebrateOnSectionLoad(
|
||||||
|
courseId,
|
||||||
|
sequenceId,
|
||||||
|
celebrateFirstSection,
|
||||||
|
dispatch,
|
||||||
|
celebrations,
|
||||||
|
));
|
||||||
|
}, [sequenceId]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SidebarProvider courseId={courseId} unitId={unitId}>
|
<SidebarProvider courseId={courseId} unitId={unitId}>
|
||||||
<Helmet>
|
<Helmet>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { screen, render } from '@testing-library/react';
|
|||||||
import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
||||||
import { getConfig } from '@edx/frontend-platform';
|
import { getConfig } from '@edx/frontend-platform';
|
||||||
import { BrowserRouter } from 'react-router-dom';
|
import { BrowserRouter } from 'react-router-dom';
|
||||||
|
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||||
import { useModel, useModels } from '../../generic/model-store';
|
import { useModel, useModels } from '../../generic/model-store';
|
||||||
import CourseBreadcrumbs from './CourseBreadcrumbs';
|
import CourseBreadcrumbs from './CourseBreadcrumbs';
|
||||||
|
|
||||||
@@ -106,14 +107,16 @@ describe('CourseBreadcrumbs', () => {
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
render(
|
render(
|
||||||
<BrowserRouter>
|
<IntlProvider>
|
||||||
<CourseBreadcrumbs
|
<BrowserRouter>
|
||||||
courseId="course-v1:edX+DemoX+Demo_Course"
|
<CourseBreadcrumbs
|
||||||
sectionId="block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations"
|
courseId="course-v1:edX+DemoX+Demo_Course"
|
||||||
sequenceId="block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions"
|
sectionId="block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations"
|
||||||
isStaff
|
sequenceId="block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions"
|
||||||
/>
|
isStaff
|
||||||
</BrowserRouter>,
|
/>
|
||||||
|
</BrowserRouter>,
|
||||||
|
</IntlProvider>,
|
||||||
);
|
);
|
||||||
it('renders course breadcrumbs as expected', async () => {
|
it('renders course breadcrumbs as expected', async () => {
|
||||||
expect(screen.queryAllByRole('link')).toHaveLength(1);
|
expect(screen.queryAllByRole('link')).toHaveLength(1);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import MockAdapter from 'axios-mock-adapter';
|
import MockAdapter from 'axios-mock-adapter';
|
||||||
import { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';
|
import { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';
|
||||||
import { getConfig } from '@edx/frontend-platform';
|
|
||||||
import { Factory } from 'rosie';
|
import { Factory } from 'rosie';
|
||||||
import {
|
import {
|
||||||
render, screen, fireEvent, initializeTestStore, waitFor, authenticatedUser, logUnhandledRequests,
|
render, screen, fireEvent, initializeTestStore, waitFor, authenticatedUser, logUnhandledRequests,
|
||||||
} from '../../../setupTest';
|
} from '../../../setupTest';
|
||||||
import { BookmarkButton } from './index';
|
import { BookmarkButton } from './index';
|
||||||
|
import { getBookmarksBaseUrl } from './data/api';
|
||||||
|
|
||||||
describe('Bookmark Button', () => {
|
describe('Bookmark Button', () => {
|
||||||
let axiosMock;
|
let axiosMock;
|
||||||
@@ -32,7 +32,8 @@ describe('Bookmark Button', () => {
|
|||||||
mockData.unitId = nonBookmarkedUnitBlock.id;
|
mockData.unitId = nonBookmarkedUnitBlock.id;
|
||||||
|
|
||||||
axiosMock = new MockAdapter(getAuthenticatedHttpClient());
|
axiosMock = new MockAdapter(getAuthenticatedHttpClient());
|
||||||
const bookmarkUrl = `${getConfig().LMS_BASE_URL}/api/bookmarks/v1/bookmarks/`;
|
const bookmarkUrl = getBookmarksBaseUrl();
|
||||||
|
|
||||||
axiosMock.onPost(bookmarkUrl).reply(200, { });
|
axiosMock.onPost(bookmarkUrl).reply(200, { });
|
||||||
|
|
||||||
const bookmarkDeleteUrlRegExp = new RegExp(`${bookmarkUrl}*,*`);
|
const bookmarkDeleteUrlRegExp = new RegExp(`${bookmarkUrl}*,*`);
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { getConfig } from '@edx/frontend-platform';
|
import { getConfig } from '@edx/frontend-platform';
|
||||||
import { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
import { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
||||||
|
|
||||||
const bookmarksBaseUrl = `${getConfig().LMS_BASE_URL}/api/bookmarks/v1/bookmarks/`;
|
export const getBookmarksBaseUrl = () => `${getConfig().LMS_BASE_URL}/api/bookmarks/v1/bookmarks/`;
|
||||||
|
|
||||||
export async function createBookmark(usageId) {
|
export async function createBookmark(usageId) {
|
||||||
return getAuthenticatedHttpClient().post(bookmarksBaseUrl, { usage_id: usageId });
|
return getAuthenticatedHttpClient().post(getBookmarksBaseUrl(), { usage_id: usageId });
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteBookmark(usageId) {
|
export async function deleteBookmark(usageId) {
|
||||||
const { username } = getAuthenticatedUser();
|
const { username } = getAuthenticatedUser();
|
||||||
return getAuthenticatedHttpClient().delete(`${bookmarksBaseUrl}${username},${usageId}/`);
|
return getAuthenticatedHttpClient().delete(`${getBookmarksBaseUrl()}${username},${usageId}/`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
useWindowSize,
|
useWindowSize,
|
||||||
} from '@edx/paragon';
|
} from '@edx/paragon';
|
||||||
|
|
||||||
|
import { useDispatch } from 'react-redux';
|
||||||
import ClapsMobile from './assets/claps_280x201.gif';
|
import ClapsMobile from './assets/claps_280x201.gif';
|
||||||
import ClapsTablet from './assets/claps_456x328.gif';
|
import ClapsTablet from './assets/claps_456x328.gif';
|
||||||
import messages from './messages';
|
import messages from './messages';
|
||||||
@@ -19,12 +20,13 @@ import { useModel } from '../../../generic/model-store';
|
|||||||
function CelebrationModal({
|
function CelebrationModal({
|
||||||
courseId, intl, isOpen, onClose, ...rest
|
courseId, intl, isOpen, onClose, ...rest
|
||||||
}) {
|
}) {
|
||||||
const { org } = useModel('courseHomeMeta', courseId);
|
const { org, celebrations } = useModel('courseHomeMeta', courseId);
|
||||||
|
const dispatch = useDispatch();
|
||||||
const wideScreen = useWindowSize().width >= breakpoints.small.minWidth;
|
const wideScreen = useWindowSize().width >= breakpoints.small.minWidth;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isOpen) {
|
if (isOpen) {
|
||||||
recordFirstSectionCelebration(org, courseId);
|
recordFirstSectionCelebration(org, courseId, celebrations, dispatch);
|
||||||
}
|
}
|
||||||
}, [isOpen]);
|
}, [isOpen]);
|
||||||
|
|
||||||
|
|||||||
@@ -57,14 +57,16 @@ function WeeklyGoalCelebrationModal({
|
|||||||
className="mr-2"
|
className="mr-2"
|
||||||
style={{ height: '21px', width: '22px' }}
|
style={{ height: '21px', width: '22px' }}
|
||||||
/>
|
/>
|
||||||
<FormattedMessage
|
<div>
|
||||||
id="learning.celebration.setGoal"
|
<FormattedMessage
|
||||||
defaultMessage="Setting a goal can help you {strongText} in your course."
|
id="learning.celebration.setGoal"
|
||||||
description="It explain the advantages of setting goal"
|
defaultMessage="Setting a goal can help you {strongText} in your course."
|
||||||
values={{
|
description="It explain the advantages of setting goal"
|
||||||
strongText: (<strong>achieve higher performance</strong>),
|
values={{
|
||||||
}}
|
strongText: (<strong>achieve higher performance</strong>),
|
||||||
/>
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
</StandardModal>
|
</StandardModal>
|
||||||
|
|||||||
@@ -15,9 +15,20 @@ function handleNextSectionCelebration(sequenceId, nextSequenceId) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function recordFirstSectionCelebration(org, courseId) {
|
function recordFirstSectionCelebration(org, courseId, celebrations, dispatch) {
|
||||||
// Tell the LMS
|
// Tell the LMS
|
||||||
postCelebrationComplete(courseId, { first_section: false });
|
postCelebrationComplete(courseId, { first_section: false });
|
||||||
|
// Update our local copy of course data from LMS
|
||||||
|
dispatch(updateModel({
|
||||||
|
modelType: 'courseHomeMeta',
|
||||||
|
model: {
|
||||||
|
id: courseId,
|
||||||
|
celebrations: {
|
||||||
|
...celebrations,
|
||||||
|
firstSection: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
// Tell our analytics
|
// Tell our analytics
|
||||||
const { administrator } = getAuthenticatedUser();
|
const { administrator } = getAuthenticatedUser();
|
||||||
|
|||||||
15
src/courseware/course/celebration/utils.test.jsx
Normal file
15
src/courseware/course/celebration/utils.test.jsx
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { recordFirstSectionCelebration } from './utils';
|
||||||
|
|
||||||
|
jest.mock('@edx/frontend-platform/analytics');
|
||||||
|
jest.mock('./data/api');
|
||||||
|
jest.mock('@edx/frontend-platform/auth', () => ({
|
||||||
|
getAuthenticatedUser: jest.fn(() => ({ administrator: 'admin' })),
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('recordFirstSectionCelebration', () => {
|
||||||
|
it('updates the local copy of the course data from the LMS', async () => {
|
||||||
|
const dispatchMock = jest.fn();
|
||||||
|
recordFirstSectionCelebration('org', 'courseId', 'celebration', dispatchMock);
|
||||||
|
expect(dispatchMock).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
.content-tools {
|
.content-tools {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
|||||||
@@ -411,6 +411,7 @@ describe('Course Exit Pages', () => {
|
|||||||
month: 'long',
|
month: 'long',
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
}),
|
}),
|
||||||
|
{ exact: false },
|
||||||
)).toBeInTheDocument();
|
)).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ describe('Sequence Content', () => {
|
|||||||
courseId: courseware.courseId,
|
courseId: courseware.courseId,
|
||||||
sequenceId: courseware.sequenceId,
|
sequenceId: courseware.sequenceId,
|
||||||
unitId: models.sequences[courseware.sequenceId].unitIds[0],
|
unitId: models.sequences[courseware.sequenceId].unitIds[0],
|
||||||
unitLoadedHandler: () => {},
|
unitLoadedHandler: () => { },
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ function Unit({
|
|||||||
const [showError, setShowError] = useState(false);
|
const [showError, setShowError] = useState(false);
|
||||||
const [modalOptions, setModalOptions] = useState({ open: false });
|
const [modalOptions, setModalOptions] = useState({ open: false });
|
||||||
const [shouldDisplayHonorCode, setShouldDisplayHonorCode] = useState(false);
|
const [shouldDisplayHonorCode, setShouldDisplayHonorCode] = useState(false);
|
||||||
|
const [windowTopOffset, setWindowTopOffset] = useState(null);
|
||||||
|
|
||||||
const unit = useModel('units', id);
|
const unit = useModel('units', id);
|
||||||
const course = useModel('coursewareMeta', courseId);
|
const course = useModel('coursewareMeta', courseId);
|
||||||
@@ -123,6 +124,13 @@ function Unit({
|
|||||||
} = data;
|
} = data;
|
||||||
if (type === 'plugin.resize') {
|
if (type === 'plugin.resize') {
|
||||||
setIframeHeight(payload.height);
|
setIframeHeight(payload.height);
|
||||||
|
|
||||||
|
// We observe exit from the video xblock full screen mode
|
||||||
|
// and do page scroll to the previously saved scroll position
|
||||||
|
if (windowTopOffset !== null) {
|
||||||
|
window.scrollTo(0, Number(windowTopOffset));
|
||||||
|
}
|
||||||
|
|
||||||
if (!hasLoaded && iframeHeight === 0 && payload.height > 0) {
|
if (!hasLoaded && iframeHeight === 0 && payload.height > 0) {
|
||||||
setHasLoaded(true);
|
setHasLoaded(true);
|
||||||
if (onLoaded) {
|
if (onLoaded) {
|
||||||
@@ -132,12 +140,16 @@ function Unit({
|
|||||||
} else if (type === 'plugin.modal') {
|
} else if (type === 'plugin.modal') {
|
||||||
payload.open = true;
|
payload.open = true;
|
||||||
setModalOptions(payload);
|
setModalOptions(payload);
|
||||||
|
} else if (type === 'plugin.videoFullScreen') {
|
||||||
|
// We listen for this message from LMS to know when we need to
|
||||||
|
// save or reset scroll position on toggle video xblock full screen mode.
|
||||||
|
setWindowTopOffset(payload.open ? window.scrollY : null);
|
||||||
} else if (data.offset) {
|
} else if (data.offset) {
|
||||||
// We listen for this message from LMS to know when the page needs to
|
// We listen for this message from LMS to know when the page needs to
|
||||||
// be scrolled to another location on the page.
|
// be scrolled to another location on the page.
|
||||||
window.scrollTo(0, data.offset + document.getElementById('unit-iframe').offsetTop);
|
window.scrollTo(0, data.offset + document.getElementById('unit-iframe').offsetTop);
|
||||||
}
|
}
|
||||||
}, [id, setIframeHeight, hasLoaded, iframeHeight, setHasLoaded, onLoaded]);
|
}, [id, setIframeHeight, hasLoaded, iframeHeight, setHasLoaded, onLoaded, setWindowTopOffset, windowTopOffset]);
|
||||||
useEventListener('message', receiveMessage);
|
useEventListener('message', receiveMessage);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
sendUrlHashToFrame(document.getElementById('unit-iframe'));
|
sendUrlHashToFrame(document.getElementById('unit-iframe'));
|
||||||
|
|||||||
@@ -131,6 +131,21 @@ describe('Unit', () => {
|
|||||||
expect(window.scrollY === testMessageWithOffset.offset);
|
expect(window.scrollY === testMessageWithOffset.offset);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('scrolls page on MessageEvent when receiving videoFullScreen state', async () => {
|
||||||
|
// Set message to contain video full screen data.
|
||||||
|
const defaultTopOffset = 800;
|
||||||
|
const testMessageWithOtherHeight = { ...messageEvent, payload: { height: 500 } };
|
||||||
|
const testMessageWithFullscreenState = (isOpen) => ({ type: 'plugin.videoFullScreen', payload: { open: isOpen } });
|
||||||
|
render(<Unit {...mockData} />);
|
||||||
|
Object.defineProperty(window, 'scrollY', { value: defaultTopOffset, writable: true });
|
||||||
|
window.postMessage(testMessageWithFullscreenState(true), '*');
|
||||||
|
window.postMessage(testMessageWithFullscreenState(false), '*');
|
||||||
|
window.postMessage(testMessageWithOtherHeight, '*');
|
||||||
|
|
||||||
|
await expect(waitFor(() => expect(window.scrollTo()).toHaveBeenCalledTimes(1)));
|
||||||
|
expect(window.scrollY === defaultTopOffset);
|
||||||
|
});
|
||||||
|
|
||||||
it('ignores MessageEvent with unhandled type', async () => {
|
it('ignores MessageEvent with unhandled type', async () => {
|
||||||
// Clone message and set different type.
|
// Clone message and set different type.
|
||||||
const testMessageWithUnhandledType = { ...messageEvent, type: 'wrong type' };
|
const testMessageWithUnhandledType = { ...messageEvent, type: 'wrong type' };
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const messages = defineMessages({
|
|||||||
},
|
},
|
||||||
'learn.contentLock.complete.prerequisite': {
|
'learn.contentLock.complete.prerequisite': {
|
||||||
id: 'learn.contentLock.complete.prerequisite',
|
id: 'learn.contentLock.complete.prerequisite',
|
||||||
defaultMessage: "You must complete the prerequisite: '{prereqSectionName}' to access this content.",
|
defaultMessage: "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
|
||||||
description: 'Message shown to indicate which prerequisite the student must complete prior to accessing the locked content. {prereqSectionName} is the name of the prerequisite.',
|
description: 'Message shown to indicate which prerequisite the student must complete prior to accessing the locked content. {prereqSectionName} is the name of the prerequisite.',
|
||||||
},
|
},
|
||||||
'learn.contentLock.goToSection': {
|
'learn.contentLock.goToSection': {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ function DiscussionsSidebar({ intl }) {
|
|||||||
if (!topic?.id) {
|
if (!topic?.id) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const discussionsUrl = `${getConfig().DISCUSSIONS_MFE_BASE_URL}/${courseId}/topics/${topic.id}`;
|
const discussionsUrl = `${getConfig().DISCUSSIONS_MFE_BASE_URL}/${courseId}/category/${unitId}`;
|
||||||
return (
|
return (
|
||||||
<SidebarBase
|
<SidebarBase
|
||||||
title={intl.formatMessage(messages.discussionsTitle)}
|
title={intl.formatMessage(messages.discussionsTitle)}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ describe('Discussions Trigger', () => {
|
|||||||
renderWithProvider();
|
renderWithProvider();
|
||||||
expect(screen.queryByTitle('Discussions')).toBeInTheDocument();
|
expect(screen.queryByTitle('Discussions')).toBeInTheDocument();
|
||||||
expect(screen.queryByTitle('Discussions'))
|
expect(screen.queryByTitle('Discussions'))
|
||||||
.toHaveAttribute('src', `http://localhost:2002/${courseId}/topics/topic-1?inContext`);
|
.toHaveAttribute('src', `http://localhost:2002/${courseId}/category/${unitId}?inContext`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should show nothing if unit has no discussions associated with it', async () => {
|
it('should show nothing if unit has no discussions associated with it', async () => {
|
||||||
|
|||||||
@@ -1,445 +1,447 @@
|
|||||||
{
|
{
|
||||||
"learning.accessExpiration.deadline": "قم بالترقية قبل {date} للحصول على صلاحية دخول غير محدود طالما أنه موجود على الموقع.",
|
"learning.accessExpiration.deadline": "قم بالترقية قبل {date} للاستفادة من دخول غير محدود للمساق طالما هو موجود على الموقع.",
|
||||||
"learning.accessExpiration.header": "تنتهي صلاحية حضرور الدورة كمستمع في {date}",
|
"learning.accessExpiration.header": "تنتهي صلاحية دخول المساق كمستمع في {date}",
|
||||||
"learning.accessExpiration.body": "ستفقد كل صلاحيات الدخول إلى هذا المساق، بما في ذلك مسار تقدمك في {date}.",
|
"learning.accessExpiration.body": "ستفقد كل صلاجيات الدخول إلى هذا المساق مع أي تقدم حققته. و ذلك اعتبارًا من {date}.",
|
||||||
"instructorToolbar.pageBanner.courseHasExpired": "لا يمتلك الطالب/ة صلاحية الدخول الى المقرر التعليمي, انتهت الصلاحية منذ {date}.",
|
"instructorToolbar.pageBanner.courseHasExpired": "لم يعد هذا المتعلّم مخولاً بالدخول لهذا المساق. لقد انتهت صلاحية بتاريخ {date}.",
|
||||||
"learning.accessExpiration.upgradeNow": "ترقية الآن",
|
"learning.accessExpiration.upgradeNow": "الترقية الآن",
|
||||||
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
|
"learning.activeEnterprise.alert": "{changeActiveEnterprise}.",
|
||||||
"learning.activeEnterprise.change.alert": "change enterprise now",
|
"learning.activeEnterprise.change.alert": "تغيير المؤسسة الآن",
|
||||||
"learning.outline.alert.start.short": "يبدأ المساق في غضون {timeRemaining} في {courseStartDate}.",
|
"learning.outline.alert.start.short": "يبدأ المساق في {timeRemaining} بتاريخ {courseStartDate}.",
|
||||||
"learning.outline.alert.end.long": "سينتهي المساق خلال {timeRemaining} في {courseEndDate}.",
|
"learning.outline.alert.end.long": "ينتهي المساق في {timeRemaining} في {courseEndDate}.",
|
||||||
"learning.outline.alert.end.calendar": "لا تنسى إضافة تذكير في التقويم!",
|
"learning.outline.alert.end.calendar": "لا تنسَ إضافة تذكير في التقويم!",
|
||||||
"instructorToolbar.pageBanner.courseHasNotStarted": "لا يمكن لالطالب الوصول لالمساق حتى الان. يبدأ المساق في {date}.",
|
"instructorToolbar.pageBanner.courseHasNotStarted": "لا يمكن للطالب بعدُ الدخول للمساق. يبدأ المساق في {date}.",
|
||||||
"learning.enrollment.alert": "يجب أن تكون مسجلا في المساق لمشاهدة المحتوى.",
|
"learning.enrollment.alert": "يجب أن تكون مسجلا في المساق لمشاهدة محتواه.",
|
||||||
"learning.staff.enrollment.alert": "أنت تستعرض هذا المساق كفرد من فريق طاقم المساق، ولم تلتحق بعد.",
|
"learning.staff.enrollment.alert": "أنت تستعرض هذا المساق كعضو في الطاقم، و لست مسجلا فيه.",
|
||||||
"learning.enrollment.enrollNow.Inline": "التحق الآن",
|
"learning.enrollment.enrollNow.Inline": "سجل الآن",
|
||||||
"learning.enrollment.enrollNow.Sentence": "التحق الآن",
|
"learning.enrollment.enrollNow.Sentence": "سجل الآن.",
|
||||||
"learning.enrollment.success": "تم التحاقك في هذا المساق بنجاح!",
|
"learning.enrollment.success": "تم تسجيلك في هذا المساق بنجاح!",
|
||||||
"account-activation.alert.button": "استمر الى {siteName}",
|
"account-activation.alert.button": "المواصلة إلى {siteName}",
|
||||||
"account-activation.alert.message": "تم ارسال بريد الكتروني الى {boldEmail} مع رابط لتفعيل الحساب. اذا لم تستطيع ان تجده يرجى فحص البريد في مجلد البريد المزعج او الغير مرغوب به ال (spam) \n {sendEmailTag}.",
|
"account-activation.alert.message": "تم ارسال بريد الكتروني الى {boldEmail} به رابط لتفعيل حسابك. لم تجده؟ تفقد إذًا مجلد الرسائل غير المرغوب فيها وإلا \nف{sendEmailTag}.",
|
||||||
"account-activation.resend.link": "ارسل البريد مرة اخرى ",
|
"account-activation.resend.link": "أرسل البريد مرة اخرى ",
|
||||||
"learning.logistration.alert": "للاطلاع على محتوى المساق {signIn} أو {register}.",
|
"learning.logistration.alert": "لرؤية محتوى المساق، {signIn} أو {register}.",
|
||||||
"account-activation.alert.title": "فعل حساب لكي تستطيع الدخول مرة أخرى",
|
"account-activation.alert.title": "فعّل حسابك كي تستطيع الدخول مجددًا",
|
||||||
"learn.sequence.entranceExamTextNotPassing": "للوصول إلى مواد الدورة التدريبية ، يجب أن تحصل على درجة {entranceExamMinimumScorePct}٪ أو أعلى في هذا الاختبار. نتيجتك الحالية هي {entranceExamCurrentScore}٪.",
|
"learn.sequence.entranceExamTextNotPassing": "للوصول إلى مواد المساق، يجب أن تحصل في هذا الاختبار على درجة {entranceExamMinimumScorePct}% أو أعلى. درجتك الحالية هي {entranceExamCurrentScore}%.",
|
||||||
"learn.sequence.entranceExamTextPassed": "نتيجتك هي {entranceExamCurrentScore}٪. لقد اجتزت امتحان القبول.",
|
"learn.sequence.entranceExamTextPassed": "درجتك هي {entranceExamCurrentScore}%. لقد اجتزت امتحان القبول.",
|
||||||
"learning.dates.badge.completed": "مُكتمل",
|
"learning.dates.badge.completed": "مُكتمل",
|
||||||
"learning.dates.badge.dueNext": "موعد الاستحقاق التالي",
|
"learning.dates.badge.dueNext": "الأجَل قادم",
|
||||||
"learning.dates.badge.pastDue": "مضى تاريخ الاستحقاق",
|
"learning.dates.badge.pastDue": "انقضى الأجَل",
|
||||||
"learning.dates.title": "تواريخ مهمّة",
|
"learning.dates.title": "التواريخ المهمة",
|
||||||
"learning.dates.badge.today": "اليوم",
|
"learning.dates.badge.today": "اليوم",
|
||||||
"learning.dates.badge.unreleased": "لم يتم الإصدار بعد",
|
"learning.dates.badge.unreleased": "لم يصدر بعد",
|
||||||
"learning.dates.badge.verifiedOnly": "موثق فقط",
|
"learning.dates.badge.verifiedOnly": "حصري للمعتمدين",
|
||||||
"learning.goals.unsubscribe.contact": "الاتصال بفريق الدعم",
|
"learning.goals.unsubscribe.contact": "اتصل بالدعم",
|
||||||
"learning.goals.unsubscribe.description": "لن تستقبل اشعارات على بريدك الالكتروني لتذكيرك باهدافك ل {courseTitle}.",
|
"learning.goals.unsubscribe.description": "لن يصلك مستقبلا أي تذكير بهدفك لـ {courseTitle} عبر البريد الإلكتروني.",
|
||||||
"learning.goals.unsubscribe.errorHeader": "حصل خطأ ما",
|
"learning.goals.unsubscribe.errorHeader": "حصل خطأ ما",
|
||||||
"learning.goals.unsubscribe.goToDashboard": "الذهاب إلى لوحة المعلومات",
|
"learning.goals.unsubscribe.goToDashboard": "الذهاب إلى لوحة المعلومات",
|
||||||
"learning.goals.unsubscribe.header": "قمت بالغاء اشتراكك في شعارات التذكيرية لاهداف",
|
"learning.goals.unsubscribe.header": "لقد ألغيت اشتراكك في رسائل التذكير بالهدف",
|
||||||
"learning.goals.unsubscribe.loading": "يجري الغاء الاشتراك...",
|
"learning.goals.unsubscribe.loading": "إلغاء الاشتراك جارٍ...",
|
||||||
"learning.goals.unsubscribe.errorDescription": "لم نستطع الغاء اشتراكك في اشعارات التذكيرية باهدافك على بريدك الالكتروني. رجاءا حاول مرة اخرى او {contactSupport} للمساعدة.",
|
"learning.goals.unsubscribe.errorDescription": "لم نستطع الغاء اشتراكك في رسائل التذكير بالهدف. رجاءً حاول مجددًا في وقت لاحق أو {contactSupport} للمساعدة.",
|
||||||
"learning.outline.alert.cert.earnedNotAvailable": "ينتهي هذا المساق في {courseEndDateFormatted}. تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {certificateAvailableDate}.",
|
"learning.outline.alert.cert.earnedNotAvailable": "ينتهي هذا المساق في {courseEndDateFormatted}. تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {certificateAvailableDate}.",
|
||||||
"cert.alert.earned.unavailable.header.v2": "ستتوفر حالة درجتك وشهادتك قريبًا.",
|
"cert.alert.earned.unavailable.header.v2": "ستظهر درجتك و حالة شهادتك قريبًا.",
|
||||||
"cert.alert.earned.ready.header": "ألف مبروك! شهادتك جاهزة.",
|
"cert.alert.earned.ready.header": "تهانينا! شهادتك جاهزة.",
|
||||||
"cert.alert.notPassing.header": "أنت غير مؤهل بعد للحصول على شهادة",
|
"cert.alert.notPassing.header": "لست مؤهلا بعد للحصول على شهادة",
|
||||||
"cert.alert.notPassing.button": "عرض الدرجات",
|
"cert.alert.notPassing.button": "عرض الدرجات",
|
||||||
"learning.outline.alert.end.short": "ينتهي هذا المساق في غضون {timeRemaining}في {courseEndTime}.",
|
"learning.outline.alert.end.short": "ينتهي هذا المساق في غضون {timeRemaining} في {courseEndTime}.",
|
||||||
"alert.enroll": "للوصول إلى محتوى الدورة الكاملة.",
|
"alert.enroll": "للوصول إلى كامل المساق.",
|
||||||
"learning.privateCourse.signInOrRegister": "{signIn} أو {register} ثم التحق بهذا المساق.",
|
"learning.privateCourse.signInOrRegister": "{signIn} أو {register} أولاً، ثم سجل نفسك في المساق.",
|
||||||
"learning.outline.alert.scheduled-content.heading": "المزيد من المحتوى قريبا!",
|
"learning.outline.alert.scheduled-content.heading": "مزيد من المحتوى قادم قريبا!",
|
||||||
"learning.outline.alert.scheduled-content.body": "سيتم إصدار المزيد من المحتوى في هذه الدورة التدريبية في تاريخ لاحق. ابقى على اطلاع بتحديثات البريد الإلكتروني أو تحقق في تحديثات هذه الدورة التدريبية لاحقاَ.",
|
"learning.outline.alert.scheduled-content.body": "سيصدر لهذا المساق مزيد المحتوى في تاريخ لاحق. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا من أجل التحديثات.",
|
||||||
"learning.outline.alert.scheduled-content.button": "عرض الجدول الزمني للدورة",
|
"learning.outline.alert.scheduled-content.button": "عرض مواعيد المساق",
|
||||||
"learning.outline.dates.all": "عرض جميع تواريخ المساق",
|
"learning.outline.dates.all": "عرض جميع تواريخ المساق",
|
||||||
"learning.outline.goalButton.casual.text": "يوم واحد في الأسبوع",
|
"learning.outline.goalButton.casual.text": "يوم واحد في الأسبوع",
|
||||||
"learning.outline.goalButton.screenReader.text": "غير رسمي",
|
"learning.outline.goalButton.screenReader.text": "غير رسمي",
|
||||||
"learning.outline.certificateAlt": "عينة الشهادة",
|
"learning.outline.certificateAlt": "نموذج عن الشهادة",
|
||||||
"learning.outline.collapseAll": "اغلاق الكل",
|
"learning.outline.collapseAll": "طي الكل",
|
||||||
"learning.outline.completedAssignment": "اكتمل",
|
"learning.outline.completedAssignment": "مكتمل",
|
||||||
"learning.outline.completedSection": "قسم مكتمل",
|
"learning.outline.completedSection": "قسم مكتمل",
|
||||||
"learning.outline.dates": "تواريخ مهمّة",
|
"learning.outline.dates": "التواريخ المهمة",
|
||||||
"learning.outline.editGoal": "تحرير الهدف",
|
"learning.outline.editGoal": "تعديل الهدف",
|
||||||
"learning.outline.expandAll": "توسيع الكل",
|
"learning.outline.expandAll": "تكبير الكل",
|
||||||
"learning.outline.goal": "الهدف",
|
"learning.outline.goal": "الهدف",
|
||||||
"learning.outline.goalReminderDetail": "إذا لاحظنا أنك لم تحقق هدفك تمامًا ، فسنرسل إليك تذكيرًا بالبريد الإلكتروني.",
|
"learning.outline.goalReminderDetail": "إن لاحظنا أنك لم تحقق هدفك تمامًا، فسنرسل إليك تذكيرًا بالبريد الإلكتروني.",
|
||||||
"learning.outline.goalUnsure": "لست متأكدا بعد",
|
"learning.outline.goalUnsure": "لست متأكدا بعد",
|
||||||
"learning.outline.handouts": "نشرات المساق",
|
"learning.outline.handouts": "مطبوعات المساق",
|
||||||
"learning.outline.incompleteAssignment": " بيانات غير مستكملة",
|
"learning.outline.incompleteAssignment": "غير مكتمل",
|
||||||
"learning.outline.incompleteSection": "قسم غير مكتمل",
|
"learning.outline.incompleteSection": "قسم غير مكتمل",
|
||||||
"learning.outline.goalButton.intense.text": "5 أيام في الأسبوع",
|
"learning.outline.goalButton.intense.text": "5 أيام في الأسبوع",
|
||||||
"learning.outline.goalButton.intense.title": "شديد",
|
"learning.outline.goalButton.intense.title": "شديد",
|
||||||
"learning.outline.learnMore": "اعرف المزيد",
|
"learning.outline.learnMore": "معرفة المزيد",
|
||||||
"learning.outline.altText.openSection": "فتح",
|
"learning.outline.altText.openSection": "فتح",
|
||||||
"learning.proctoringPanel.header": "تحتوي هذه الدورة على امتحانات مراقبة",
|
"learning.proctoringPanel.header": "يحتوي هذا المساق امتحانات مراقبة",
|
||||||
"learning.outline.goalButton.regular.text": "3 أيام في الأسبوع",
|
"learning.outline.goalButton.regular.text": "3 أيام في الأسبوع",
|
||||||
"learning.outline.goalButton.regular.title": "عادي",
|
"learning.outline.goalButton.regular.title": "عادي",
|
||||||
"learning.outline.resumeBlurb": "تابع من حيث توقفت",
|
"learning.outline.resumeBlurb": "استأنف من حيث توقفت",
|
||||||
"learning.outline.resume": "استئناف الدورة",
|
"learning.outline.resume": "استئناف المساق",
|
||||||
"learning.outline.setGoal": "للبدء اضبط هدفًا للمساق عن طريق تحديد الخيار أدناه والذي يعطي الوصف الأمثل لخطتك التعليمية",
|
"learning.outline.setGoal": "للبدء، اضبط هدفًا للمساق بتحديد أكثر خيار أدناه يصف خطتك التعلمية",
|
||||||
"learning.outline.setGoalReminder": "تفعيل خاصية تذكير الهدف",
|
"learning.outline.setGoalReminder": "حدد ما يذكرك بالهدف",
|
||||||
"learning.outline.goalButton.casual.title": "حدد أسلوب هدف التعلم.",
|
"learning.outline.goalButton.casual.title": "حدد أسلوبًا للهدف التعلمي.",
|
||||||
"learning.outline.setWeeklyGoal": "حدد هدف التعلم الأسبوعي",
|
"learning.outline.setWeeklyGoal": "حدد هدفًا تعلميًا أسبوعيًا",
|
||||||
"learning.outline.setWeeklyGoalDetail": "إن تحديد هدف يحفزك على إنهاء الدورة. يمكنك دائما تغييره في وقت لاحق.",
|
"learning.outline.setWeeklyGoalDetail": "إن تحديد هدف يحفزك على إنهاء المساق. سيبقى بإمكانك تغييره لاحقا.",
|
||||||
"learning.outline.start": "ابدأ المساق",
|
"learning.outline.start": "بدأ المساق",
|
||||||
"learning.outline.startBlurb": "ابدأ المساق اليوم",
|
"learning.outline.startBlurb": "ابدأ مساقك اليوم",
|
||||||
"learning.outline.tools": "أدوات المساق",
|
"learning.outline.tools": "أدوات المساق",
|
||||||
"learning.outline.upgradeButton": "ترقية ({symbol}{price})",
|
"learning.outline.upgradeButton": "ترقية ({symbol}{price})",
|
||||||
"learning.outline.upgradeTitle": "اسعَ للحصول على شهادة معتمدة",
|
"learning.outline.upgradeTitle": "اسعَ للحصول على شهادة معتمدة",
|
||||||
"learning.outline.welcomeMessage": "رسالة ترحيب",
|
"learning.outline.welcomeMessage": "الكلمة الترحيبية",
|
||||||
"learning.outline.welcomeMessageShowMoreButton": "إظهار المزيد",
|
"learning.outline.welcomeMessageShowMoreButton": "إظهار المزيد",
|
||||||
"learning.outline.welcomeMessageShowLessButton": "إظهار أقل",
|
"learning.outline.welcomeMessageShowLessButton": "إظهار القليل",
|
||||||
"learning.outline.goalWelcome": "مرحبًا بك في",
|
"learning.outline.goalWelcome": "أهلاً بك في",
|
||||||
"learning.proctoringPanel.status.notStarted": "لم تبدأ بعد",
|
"learning.proctoringPanel.status.notStarted": "لم يبدأ بعد",
|
||||||
"learning.proctoringPanel.status.started": "بدأ في تاريخ",
|
"learning.proctoringPanel.status.started": "بدأ في",
|
||||||
"learning.proctoringPanel.status.submitted": "تم الإرسال ",
|
"learning.proctoringPanel.status.submitted": "مُرسَل",
|
||||||
"learning.proctoringPanel.status.verified": "تمّ التحقّق",
|
"learning.proctoringPanel.status.verified": "معتمد",
|
||||||
"learning.proctoringPanel.status.rejected": "مرفوض",
|
"learning.proctoringPanel.status.rejected": "مرفوض",
|
||||||
"learning.proctoringPanel.status.error": "خطأ",
|
"learning.proctoringPanel.status.error": "خطأ",
|
||||||
"learning.proctoringPanel.status.otherCourseApproved": "معتمد من مساق أخرى",
|
"learning.proctoringPanel.status.otherCourseApproved": "معتمد من مساق آخر",
|
||||||
"learning.proctoringPanel.status.expiringSoon": "تنتهي قريبا",
|
"learning.proctoringPanel.status.expiringSoon": "تنتهي صلاحيته قريبا",
|
||||||
"learning.proctoringPanel.status": "حالة التهيئة الحالية:",
|
"learning.proctoringPanel.status.expired": "Expired",
|
||||||
"learning.proctoringPanel.message.notStarted": "لم تبدأ امتحان التهيئة الخاص بك.",
|
"learning.proctoringPanel.status": "وضع الامتحان التحضيري حاليا:",
|
||||||
"learning.proctoringPanel.message.started": "لقد بدأت اختبار التهيئة الخاص بك.",
|
"learning.proctoringPanel.message.notStarted": "لم تبدأ امتحانك التحضيري.",
|
||||||
"learning.proctoringPanel.message.submitted": "لقد قدمت امتحان التهيئة الخاص بك.",
|
"learning.proctoringPanel.message.started": "لقد بدأت امتحانك التحضيري.",
|
||||||
"learning.proctoringPanel.message.verified": "تمت الموافقة على امتحان التهيئة الخاص بك في هذه الدورة التدريبية.",
|
"learning.proctoringPanel.message.submitted": "لقد سلمت امتحانك التحضيري.",
|
||||||
"learning.proctoringPanel.message.rejected": "تم رفض امتحان التهيئة الخاص بك. يرجى إعادة المحاولة امتحان التهيئة.",
|
"learning.proctoringPanel.message.verified": "تم اعتماد امتحانك التحضيري في هذا المساق.",
|
||||||
"learning.proctoringPanel.message.error": "حدث خطأ أثناء امتحان التهيئة الخاص بك. يرجى إعادة المحاولة امتحان التهيئة.",
|
"learning.proctoringPanel.message.rejected": "تم رفض امتحانك التحضيري. رجاءً حاول إجراء الامتحان مجددًا.",
|
||||||
"learning.proctoringPanel.message.otherCourseApproved": "تمت الموافقة على امتحان التهيئة الخاص بك من دورة أخرى.",
|
"learning.proctoringPanel.message.error": "حدث خطأ أثناء امتحان التهيئة الخاص بك. رجاءً حاول إجراء الامتحان مجددًا.",
|
||||||
"learning.proctoringPanel.detail.otherCourseApproved": "إذا تم تغيير جهازك ، نوصيك بإكمال امتحان التهيئة لهذه الدورة التدريبية للتأكد من أن إعدادتك لا تزال نفي بمتطلبات المراقبة.",
|
"learning.proctoringPanel.message.otherCourseApproved": "تم اعتماد امتحانك التحضيري من مساق آخر.",
|
||||||
"learning.proctoringPanel.message.expiringSoon": "تمت الموافقة على ملف التعريف الخاص بك لامتحان التهيئة من دورة أخرى. ومع ذلك ، تنتهي صلاحية امتحان التهيئة الخاصة بك قريبًا. يرجى اجراء امتحان التهيئة مرة أخرى للتأكد من أنك ستتمكن من الاستمرار في إجراء الاختبارات المراقبة.",
|
"learning.proctoringPanel.detail.otherCourseApproved": "إن تغير جهازك، فإننا نصحك بإكمال الامتحان التحضيري لهذا المساق، و ذلك للتأكد من أن إعداداتك لا تزال تستوفي متطلبات المراقبة.",
|
||||||
"learning.proctoringPanel.generalInfo": "يجب عليك إكمال امتحان التهيئة قبل إجراء أي اختبار مراقب.",
|
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
|
||||||
"learning.proctoringPanel.generalInfoSubmitted": "ملفك الشخصي المقدم قيد المراجعة.",
|
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
|
||||||
"learning.proctoringPanel.generalTime": "يمكن أن تستغرق مراجعة الملف الشخصي لامتحان التهيئة على الأقل يومين عمل.",
|
"learning.proctoringPanel.generalInfo": "عليك إتمام إجراءات التحضير قبل إجراء أي امتحان مراقب.",
|
||||||
"learning.proctoringPanel.onboardingButton": "ابدأ امتحان التهيئة",
|
"learning.proctoringPanel.generalInfoSubmitted": "ملفك الشخصي المرسَل قيد المراجعة.",
|
||||||
"learning.proctoringPanel.onboardingPracticeButton": "عرض امتحان التهيئة",
|
"learning.proctoringPanel.generalTime": "قد تستغرق مراجعة الملف الشخصي للامتحان التحضيري يومي عمل على الأقل.",
|
||||||
"learning.proctoringPanel.onboardingButtonNotOpen": "يفتح امتحان التهيئة في : {releaseDate}",
|
"learning.proctoringPanel.onboardingButton": "إكمال الامتحان التحضيري",
|
||||||
"learning.proctoringPanel.reviewRequirementsButton": "مراجعة التعليمات ومتطلبات النظام",
|
"learning.proctoringPanel.onboardingPracticeButton": "عرض الامتحان التحضيري",
|
||||||
"learning.proctoringPanel.onboardingButtonPastDue": "امتحان التهيئة تجاوز تاريخ الاستحقاق",
|
"learning.proctoringPanel.onboardingButtonNotOpen": "يفتح الامتحان التحضيري في: {releaseDate}",
|
||||||
"learning.outline.sequence-due": "{description} في{assignmentDue}",
|
"learning.proctoringPanel.reviewRequirementsButton": "مراجعة التعليمات و متطلبات النظام",
|
||||||
"progress.certificateStatus.unverifiedBody": "لإنشاء شهادة ، يجب عليك إكمال عملية التحقق من الهوية. {idVerificationSupportLink}.",
|
"learning.proctoringPanel.onboardingButtonPastDue": "انقضى أجَل الامتحان التحضيري",
|
||||||
"progress.certificateStatus.downloadableBody": "اعرض إنجازاتك على لينكد ان أو على سيرتك الذاتية اليوم. يمكنك تنزيل شهادتك الآن والوصول إليها في أي وقت من لوحة التحكم والملف الشخصي.",
|
"learning.outline.sequence-due": "{description} للتسليم قبل {assignmentDue}",
|
||||||
"courseCelebration.certificateBody.notAvailable.endDate": "تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {endDate}.",
|
"progress.certificateStatus.unverifiedBody": "لتوليد شهادة، يجب عليك إكمال التحقق من هويتك. {idVerificationSupportLink}.",
|
||||||
|
"progress.certificateStatus.downloadableBody": "اعرض إنجازاتك اليوم على لينكد إن أو ضمن سيرتك الذاتية. يمكنك تحميل شهادتك الآن و الوصول إليها في أي وقت من لوحة معلوماتك و ملفك الشخصي.",
|
||||||
|
"courseCelebration.certificateBody.notAvailable.endDate": "تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {endDate}.",
|
||||||
"progress.certificateStatus.notPassingHeader": "حالة الشهادة",
|
"progress.certificateStatus.notPassingHeader": "حالة الشهادة",
|
||||||
"progress.certificateStatus.notPassingBody": "من أجل التأهل للحصول على شهادة ، يجب أن تكون حاصلاً على درجة النجاح.",
|
"progress.certificateStatus.notPassingBody": "كي تكون أهلا لنيل شهادة، يجب أن تحصل على درجة نجاح.",
|
||||||
"progress.certificateStatus.inProgressHeader": "المزيد من المحتوى قريبا!",
|
"progress.certificateStatus.inProgressHeader": "مزيد من المحتوى قادم قريبا!",
|
||||||
"progress.certificateStatus.inProgressBody": "يبدو أن هناك المزيد من المحتوى في هذه الدورة والذي سيتم إصداره في المستقبل. ابقى على اطلاع بتحديثات عن طربق البريد الإلكتروني أو تحقق مرة أخرى من صفحة الدورة لمعرفة وقت توفر المحتوى الجديد.",
|
"progress.certificateStatus.inProgressBody": "يبدو أن في هذا المساق مزيدا من المحتوى سيصدر مستقبلا. ستقبل. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا لمعرفة موعد صدور هذا المحتوى.",
|
||||||
"progress.certificateStatus.requestableHeader": "حالة الشهادة",
|
"progress.certificateStatus.requestableHeader": "حالة الشهادة",
|
||||||
"progress.certificateStatus.requestableBody": "تهانينا ، انت مؤهل للحصول على شهادة! من أجل الوصول إلى شهادتك ، اطلبها أدناه.",
|
"progress.certificateStatus.requestableBody": "تهانينا، انت مؤهل للحصول على شهادة! للوصول إلى شهادتك، اطلبها أدناه.",
|
||||||
"progress.certificateStatus.requestableButton": "طلب شهادة",
|
"progress.certificateStatus.requestableButton": "طلب الشهادة",
|
||||||
"progress.certificateStatus.unverifiedHeader": "حالة الشهادة",
|
"progress.certificateStatus.unverifiedHeader": "حالة الشهادة",
|
||||||
"progress.certificateStatus.unverifiedButton": "التحقق من الهوية",
|
"progress.certificateStatus.unverifiedButton": "التحقق من الهوية",
|
||||||
"progress.certificateStatus.courseCelebration.verificationPending": "عملية التحقق من المعرّف الخاص بك معلّقة وستتوفر شهادتك بمجرد الموافقة.",
|
"progress.certificateStatus.courseCelebration.verificationPending": "طلب التحقق من هويتك قيد الانتظار، و ستتوفر شهادتك فور الموافقة علىه.",
|
||||||
"progress.certificateStatus.downloadableHeader": "!شهادتك جاهزة",
|
"progress.certificateStatus.downloadableHeader": "شهادتك جاهزة!",
|
||||||
"progress.certificateStatus.viewableButton": "عرض شهاداتي",
|
"progress.certificateStatus.viewableButton": "عرض شهادتي",
|
||||||
"progress.certificateStatus.notAvailableHeader": "حالة الشهادة",
|
"progress.certificateStatus.notAvailableHeader": "حالة الشهادة",
|
||||||
"progress.certificateBody.notAvailable.endDate": "تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {endDate}.",
|
"progress.certificateBody.notAvailable.endDate": "تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {endDate}.",
|
||||||
"progress.certificateStatus.upgradeHeader": "احصل على شهادة.",
|
"progress.certificateStatus.upgradeHeader": "احصل على شهادة.",
|
||||||
"progress.certificateStatus.upgradeBody": "أنت في مسجل في المساق كمستمع ولست مؤهلاً للحصول على شهادة. من أجل الحصول على شهادة ، قم بترقية تسجيلك في المسافق اليوم.",
|
"progress.certificateStatus.upgradeBody": "أنت في مسجل في المساق كمستمع ولست مؤهلاً للحصول على شهادة. من أجل الحصول على شهادة، قم بترقية تسجيلك في المساق اليوم.",
|
||||||
"progress.certificateStatus.upgradeButton": "الترقية الآن",
|
"progress.certificateStatus.upgradeButton": "الترقية الآن",
|
||||||
"progress.certificateStatus.unverifiedHomeHeader.v2": "تحقق من هويتك للتأهل للحصول على شهادة.",
|
"progress.certificateStatus.unverifiedHomeHeader.v2": "تحقق من هويتك حتى تتأهل للحصول على شهادة.",
|
||||||
"progress.certificateStatus.unverifiedHomeButton": "تحقق من هويتي",
|
"progress.certificateStatus.unverifiedHomeButton": "التحقق من هويتي",
|
||||||
"progress.certificateStatus.unverifiedHomeBody": "من أجل إنشاء شهادة لهذه الدورة ، يجب عليك إكمال عملية التحقق من الهوية.",
|
"progress.certificateStatus.unverifiedHomeBody": "من أجل إنشاء شهادة لهذا المساق، يجب عليك إكمال عملية التحقق من الهوية.",
|
||||||
"progress.completion.donut.label": "مكتمل",
|
"progress.completion.donut.label": "مكتمل",
|
||||||
"progress.completion.body": "يمثل هذا مقدار محتوى الدورة الذي أكملته. لاحظ أن بعض المحتوى قد لا يكون متوفر حتى الان.",
|
"progress.completion.body": "يمثل هذا مقدار ما أكملته من محتوى المساق. لاحظ أن بعض المحتوى قد لا يكون صادرًا بعد.",
|
||||||
"progress.completion.tooltip.locked": "المحتوى الذي أكملته.",
|
"progress.completion.tooltip.locked": "المحتوى الذي أكملته.",
|
||||||
"progress.completion.header": "اكتمال الدورة",
|
"progress.completion.header": "إكمال المساق",
|
||||||
"progress.completion.tooltip": "المحتوى الذي يمكنك الوصول إليه ولم تكتمله بعد.",
|
"progress.completion.tooltip": "المحتوى المتاح لك و الذي لم تكمله بعد.",
|
||||||
"progress.completion.tooltip.complete": "المحتوى المقفل والمتاح فقط لأولئك الذين قامو بترقية تسجلهم بالمساق.",
|
"progress.completion.tooltip.complete": "المحتوى المقفل و المتاح فقط لمن يقوم بالترقية",
|
||||||
"progress.completion.donut.percentComplete": "لقد أكملت {percent}٪ من محتوى هذا المساق.",
|
"progress.completion.donut.percentComplete": "لقد أكملت {percent}% من محتوى هذا المساق.",
|
||||||
"progress.completion.donut.percentIncomplete": "لم تكمل {percent}٪ من محتوى هذا المساق, بالنسبة للمحتوى الذي يمكنك الوصول إليه.",
|
"progress.completion.donut.percentIncomplete": "لم تكمل {percent}% من محتوى هذا المساق، بالنسبة للمحتوى الذي يمكنك الوصول إليه.",
|
||||||
"progress.completion.donut.percentLocked": "{percent}٪ من المحتوى في هذه الدورة مقفول ومتاح فقط لمن قاموا بترقية تسجلهم بالمساق.",
|
"progress.completion.donut.percentLocked": "{percent}% من محتوى هذا المساق مقفل و متاح فقط لمن يقوم بالترقية.",
|
||||||
"progress.creditInformation.creditNotEligible": "لم تعد مؤهلاً للحصول على اعتماد في هذه الدورة التدريبية. اعرف المزيد عن {creditLink}.",
|
"progress.creditInformation.creditNotEligible": "لم تعد مؤهلاً للحصول على اعتماد في هذا المساق. اعرف المزيد عن {creditLink}.",
|
||||||
"progress.creditInformation.creditEligible": "لقد استوفيت متطلبات الحصول على اعتماد في هذه الدورة. انتقل إلى {dashboardLink} لشراء اعتماد الدورة. أو تعرف على المزيد حول {creditLink}.",
|
"progress.creditInformation.creditEligible": "لقد استوفيت متطلبات الحصول على اعتماد في هذا المساق. اذهب إلى {dashboardLink} لشراء اعتماد المساق، أو اعرف المزيد عن {creditLink}.",
|
||||||
"progress.creditInformation.creditPartialEligible": "أنت لم تفي بمتطلبات اعتماد المساق. اعرف المزيد عن {creditLink}.",
|
"progress.creditInformation.creditPartialEligible": "لم تستوف بعد شروط الحصول على اعتماد. اعرف المزيد عن {creditLink}.",
|
||||||
"progress.creditInformation.completed": "مُكتمل",
|
"progress.creditInformation.completed": "مُكتمل",
|
||||||
"progress.creditInformation.courseCredit": "اعتماد المساق",
|
"progress.creditInformation.courseCredit": "اعتماد المساق",
|
||||||
"progress.creditInformation.minimumGrade": "الحد الأدنى لدرجة الاعتماد ({minGrade}٪)",
|
"progress.creditInformation.minimumGrade": "أدنى درجة مؤهلة للحصول على اعتماد ({minGrade}%)",
|
||||||
"progress.creditInformation.requirementsHeader": "متطلبات الحصول على اعتماد للمساق",
|
"progress.creditInformation.requirementsHeader": "متطلبات الحصول على اعتماد المساق",
|
||||||
"progress.creditInformation.upcoming": "قريبًا",
|
"progress.creditInformation.upcoming": "قريبًا",
|
||||||
"progress.creditInformation.verificationFailed": "فشل التحقق",
|
"progress.creditInformation.verificationFailed": "فشل التحقق",
|
||||||
"progress.creditInformation.verificationSubmitted": "تم تقديم التحقق",
|
"progress.creditInformation.verificationSubmitted": "تم إرسال طلب التحقق",
|
||||||
"progress.ungradedAlert": "للتقدمك في المحتوى الذي لم يتم تقديره من المساق ، قم بعرض {outlineLink}.",
|
"progress.ungradedAlert": "لمعرفة تقدمك في محتويات المساق غير المنقّطة، اطلع على {outlineLink}ك.",
|
||||||
"progress.footnotes.droppableAssignments": "أدنى {numDroppable، plural, one {# {assignmentType} تجاهله} other {# {assignmentType} تجاهلهم} من النتائج.",
|
"progress.footnotes.droppableAssignments": "لا تٌحتسب أدنى {numDroppable, plural,\n one {درجة}\n two {درجتين}\n few {# درجات}\n many {# درجة}\n other {# درحة}\n} {assignmentType}.",
|
||||||
"progress.assignmentType": "نوع الواجب",
|
"progress.assignmentType": "نوع الواجب",
|
||||||
"progress.footnotes.backToContent": "العودة إلى المحتوى",
|
"progress.footnotes.backToContent": "العودة إلى المحتوى",
|
||||||
"progress.courseGrade.body": "يمثل هذا مكان درجتك الحالية مقابل الدرجة المطلوبة لاجتياز هذه الدورة التدريبية.",
|
"progress.courseGrade.body": "يمثل هذا درجتك الموزونة الحالية مقارنة بالدرجة المطلوبة للنجاح في هذا المساق.",
|
||||||
"progress.courseGrade.gradeBar.altText": "درجتك الحالية هي {currentGrade}٪. مطلوب الحصول على درجة {passingGrade}٪ للنجاح في هذه الدورة التدريبية.",
|
"progress.courseGrade.gradeBar.altText": "درجتك الحالية هي {currentGrade}% مطلوب الحصول على درجة موزونة تبلغ {passingGrade}% للنجاح في هذا المساق.",
|
||||||
"progress.courseGrade.footer.generic.passing": "أنت ناجح حاليًا في هذه الدورة التدريبية",
|
"progress.courseGrade.footer.generic.passing": "أنت ناجح حاليًا في هذا المساق.",
|
||||||
"progress.courseGrade.footer.nonPassing": "مطلوب درجة مرجحة تبلغ {passingGrade}٪ للنجاح في هذه الدورة",
|
"progress.courseGrade.footer.nonPassing": "مطلوب الحصول على درجة موزونة تبلغ {passingGrade}% للنجاح في هذا المساق.",
|
||||||
"progress.courseGrade.footer.passing": "أنت تنجح حاليًا في اجتياز هذه الدورة بتقدير {letterGrade} ({minGrade} - {maxGrade}٪)",
|
"progress.courseGrade.footer.passing": "أنت ناجح حاليًا في هذا المساق بتقدير {letterGrade} ({minGrade} - {maxGrade}%)",
|
||||||
"progress.courseGrade.preview.headerLocked": "ميزة مقفلة",
|
"progress.courseGrade.preview.headerLocked": "ميزة مقفلة",
|
||||||
"progress.courseGrade.preview.headerLimited": "ميزة محدودة",
|
"progress.courseGrade.preview.headerLimited": "ميزة محدودة",
|
||||||
"progress.courseGrade.preview.header.ariaHidden": "معاينة ال",
|
"progress.courseGrade.preview.header.ariaHidden": "معاينة ",
|
||||||
"progress.courseGrade.preview.body.unlockCertificate": "قم بترقية تسجيلك لعرض الدرجات والعمل للحصول على الشهادة.",
|
"progress.courseGrade.preview.body.unlockCertificate": "ارفع القيود لعرض الدرجات و العمل للحصول على شهادة.",
|
||||||
"progress.courseGrade.partialpreview.body.unlockCertificate": "قم بترقية تسجيلك للعمل من أجل الحصول على شهادة.",
|
"progress.courseGrade.partialpreview.body.unlockCertificate": "ارفع القيود من أجل العمل للحصول على شهادة.",
|
||||||
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "انقضى الموعد النهائي للترقية في هذه الدورة.",
|
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "انقضى أجَل الترقية في هذا المساق",
|
||||||
"progress.courseGrade.preview.button.upgrade": "الترقية الآن",
|
"progress.courseGrade.preview.button.upgrade": "الترقية الآن",
|
||||||
"progress.courseGrade.gradeRange.tooltip": "نطاقات الدرجات لهذه الدورة:",
|
"progress.courseGrade.gradeRange.tooltip": "مجالات الدرجات لهذا المساق:",
|
||||||
"progress.courseOutline": "مخطّط المساق",
|
"progress.courseOutline": "مخطّط مساق",
|
||||||
"progress.courseGrade.label.currentGrade": "درجتك الحالية",
|
"progress.courseGrade.label.currentGrade": "درجتك الحالية",
|
||||||
"progress.detailedGrades": "الدرجات التفصيلية",
|
"progress.detailedGrades": "الدرجات التفصيلية",
|
||||||
"progress.detailedGrades.emptyTable": "ليس لديك أي مسائل بحاجة للتقييم.",
|
"progress.detailedGrades.emptyTable": "ليست لديك حاليا أي درجات لمسائل منقّطة.",
|
||||||
"progress.footnotes.title": "ملاحظات لملخص الدرجات",
|
"progress.footnotes.title": "ملاحظات بخصوص ملخص الدرجات",
|
||||||
"progress.gradeSummary.grade": "الدرجة",
|
"progress.gradeSummary.grade": "الدرجة",
|
||||||
"progress.courseGrade.grades": "درجات",
|
"progress.courseGrade.grades": "الدرجات",
|
||||||
"progress.courseGrade.gradesAndCredit": "الدرجات والساعات المعتمدة",
|
"progress.courseGrade.gradesAndCredit": "الدرجات و الاعتماد",
|
||||||
"progress.courseGrade.gradeRange.Tooltip": "عن نطاق الدرجات",
|
"progress.courseGrade.gradeRange.Tooltip": "تلميح عن مجال الدرجة",
|
||||||
"progress.gradeSummary": "ملخص الدرجة",
|
"progress.gradeSummary": "ملخص الدرجات",
|
||||||
"progress.gradeSummary.limitedAccessExplanation": "لديك وصول محدود إلى الواجبات المقدرة كجزء من تسجيلك ( كمستمع ) في هذه الدورة التدريبية.",
|
"progress.gradeSummary.limitedAccessExplanation": "وصولك للواجبات المنقّطة محدود، لكونك مسجلا صمن مسار الاستماع في هذا المساق.",
|
||||||
"progress.gradeSummary.tooltip.alt": "عن ملخص الدرجات",
|
"progress.gradeSummary.tooltip.alt": "تلميح عن ملخص الدرجات",
|
||||||
"progress.gradeSummary.tooltip.body": "يتم تحديد وزن كل واجب من المقرر الدراسي الخاص, بك من قبل مدرسك. (حاصل الضرب ل تقيمك بواجب معين ب وزن الواجب نفسه) ينتج عن ذلك درجتك الموزنة. درجتك الموزنة هي ما يتم استخدامه لتحديد ما إذا كنت ستنجح في الدورة التدريبية.",
|
"progress.gradeSummary.tooltip.body": "أوزان الواحبات في مساقك محددة من طرف الأستاذ. يتم حساب الدرجة الموزونة بضرب درجتك في وزن ذلك الواجب. درجتك الموزنة هي ما يُستخدم لتحديد ما إن كنت ناجحًا في المساق.",
|
||||||
"progress.noAcessToAssignmentType": "ليس لديك حق الوصول إلى الواجبات من النوع {assignmentType}",
|
"progress.noAcessToAssignmentType": " لا يمكنك الوصول إلى الواجبات من نوع \"{assignmentType}\"",
|
||||||
"progress.noAcessToSubsection": "ليس لديك حق الوصول إلى جزء {displayName}",
|
"progress.noAcessToSubsection": "لا يمكنك الوصول إلى القسم الفرعي \"{displayName}\"",
|
||||||
"progress.courseGrade.label.passingGrade": "درجة النجاح",
|
"progress.courseGrade.label.passingGrade": "درجة النجاح",
|
||||||
"progress.detailedGrades.problemScore.label": "درجات الواجبات:",
|
"progress.detailedGrades.problemScore.label": "درجات المسائل:",
|
||||||
"progress.detailedGrades.problemScore.toggleButton": "اظهار التقييم لكل مسألة ب {subsectionTitle}",
|
"progress.detailedGrades.problemScore.toggleButton": "إظهار / إخفاء درجة كل مسألة في {subsectionTitle}",
|
||||||
"progress.detailedGrades.overridden": "تم تجاوز درجة القسم.",
|
"progress.detailedGrades.overridden": "تم استبدال درجة هذا القسم.",
|
||||||
"progress.score": "النتيجة",
|
"progress.score": "الدرجة",
|
||||||
"progress.weight": "القيمة",
|
"progress.weight": "الوزن",
|
||||||
"progress.weightedGrade": "درجتك الموزنة",
|
"progress.weightedGrade": "الدرجة الموزونة",
|
||||||
"progress.weightedGradeSummary": "ملخص درجتك الموزنة الحالية",
|
"progress.weightedGradeSummary": "ملخص الدرجات الموزونة الحالية",
|
||||||
"progress.header": "تقدمك",
|
"progress.header": "تقدمك",
|
||||||
"progress.header.targetUser": "التقدم في المساق لـ {username}",
|
"progress.header.targetUser": "تقدم {username} في المساق",
|
||||||
"progress.link.studio": "استعراض عملية التقييم في استوديو",
|
"progress.link.studio": "استعراض التقييم في الاستوديو",
|
||||||
"progress.relatedLinks.datesCard.description": "عرض الجدول الزمني لتواريخ المستحقة والتعيينات القادمة ل واجبات الدورة.",
|
"progress.relatedLinks.datesCard.description": "عرض لجدول زمني يتضمن الآجال و الواجبات القادمة لمساقك.",
|
||||||
"progress.relatedLinks.datesCard.link": "تواريخ الاستحقاق",
|
"progress.relatedLinks.datesCard.link": "التواريخ",
|
||||||
"progress.relatedLinks.outlineCard.description": "نظرة عامة لمحتوى دورتك.",
|
"progress.relatedLinks.outlineCard.description": "نظرة عامة لمحتوى مساقك.",
|
||||||
"progress.relatedLinks.outlineCard.link": "مخطّط المساق",
|
"progress.relatedLinks.outlineCard.link": "مخطّط المساق",
|
||||||
"progress.relatedLinks": "روابط ذات صلة",
|
"progress.relatedLinks": "روابط ذات صلة",
|
||||||
"datesBanner.suggestedSchedule": "لقد وضعنا جدولاً زمنيًا مقترحًا لمساعدتك على وضع خطة تعليم. لكن لا تقلق - فهي خطة مرنة حتى تتمكن من التعلم بالسرعة التي تناسبك.",
|
"datesBanner.suggestedSchedule": "لقد بنينا جدولا زمنيا مقترحًا لمساعدتك في البقاء على السكة. لكن لا تقلق، فهو مرن و يمكّنك من التعلّم وفق وتيرتك الخاصة.",
|
||||||
"datesBanner.upgradeToCompleteGradedBanner.header": "قم بالترقية لالغاء القفل.",
|
"datesBanner.upgradeToCompleteGradedBanner.header": "قم بالترقية لرفع القيود",
|
||||||
"datesBanner.upgradeToCompleteGradedBanner.body": "أنت ملتحق كمستمع في هذه الدورة التدريبية ، مما يعني أنك غير قادر على المشاركة في الواجبات المقدرة. لإكمال الواجبات المقدرة كجزء من هذه الدورة التدريبية ، يمكنك الترقية اليوم.",
|
"datesBanner.upgradeToCompleteGradedBanner.body": "أنت مستمع في هذا المساق، ما يعني أنك غير قادر على المشاركة في الواجبات المنقّطة. لإكمال الواجبات المنقّطة كجزء من هذا المساق، يمكنك الترقية اليوم.",
|
||||||
"datesBanner.upgradeToCompleteGradedBanner.button": "ترقية الآن",
|
"datesBanner.upgradeToCompleteGradedBanner.button": "الترقية الآن",
|
||||||
"datesBanner.upgradeToResetBanner.body": "للبقاء على المسار الصحيح، يمكن تحديث هذا الجدول وتحويل المهام السابقة المستحقة إلى مهام تاريخ استحقاقها في المستقبل. لا داعي للقلق - لن تفقد أي تقدم أحرزته عند تغيير تواريخ الاستحقاق.",
|
"datesBanner.upgradeToResetBanner.body": "للبقاء على السكة، يمكنك تحديث هذا الجدول و تغيير آجال الواجبات المنقضية إلى آجال مستقبلية. لا داعي للقلق، لن تفقد أي تقدم أحرزته عند تغيير الآجال.",
|
||||||
"datesBanner.upgradeToResetBanner.button": "قم بالترقية لتغيير التواريخ المستحقة",
|
"datesBanner.upgradeToResetBanner.button": "الترقية لتغيير الآجال",
|
||||||
"datesBanner.resetDatesBanner.header": "يبدو أنه قد فاتتك بعض المواعيد النهائية المهمة بناءً على جدولنا الزمني المقترح.",
|
"datesBanner.resetDatesBanner.header": "يبدو أنك قد تخطيت بعض الآجال المهمة حسب جدولنا الزمني المقترح.",
|
||||||
"datesBanner.resetDatesBanner.body": "للبقاء على المسار الصحيح، يمكن تحديث هذا الجدول وتحويل المهام السابقة المستحقة إلى المستقبل. لا داعي للقلق - لن تفقد أي تقدم أحرزته عند تغيير تواريخ الاستحقاق.",
|
"datesBanner.resetDatesBanner.body": "للبقاء على السكة، يمكنك تحديث هذا الجدول و تغيير آجال الواجبات المنقضية إلى آجال مستقبلية. لا داعي للقلق، لن تفقد أي تقدم أحرزته عند تغيير الآجال.",
|
||||||
"datesBanner.resetDatesBanner.button": "تغيير التواريخ المستحقة",
|
"datesBanner.resetDatesBanner.button": "تغيير الآجال",
|
||||||
"learn.navigation.course.tabs.label": "مواد المساق",
|
"learn.navigation.course.tabs.label": "مواد المساق",
|
||||||
"unit.bookmark.button.add.bookmark": "إضافة الصفحة للمفضلة",
|
"unit.bookmark.button.add.bookmark": "التأشير على هذه الصفحة",
|
||||||
"unit.bookmark.button.remove.bookmark": "تم وضع علامة مرجعية",
|
"unit.bookmark.button.remove.bookmark": "تم التأشير على الصفحة",
|
||||||
"learning.celebration.completed": "لقد أكملت للتو القسم الأول من مساقك.",
|
"learning.celebration.completed": "لقد أكملت للتو القسم الأول من مساقك.",
|
||||||
"learning.celebration.congrats": "تهانينا!",
|
"learning.celebration.congrats": "تهانينا!",
|
||||||
"learning.celebration.earned": "لقد استحققته.",
|
"learning.celebration.earned": "لقد حققته!",
|
||||||
"learning.celebration.emailSubject": "أنا في طريقي لإتمام {title} عن بعد في {platform}!",
|
"learning.celebration.emailSubject": "أنا في طريقي لإتمام {title} عن بعد في {platform}!",
|
||||||
"learning.celebration.forward": "استمر ",
|
"learning.celebration.forward": "واصل",
|
||||||
"learning.celebration.goalMet": "لقد حققت هدفك!",
|
"learning.celebration.goalMet": "لقد حققت هدفك!",
|
||||||
"learning.celebration.keepItUp": "أبقه على ما انت عليه",
|
"learning.celebration.keepItUp": "واصل على هذا المنوال",
|
||||||
"learning.celebration.share": "لحظة من فضلك للاحتفاء بك ومشاركتك فرحة تقدمك",
|
"learning.celebration.share": "خذ لحظة للاحتفاء بتقدّمك و مشاركته.",
|
||||||
"learning.celebration.social": "أنا في طريقي لإتمام {title} عن بعد في {platform}. ما الذي تقضي الوقت في تعلمه؟",
|
"learning.celebration.social": "أنا في طريقي لإتمام مساق \"{title}\" عن بعد مع {platform}. ما الذي تقضي الوقت في تعلمه؟",
|
||||||
"learning.celebration.goalCongrats": "تهانينا ، لقد حققت هدفك التعليمي وهو {nTimes} في الأسبوع.",
|
"learning.celebration.goalCongrats": "تهانينا، فقد حققت هدفك التعلّمي و هو {nTimes} أسبوعيا.",
|
||||||
"learning.celebration.setGoal": "يمكن أن يساعدك تحديد هدف {strongText} في مقررك الدراسي.",
|
"learning.celebration.setGoal": "إن تحديد هدف {strongText} قد يساعدك في مساقك.",
|
||||||
"calculator.instructions.button.label": "إرشادات الحاسبة",
|
"calculator.instructions.button.label": "إرشادات الآلة الحاسبة",
|
||||||
"calculator.instructions": "لمزيد من التفاصيل، تفضل بالاطلاع على {expressions_link}.",
|
"calculator.instructions": "لمزيد من المعلومات، اطّلع على {expressions_link}.",
|
||||||
"calculator.instructions.support.title": "مركز المساعدة",
|
"calculator.instructions.support.title": "مركز المساعدة",
|
||||||
"calculator.instructions.useful.tips": "تلميحات مفيدة:",
|
"calculator.instructions.useful.tips": "نصائح مفيدة:",
|
||||||
"calculator.hint1": "يُرجى استخدام القوسين () لإيضاح التعابير. ويمكنك استخدام قوسين داخل قوسين آخرين. ",
|
"calculator.hint1": "استخدم القوسين () لجعل التعابير واضحة. يمكنك استخدام الأقواس بعضها داخل بعض. ",
|
||||||
"calculator.hint2": "لا تستخدم مسافات في التعابير.",
|
"calculator.hint2": "لا تستخدم مسافات في التعابير.",
|
||||||
"calculator.hint3": "بالنسبة للثوابت، حدِّد عملية الضرب بوضوح (مثلًا: 5*c). ",
|
"calculator.hint3": "بالنسبة للثوابت، أبرز عملية الضرب بوضوح (مثلًا: 5*c).",
|
||||||
"calculator.hint4": "بالنسبة لللاحقات، أَدخِل الرقم والملحق من دون مسافة بينهما (مثلًا: 5c). ",
|
"calculator.hint4": "بالنسبة للواحق، اكتب الرقم فاللاحقة دون مسافة (مثلًا: 5c).",
|
||||||
"calculator.hint5": "بالنسبة للوظائف، أدخِل اسم الوظيفة، يتبعه التعبير بين قوسين. ",
|
"calculator.hint5": "بالنسبة للدوال، اكتب اسم الدالة، ثم التعبير بين قوسين.",
|
||||||
"calculator.instruction.table.to.use.heading": "للاستخدام",
|
"calculator.instruction.table.to.use.heading": "لاستخدام",
|
||||||
"calculator.instruction.table.type.heading": "النوع",
|
"calculator.instruction.table.type.heading": "النوع",
|
||||||
"calculator.instruction.table.examples.heading": "أمثلة",
|
"calculator.instruction.table.examples.heading": "أمثلة",
|
||||||
"calculator.instruction.table.to.use.numbers": "أرقام",
|
"calculator.instruction.table.to.use.numbers": "الأرقام",
|
||||||
"calculator.instruction.table.to.use.numbers.type1": "أعداد صحيحة",
|
"calculator.instruction.table.to.use.numbers.type1": "أعداد الصحيحة",
|
||||||
"calculator.instruction.table.to.use.numbers.type2": "كسور",
|
"calculator.instruction.table.to.use.numbers.type2": "كسور",
|
||||||
"calculator.instruction.table.to.use.numbers.type3": "أعداد عشرية",
|
"calculator.instruction.table.to.use.numbers.type3": "أعداد العشرية",
|
||||||
"calculator.instruction.table.to.use.operators": "المعامِلات الحسابية",
|
"calculator.instruction.table.to.use.operators": "العمليات الحسابية",
|
||||||
"calculator.instruction.table.to.use.operators.type1": "(زائد، ناقص، ضرب، قسمة)",
|
"calculator.instruction.table.to.use.operators.type1": "(جمع، طرح، ضرب و قسمة)",
|
||||||
"calculator.instruction.table.to.use.operators.type2": "(الرفع إلى قوة)",
|
"calculator.instruction.table.to.use.operators.type2": "(الرفع إلى قوة)",
|
||||||
"calculator.instruction.table.to.use.operators.type3": "(مقاومات متوازية)",
|
"calculator.instruction.table.to.use.operators.type3": "(مقاومات متوازية)",
|
||||||
"calculator.instruction.table.to.use.constants": "الثوابت ",
|
"calculator.instruction.table.to.use.constants": "الثوابت ",
|
||||||
"calculator.instruction.table.to.use.affixes": "اللاحقات",
|
"calculator.instruction.table.to.use.affixes": "اللواحق",
|
||||||
"calculator.instruction.table.to.use.affixes.type": "علامة النسبة المئوية (٪)",
|
"calculator.instruction.table.to.use.affixes.type": "علامة النسبة المئوية (%)",
|
||||||
"calculator.instruction.table.to.use.basic.functions": "الاقترانات الأساسية",
|
"calculator.instruction.table.to.use.basic.functions": "الدوال الأساسية",
|
||||||
"calculator.instruction.table.to.use.trig.functions": "الاقترانات المثلثية",
|
"calculator.instruction.table.to.use.trig.functions": "الدوال المثلثية",
|
||||||
"calculator.instruction.table.to.use.scientific.notation": "الكتابة العلميّة للأعداد",
|
"calculator.instruction.table.to.use.scientific.notation": "الكتابة العلميّة للأعداد",
|
||||||
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} والأس",
|
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} و الأس",
|
||||||
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} الترميز",
|
"calculator.instruction.table.to.use.scientific.notation.type2": "كتابة {notationSyntax}",
|
||||||
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax}والأس",
|
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} و الأس",
|
||||||
"calculator.button.label": "الآلة الحاسبة ",
|
"calculator.button.label": "الآلة الحاسبة ",
|
||||||
"calculator.input.field.label": "الإدخال في الآلة الحاسبة",
|
"calculator.input.field.label": "أدخل في الآلة الحاسبة",
|
||||||
"calculator.submit.button.label": "احسب",
|
"calculator.submit.button.label": "حساب",
|
||||||
"calculator.result.field.label": "نتيجة الحاسبة",
|
"calculator.result.field.label": "نتيجة الآلة الحاسبة",
|
||||||
"calculator.result.field.placeholder": "النتيجة",
|
"calculator.result.field.placeholder": "النتيجة",
|
||||||
"notes.button.show": "إظهار الملاحظات",
|
"notes.button.show": "إظهار الملاحظات",
|
||||||
"notes.button.hide": "إخفاء الملاحظات",
|
"notes.button.hide": "إخفاء الملاحظات",
|
||||||
"courseExit.catalogSearchSuggestion": "هل تطمح إلى تعلّم المزيد؟{searchOurCatalogLink} لاستكشاف المزيد من المساقات والبرامج.",
|
"courseExit.catalogSearchSuggestion": "هل انت متطلع للتعلّم أكثر؟ {searchOurCatalogLink} عن مزيد من المساقات والبرامج.",
|
||||||
"courseCelebration.certificateBody.available": "اعرض إنجازاتك على لينكد إن أو سيرتك الذاتية اليوم.\nيمكنك تنزيل الشهادة الآن والوصول إليها في أي وقت من\n{dashboardLink} و{profileLink}.",
|
"courseCelebration.certificateBody.available": "اعرض إنجازاتك على لينكد إن أو سيرتك الذاتية اليوم.\nيمكنك تنزيل الشهادة الآن والوصول إليها في أي وقت من\n{dashboardLink} و {profileLink}.",
|
||||||
"courseCelebration.certificateBody.notAvailable.endDate.v2": "ينتهي هذا المساق في {endDate}. تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {certAvailableDate}.",
|
"courseCelebration.certificateBody.notAvailable.endDate.v2": "ينتهي هذا المساق في {endDate}. تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {certAvailableDate}.",
|
||||||
"courseCelebration.certificateBody.unverified": "لإنشاء شهادة يجب عليك إتمام عملية التحقق من الهوية.\n{idVerificationSupportLink} الآن.",
|
"courseCelebration.certificateBody.unverified": "لتوليد شهادة، يجب عليك إتمام التحقق من الهوية.\n{idVerificationSupportLink} الآن.",
|
||||||
"courseCelebration.certificateBody.upgradable": "لم يفت الأوان للترقية. بالنسبة لـ {price} ستقوم بإلغاء تأمين الوصول إلى كافة أنواع \nالواجبات في هذا المساق. عند الانتهاء، ستحصل على شهادة تم التحقق منها وهي إحدى\nالوثائق القيّمة لتحسين فرصك الوظيفية وتطويرك المهني، أو لتسليط الضوء على\nشهادة في التطبيقات التعليمية.",
|
"courseCelebration.certificateBody.upgradable": "لم يفت الأوان بعد للترقية. مقابل {price}، سترفع القيود عن كل الواجبات المنقّطة في هذا المساق. عند الانتهاء، ستحصل على شهادة معتمدة، وهي من الوثائق القيّمة التي تنفع لتوسيع آفاقك في التوظيف و تقدمك في حياتك المهنية، أو لإبراز شهادتك في طلبات الالتحاق بالمدارس.",
|
||||||
"courseCelebration.upgradeDiscountCodePrompt": "استخدم الرمز {code} عند إتمام الطلب لخصم {percent}%!",
|
"courseCelebration.upgradeDiscountCodePrompt": "استخدم الرمز {code} عند الشراء للاستفادة من خصم {percent}%!",
|
||||||
"courseCelebration.recommendations.heading": "استمر في بناء مهاراتك مع هذه الدورات!",
|
"courseCelebration.recommendations.heading": "واصل بناء مهاراتك مع هذه المساقات!",
|
||||||
"courseCelebration.recommendations.label": "المساق",
|
"courseCelebration.recommendations.label": "المساق",
|
||||||
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
|
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {، } conjunction { {sp}و } other { }}",
|
||||||
"courseCelebration.recommendations.browse_catalog": "اكتشف المزيد من الدورات",
|
"courseCelebration.recommendations.browse_catalog": "اكتشف المزيد من المساقات",
|
||||||
"courseCelebration.recommendations.loading_recommendations": "جاري تحميل التوصيات",
|
"courseCelebration.recommendations.loading_recommendations": "تحميل المقترحات جارٍ",
|
||||||
"courseCelebration.recommendations.card.schools.label": "المؤسسات التعليمية والشركاء",
|
"courseCelebration.recommendations.card.schools.label": "المدارس و الشركاء",
|
||||||
"courseCelebration.dashboardInfo": "يمكنك الوصول إلى هذا المساق ومواده على لوحة معلوماتك {dashboardLink}.",
|
"courseCelebration.dashboardInfo": "يمكنك الوصول إلى هذا المساق و مواده من {dashboardLink}.",
|
||||||
"courseExit.programs.applyForCredit": "تقدم بطلب للحصول على ائتمان",
|
"courseExit.programs.applyForCredit": "تقدّم بطلب للحصول على اعتماد",
|
||||||
"courseCelebration.certificateHeader.downloadable": "!شهادتك جاهزة",
|
"courseCelebration.certificateHeader.downloadable": "!شهادتك جاهزة",
|
||||||
"courseCelebration.certificateHeader.notAvailable": "ستتوفر حالة درجتك وشهادتك قريبًا.",
|
"courseCelebration.certificateHeader.notAvailable": "ستتوفر حالة درجتك وشهادتك قريبًا.",
|
||||||
"courseCelebration.certificateBody.notAvailable.accessCertificate": "إذا كنت قد حصلت على درجة النجاح ، فسيتم إصدار شهادتك تلقائيًا.",
|
"courseCelebration.certificateBody.notAvailable.accessCertificate": "إن كنت قد حصلت على درجة نجاح، فإن شهادتك ستصدر تلقائيا.",
|
||||||
"courseCelebration.certificateHeader.unverified": "يجب إكمال عملية التحقق للحصول على شهادتك",
|
"courseCelebration.certificateHeader.unverified": "يجب إكمال عملية التحقق للحصول على شهادتك",
|
||||||
"courseCelebration.certificateHeader.requestable": "تهانينا، لقد تأهلت للحصول على شهادة!",
|
"courseCelebration.certificateHeader.requestable": "تهانينا، لقد تأهلت للحصول على شهادة!",
|
||||||
"courseCelebration.certificateHeader.upgradable": "قم بالترقية للحصول على شهادة معتمدة",
|
"courseCelebration.certificateHeader.upgradable": "الترقية الآن للحصول على شهادة معتمدة",
|
||||||
"courseCelebration.certificateImage": "عينة الشهادة",
|
"courseCelebration.certificateImage": "عينة الشهادة",
|
||||||
"courseCelebration.completedCourseHeader": "لقد أكملت دورتك.",
|
"courseCelebration.completedCourseHeader": "لقد أكملت مساقك.",
|
||||||
"courseCelebration.congratulationsHeader": "تهانينا!",
|
"courseCelebration.congratulationsHeader": "تهانينا!",
|
||||||
"courseCelebration.congratulationsImage": "يرفع أربعة أشخاص أيديهم احتفاءً",
|
"courseCelebration.congratulationsImage": "يرفع أربعة أشخاص أيديهم احتفاءً",
|
||||||
"courseExit.courseInProgressDescription": "يبدو أن هناك المزيد من المحتوى في هذه الدورة والذي سيتم إصداره في المستقبل. ابقى على اطلاع بتحديثات البريد الإلكتروني أو تحقق مرة أخرى من الدورة التدريبية الخاصة بك لمعرفة وقت توفر هذا المحتوى.",
|
"courseExit.courseInProgressDescription": "يبدو أن في هذا المساق مزيدا من المحتوى سيصدر مستقبلا. ستقبل. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا لمعرفة موعد صدور هذا المحتوى.",
|
||||||
"courseExit.courseInProgressHeader": "المزيد من المحتوى قريبا!",
|
"courseExit.courseInProgressHeader": "مزيد من المحتوى قادم قريبا!",
|
||||||
"courseExit.dashboardLink": "لوحة المعلومات",
|
"courseExit.dashboardLink": "لوحة المعلومات",
|
||||||
"courseExit.endOfCourseDescription": "لسوء الحظ، لست مؤهلًا الآن للحصول على شهادة. تحتاج إلى تحقيق درجة الاجتياز تؤهلك للحصول على شهادة.",
|
"courseExit.endOfCourseDescription": "مع الأسف، لست مؤهلًا حاليا للحصول على شهادة. أنت بحاجة لتحصيل درجة نجاح كي تتأهل للحصول على شهادة.",
|
||||||
"courseExit.endOfCourseHeader": "لقد أتممت المساق!",
|
"courseExit.endOfCourseHeader": "لقد أتممت المساق!",
|
||||||
"courseExit.endOfCourseTitle": "نهاية المساق",
|
"courseExit.endOfCourseTitle": "نهاية المساق",
|
||||||
"courseExit.idVerificationSupportLink": "اعرف المزيد عن عملية التحقق من الهوية",
|
"courseExit.idVerificationSupportLink": "اعرف المزيد عن عملية التحقق من الهوية",
|
||||||
"courseCelebration.linkedinAddToProfileButton": "إضافة إلى ملف شخصي على لينكد إن",
|
"courseCelebration.linkedinAddToProfileButton": "إضافة إلى ملف شخصي على لينكد إن",
|
||||||
"courseExit.programs.microBachelors.learnMore": "تعرف على المزيد حول كيفية تقديم بيانات اعتماد البكالوريوس المصغر للحصول على ائتمان.",
|
"courseExit.programs.microBachelors.learnMore": "اعرف المزيد عن كيفية طلب اعتماد مقابل مؤهل MicroBachelors الذي حصلت عليه.",
|
||||||
"courseExit.programs.microMasters.learnMore": "تعرف على المزيد حول عملية تطبيق شهادات MicroMasters على درجة الماجستير.",
|
"courseExit.programs.microMasters.learnMore": "اعرف المزيد عن عملية تطبيق شهادات MicroMasters على شهادة الماستر / الماجستير.",
|
||||||
"courseExit.programs.microMasters.mastersMessage": "إذا كنت مهتماً باستخدام شهادة MicroMasters الخاصة بك في برنامج Master، فيمكنك البدء اليوم!",
|
"courseExit.programs.microMasters.mastersMessage": "إن كنت مهتماً باستخدام شهادة MicroMasters التي حصلت عليها للتسجيل في برنامج Master، فيمكنك البدء في ذلك اليوم!",
|
||||||
"learn.sequence.navigation.complete.button": "أكمل المساق",
|
"learn.sequence.navigation.complete.button": "أكمل المساق",
|
||||||
"courseExit.nextButton.endOfCourse": "التالي (نهاية المساق)",
|
"courseExit.nextButton.endOfCourse": "التالي (نهاية المساق)",
|
||||||
"courseExit.profileLink": "الملف الشخصي",
|
"courseExit.profileLink": "الملف الشخصي",
|
||||||
"courseExit.programs.lastCourse": "لقد أتممت المساق الأخير في {title}!",
|
"courseExit.programs.lastCourse": "لقد أتممت المساق الأخير في {title}!",
|
||||||
"courseCelebration.requestCertificateBodyText": "لتصفح شهادتك ارفع الطلب أدناه.",
|
"courseCelebration.requestCertificateBodyText": "للوصول إلى شهادتك، اطلبها أدناه.",
|
||||||
"courseCelebration.requestCertificateButton": "طلب شهادة",
|
"courseCelebration.requestCertificateButton": "طلب الشهادة",
|
||||||
"courseExit.searchOurCatalogLink": "ابحث في الدليل",
|
"courseExit.searchOurCatalogLink": "ابحث في دليلنا",
|
||||||
"courseCelebration.shareMessage": "شارك نجاحك على وسائل التواصل الاجتماعي أو البريد الإلكتروني.",
|
"courseCelebration.shareMessage": "شارك نجاحك على وسائل التواصل الاجتماعي أو البريد الإلكتروني.",
|
||||||
"courseExit.social.shareCompletionMessage": "أتممت للتو {title} في {platform}!",
|
"courseExit.social.shareCompletionMessage": "لقد أتممت للتو \"{title}\" مع {platform}!",
|
||||||
"courseExit.upgradeButton": "ترقية الآن",
|
"courseExit.upgradeButton": "الترقية الآن",
|
||||||
"courseExit.upgradeLink": "الترقية الآن",
|
"courseExit.upgradeLink": "الترقية الآن",
|
||||||
"courseCelebration.verificationPending": "عملية التحقق من المعرّف الخاص بك معلّقة وستتوفر شهادتك بمجرد الموافقة.",
|
"courseCelebration.verificationPending": "عملية التحقق من هويتك في انتظار المراجعة وستتوفر شهادتك بمجرد الموافقة.",
|
||||||
"courseExit.verifiedCertificateSupportLink": "تعرف أكثر على الشهادات المعتمدة",
|
"courseExit.verifiedCertificateSupportLink": "معرفة المزيد عن الشهادات المعتمدة",
|
||||||
"courseCelebration.verifyIdentityButton": "تحقق من الهوية الآن",
|
"courseCelebration.verifyIdentityButton": "التحقق من الهوية الآن",
|
||||||
"courseCelebration.viewCertificateButton": "عرض شهاداتي",
|
"courseCelebration.viewCertificateButton": "عرض شهاداتي",
|
||||||
"courseExit.viewCourseScheduleButton": "عرض الجدول الزمني للدورة",
|
"courseExit.viewCourseScheduleButton": "عرض الجدول الزمني للمساق",
|
||||||
"courseExit.viewCoursesButton": "عرض مساقاتي الملتحق بها",
|
"courseExit.viewCoursesButton": "عرض مساقاتي",
|
||||||
"courseExit.viewGradesButton": "عرض الدرجات",
|
"courseExit.viewGradesButton": "عرض الدرجات",
|
||||||
"courseExit.programCompletion.dashboardMessage": "لعرض حالة الشهادة، تحقق من قسم البرامج في {programLink}.",
|
"courseExit.programCompletion.dashboardMessage": "لعرض حالة الشهادة، تحقق من قسم البرامج في {programLink}.",
|
||||||
"courseExit.upgradeFootnote": "يتوفر الوصول إلى هذا المساق ومواده على لوحة المعلومات حتى {expirationDate}. لزيادة فترة إتاحة الوصول، {ترقيتها Link}.",
|
"courseExit.upgradeFootnote": "سيبقى الوصول إلى هذا المساق و مواده على لوحة المعلومات ممكنا إلى غاية {expirationDate}. لتمديد فترة الوصول، قم ب{upgradeLink}.",
|
||||||
"learn.course.license.allRightsReserved.text": "جميع الحقوق محفوظة",
|
"learn.course.license.allRightsReserved.text": "جميع الحقوق محفوظة",
|
||||||
"learn.course.license.creativeCommons.terms.preamble": "محتوى مرخّص كمشاع إبداعي وفق الشروط التالية:",
|
"learn.course.license.creativeCommons.terms.preamble": "محتوى مرخّص كمشاع إبداعي وفق الشروط التالية:",
|
||||||
"learn.course.license.creativeCommons.terms.by": "الإسناد",
|
"learn.course.license.creativeCommons.terms.by": "الإسناد (Attribution)",
|
||||||
"learn.course.license.creativeCommons.terms.nc": "استخدام غير تجاري",
|
"learn.course.license.creativeCommons.terms.nc": "غير تجاري (Non-Commercial)",
|
||||||
"learn.course.license.creativeCommons.terms.nd": "عدم الاقتباس",
|
"learn.course.license.creativeCommons.terms.nd": "دون اشتقاقات (No Derivatives)",
|
||||||
"learn.course.license.creativeCommons.terms.sa": "مشاركة بالتساوي",
|
"learn.course.license.creativeCommons.terms.sa": " المشاركة بالمثل (Share Alike)",
|
||||||
"learn.course.license.creativeCommons.terms.zero": "لا توجد عناصر",
|
"learn.course.license.creativeCommons.terms.zero": "دون شروط",
|
||||||
"learn.course.license.creativeCommons.text": "بعض الحقوق محفوظة",
|
"learn.course.license.creativeCommons.text": "بعض الحقوق محفوظة",
|
||||||
"learn.breadcrumb.navigation.course.home": "المساق ",
|
"learn.breadcrumb.navigation.course.home": "المساق ",
|
||||||
"notification.tray.container": "Notification tray",
|
"notification.tray.container": "دُرج الإشعارات",
|
||||||
"notification.open.button": "إظهار علبة الإشعارات",
|
"notification.open.button": "إظهار دٌرج الإشعارات",
|
||||||
"notification.close.button": "أغلق علبة الإشعارات",
|
"notification.close.button": "إغلاق دٌرج الإشعارات",
|
||||||
"responsive.close.notification": "العودة إلى الدورة",
|
"responsive.close.notification": "العودة إلى المساق",
|
||||||
"notification.tray.title": "إشعارات",
|
"notification.tray.title": "الإشعارات",
|
||||||
"notification.tray.no.message": "ليس لديك إشعارات جديدة في هذا الوقت.",
|
"notification.tray.no.message": "ليست لديك إشعارات جديدة في الوقت الراهن.",
|
||||||
"learn.contentLock.content.locked": "محتوى مغلق",
|
"learn.contentLock.content.locked": "المحتوى مقفل",
|
||||||
"learn.contentLock.complete.prerequisite": "يجب استيفاء المتطلبات الأساسية: '{priceqSectionName}' للوصول إلى هذا المحتوى.",
|
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
|
||||||
"learn.contentLock.goToSection": "انتقل إلى قسم المتطلبات الأساسية",
|
"learn.contentLock.goToSection": "انتقل إلى القسم المتطلّب.",
|
||||||
"learn.hiddenAfterDue.gradeAvailable": "إذا كنت قد أكملت هذا الواجب ، فسيكون تقديرك متاحًا على {progressPage}.",
|
"learn.hiddenAfterDue.gradeAvailable": "إن كنت قد أكملت هذا الواجب، فإن درجتك ستظهر في {progressPage}.",
|
||||||
"learn.hiddenAfterDue.header": "انقضى الموعد النهائي لهذا الواجب.",
|
"learn.hiddenAfterDue.header": "انقضى أجَل هذا الواجب.",
|
||||||
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
|
"learn.hiddenAfterDue.description": "نظرًا لانقضاء الأجَل، فإن هذا الواجب لم يعد متاحًا.",
|
||||||
"learn.hiddenAfterDue.progressPage": "صفحة تقدمك",
|
"learn.hiddenAfterDue.progressPage": "صفحة التقدم",
|
||||||
"learn.honorCode.content": "الصدق والنزاهة الأكاديمية أمران مهمان بالنسبة إلى {siteName} والمؤسسات التي تقدم دورات وبرامج على موقع {siteName}. بالنقر فوق “أوافق“ أدناه ، أؤكد أنني قد قرأت وفهمت وسألتزم بـ {link} لموقع {siteName}.",
|
"learn.honorCode.content": "الصدق و النزاهة الأكاديمية أمران مهمان بالنسبة إلى {siteName} و المؤسسات التي تقدم المساقات و البرامج على موقع {siteName}. بالنقر على “أنا موافق“ أدناه، أؤكد أني قد قرأت و فهمت و سألتزم ب{link} في موقع {siteName}.",
|
||||||
"learn.honorCode.name": "ميثاق الشرف الأكاديمي",
|
"learn.honorCode.name": "ميثاق الشرف",
|
||||||
"learn.honorCode.cancel": "إلغاء",
|
"learn.honorCode.cancel": "إلغاء",
|
||||||
"learn.honorCode.agree": "أنا موافق",
|
"learn.honorCode.agree": "أنا موافق",
|
||||||
"learn.lockPaywall.title": "الواجبات المقدرة غير متاحة لك",
|
"learn.lockPaywall.title": "الواجبات المنقّطة مقفلة",
|
||||||
"learn.lockPaywall.content": "قم بالترقية للوصول إلى الميزات المقفلة مثل هذه الميزة وتحقيق أقصى استفادة من الدورة التدريبية الخاصة بك.",
|
"learn.lockPaywall.content": "قم بالترقية للوصول إلى الميزات المقفلة كهذه الميزة و تحقيق أقصى استفادة من مساقك.",
|
||||||
"learn.lockPaywall.content.pastExpiration": "انقضى الموعد النهائي للترقية لهذه الدورة. للترقية ، قم بالتسجيل في الجلسة التالية المتاحة.",
|
"learn.lockPaywall.content.pastExpiration": "لقد انقضى أجَل الترقية لهذا المساق.، سجل نفسك في الدورة التالية المتاحة.",
|
||||||
"learn.lockPaywall.courseDetails": "عرض تفاصيل الدورة",
|
"learn.lockPaywall.courseDetails": "عرض تفاصيل المساق",
|
||||||
"learn.lockPaywall.example.alt": "عينة الشهادة",
|
"learn.lockPaywall.example.alt": "عينة الشهادة",
|
||||||
"learn.lockPaywall.list.intro": "عندما تقوم بالترقية ، فإنك:",
|
"learn.lockPaywall.list.intro": "عندما تقوم بالترقية، فإنك:",
|
||||||
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
|
"learn.header.h2.placeholder": "قد يتم إنشاء عناوين المستوى 2 من طرف مزودي المساق مستقبلا.",
|
||||||
"learn.course.load.failure": "حدث خطأ أثناء تحميل هذا المساق.",
|
"learn.course.load.failure": "حدث خطأ أثناء تحميل هذا المساق.",
|
||||||
"learn.loading.honor.codk": "جارٍ تحميل ميثاق الشرف ...",
|
"learn.loading.honor.codk": "جارٍ تحميل نص ميثاق الشرف...",
|
||||||
"learn.loading.content.lock": "جارٍ تحميل رسائل المحتوى المغلق...",
|
"learn.loading.content.lock": "جارٍ تحميل رسالة المحتوى المغلق...",
|
||||||
"learn.loading.learning.sequence": "جارِ تحميل سلسلة التعلّم...",
|
"learn.loading.learning.sequence": "جارٍ تحميل السلسلة التعليمية...",
|
||||||
"learn.sequence.no.content": "لا يوجد محتوى هنا.",
|
"learn.sequence.no.content": "لا يوجد محتوى هنا.",
|
||||||
"learn.sequence.navigation.next.button": "التالي",
|
"learn.sequence.navigation.next.button": "التالي",
|
||||||
"learn.sequence.navigation.next.up.button": "التالي: {title}",
|
"learn.sequence.navigation.next.up.button": "التالي: {title}",
|
||||||
"learn.sequence.navigation.previous.button": "السابق",
|
"learn.sequence.navigation.previous.button": "السابق",
|
||||||
"learn.course.sequence.navigation.mobile.menu": "{current} من أصل {total}",
|
"learn.course.sequence.navigation.mobile.menu": "{current} من {total}",
|
||||||
"discussions.sidebar.title": "نقاشات",
|
"discussions.sidebar.title": "المناقشات",
|
||||||
"discussions.sidebar.open.button": "Show discussions tray",
|
"discussions.sidebar.open.button": "إظهار دٌرج المناقشات",
|
||||||
"learn.redirect.interstitial.message": "إعادة توجيه...",
|
"learn.redirect.interstitial.message": "إعادة التوجيه جارية...",
|
||||||
"learn.loading.error": "خطأ: {error}",
|
"learn.loading.error": "خطأ: {error}",
|
||||||
"learning.celebration.emailBody": "ما الذي تقضي وقتك في تعلّمه؟",
|
"learning.celebration.emailBody": "ما الذي تقضي وقتك في تعلّمه؟",
|
||||||
"learning.social.shareEmail": "شارك تقدمك عبر البريد الإلكتروني.",
|
"learning.social.shareEmail": "شارك تقدمك عبر البريد الإلكتروني.",
|
||||||
"learning.social.shareService": "شارك تقدمك على {service}.",
|
"learning.social.shareService": "شارك تقدمك على {service}.",
|
||||||
"general.altText.close": "إغلاق ",
|
"general.altText.close": "إغلاق ",
|
||||||
"learning.logistration.register": "تسجيل",
|
"learning.logistration.register": "افتح حسابًا جديدًا",
|
||||||
"learning.logistration.login": "تسجيل الدخول",
|
"learning.logistration.login": "سجل دخولك",
|
||||||
"general.signIn.sentenceCase": "تسجيل الدخول",
|
"general.signIn.sentenceCase": "تسجيل الدخول",
|
||||||
"learn.course.tabs.navigation.overflow.menu": "المزيد...",
|
"learn.course.tabs.navigation.overflow.menu": "المزيد...",
|
||||||
"learning.offer.screenReaderPrices": "السعر الأصلي: {originalPrice}, سعر الخصم: {discountedPrice}",
|
"learning.offer.screenReaderPrices": "السعر الأصلي: {originalPrice}، السعر المخفَّض: {discountedPrice}",
|
||||||
"learning.upgradeButton.screenReaderInlinePrices": "السعر الأصلي: {originalPrice}",
|
"learning.upgradeButton.screenReaderInlinePrices": "السعر الأصلي: {originalPrice}",
|
||||||
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
|
"learning.upgradeButton.buttonText": "الترقية مقابل {pricing}",
|
||||||
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
|
"learning.upgradeNowButton.buttonText": "الترقية الآن مقابل {pricing}",
|
||||||
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "بما في ذلك أي تقدم",
|
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "بما في ذلك أي تقدم",
|
||||||
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "فوائد الترقية",
|
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "فوائد الترقية",
|
||||||
"learning.generic.upgradeNotification.expirationAccessLoss": "ستفقد كل إمكانية الوصول إلى هذه الدورة التدريبية ، {includingAnyProgress} ، في {date}.",
|
"learning.generic.upgradeNotification.expirationAccessLoss": "ستفقد كل إمكانية الوصول إلى هذا المساق، {includingAnyProgress}، في {date}.",
|
||||||
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
|
"learning.generic.upgradeNotification.expirationVerifiedCert": "ترقية مساقك تتيح لك السعي للحصول شهادة معتمدة، و ترفع القيود عن العديد من الميزات. اعرف المزيد عن {benefitsOfUpgrading}.",
|
||||||
"learning.generic.upgradeNotification.pastExpiration.content": "انقضى الموعد النهائي للترقية لهذا المساق. للترقية ، قم بالتسجيل في الجلسة التالية المتاحة.",
|
"learning.generic.upgradeNotification.pastExpiration.content": "لقد انقضى أجَل الترقية لهذا المساق. للترقية، سجل نفسك في الدورة التالية المتاحة.",
|
||||||
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
|
"learning.generic.upgradeNotification.expirationDays": "{dayCount, plural, \n one {بقي يوم واحد}\n two {بقي يومان}\n few {بقيت # أيام}\n many {بقي # يومًا}\n other {بقي # يوم}\n}",
|
||||||
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
|
"learning.generic.upgradeNotification.expirationHours": "بقيت {hourCount, plural, \n one {ساعة و احدة}\n two {ساعتان}\n few {# ساعات}\n many {# ساعة}\n}",
|
||||||
"learning.generic.upgradeNotification.expirationMinutes": "أقل من 1 ساعة متبقية",
|
"learning.generic.upgradeNotification.expirationMinutes": "بقيت أقل من ساعة",
|
||||||
"learning.generic.upgradeNotification.expiration": "ستنتهي صلاحية الوصول إلى الدورة التدريبية في {date}",
|
"learning.generic.upgradeNotification.expiration": "ستنتهي صلاحية الوصول إلى المساق في {date}",
|
||||||
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
|
"learning.generic.upgradeNotification.pastExpiration.banner": "انقضى أجَل الترقية في {date}",
|
||||||
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}٪ خصم المتعلم لأول مرة",
|
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "خصم {percentage}% للمتعلم أول مرة",
|
||||||
"learning.generic.upgradeNotification.accessExpiration": "قم بترقية التحاقك بالدورة اليوم",
|
"learning.generic.upgradeNotification.accessExpiration": "قم بترقية مساقك اليوم",
|
||||||
"learning.generic.upgradeNotification.accessExpirationUrgent": "انتهاء صلاحية الوصول إلى الدورة التدريبية",
|
"learning.generic.upgradeNotification.accessExpirationUrgent": " نهاية صلاحية الوصول إلى المساق",
|
||||||
"learning.generic.upgradeNotification.accessExpirationPast": "انتهاء صلاحية الوصول إلى الدورة التدريبية",
|
"learning.generic.upgradeNotification.accessExpirationPast": "نهاية صلاحية الوصول إلى المساق",
|
||||||
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "اسعَ للحصول على شهادة معتمدة",
|
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "اسعَ للحصول على شهادة معتمدة",
|
||||||
"learning.generic.upgradeNotification.code": "استخدم الكود {code} عند الدفع",
|
"learning.generic.upgradeNotification.code": "استخدم الكود {code} عند الشراء",
|
||||||
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "شهادة تم التحقق منها",
|
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "شهادة معتمدة",
|
||||||
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
|
"learning.generic.upsell.verifiedCertBullet": "تحصل على {verifiedCertLink} لإتمام المساق لتعرضها في سيرتك الذاتية.",
|
||||||
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "الواجبات المقدرة",
|
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "الواجبات المنقّطة",
|
||||||
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
|
"learning.generic.upsell.unlockGradedBullet": "ترفع قيودك عن جميع أنشطة المساق، بما في ذلك {gradedAssignmentsInBoldText}",
|
||||||
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
|
"learning.generic.upsell.fullAccessBullet.fullAccess": "تستفيد من كل",
|
||||||
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} لمحتوى ومواد الدورة التدريبية ، حتى بعد انتهاء الدورة",
|
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} محتوى و مواد المساق، حتى بعد انتهائه",
|
||||||
"learning.generic.upsell.supportMissionBullet.mission": "mission",
|
"learning.generic.upsell.supportMissionBullet.mission": "رسالتنا",
|
||||||
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
|
"learning.generic.upsell.supportMissionBullet": "تدعم {missionInBoldText} في {siteName}",
|
||||||
"masquerade-widget.userName.error.generic": "حدث خطأ؛ يرجى المحاولة مرة أخرى.",
|
"masquerade-widget.userName.error.generic": "حدث خطأ ما. رجاءً حاول مجددًا",
|
||||||
"masquerade-widget.userName.input.placeholder": "اسم المستخدم أو البريد الإلكتروني",
|
"masquerade-widget.userName.input.placeholder": "اسم المستخدم أو البريد الإلكتروني",
|
||||||
"masquerade-widget.userName.input.label": "عرف كهذا المستخدم",
|
"masquerade-widget.userName.input.label": "تقمص دور هذا المستخدم",
|
||||||
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
|
"tours.abandonTour.launchTourCheckpoint.body": "تشعر بالضياع؟ ابدأ الجولة في أي وقت للحصول على بعض النصائح السريعة لتحقيق أقصى استفادة من التجربة.",
|
||||||
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you what’s coming up.",
|
"tours.sequenceNavigationCheckpoint.body": "يتيح لك الشريط العلوي في مساقك الانتقال بسهولة إلى أقسام مختلفة ويظهر لك ما هو قادم.",
|
||||||
"tours.existingUserTour.launchTourCheckpoint.body": "We’ve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
|
"tours.existingUserTour.launchTourCheckpoint.body": "لقد أضفنا مؤخرًا بعض الميزات الجديدة إلى تجربة المساق. هل أتريد بعض المساعدة في البحث حولك؟ قم بجولة لمعرفة المزيد.",
|
||||||
"tours.button.dismiss": "تجاهل",
|
"tours.button.dismiss": "تجاهل",
|
||||||
"tours.button.next": "التالي",
|
"tours.button.next": "التالي",
|
||||||
"tours.button.okay": "تمام",
|
"tours.button.okay": "حسنًا",
|
||||||
"tours.button.beginTour": "ابدأ الجولة",
|
"tours.button.beginTour": "بدأ الجولة",
|
||||||
"tours.button.launchTour": "انطلاق الجولة",
|
"tours.button.launchTour": "إطلاق الجولة",
|
||||||
"tours.newUserModal.body": "دعنا نأخذ جولة سريعة في {siteName} حتى تتمكن من تحقيق أقصى استفادة من الدورة التدريبية الخاصة بك.",
|
"tours.newUserModal.body": "لنذهب في جولة سريعة على {siteName} تمكنك من تحقيق أقصى استفادة من مساقك.",
|
||||||
"tours.newUserModal.title.welcome": "مرحبًا بك في",
|
"tours.newUserModal.title.welcome": "مرحبًا بك في",
|
||||||
"tours.button.skipForNow": "تخطي في الوقت الراهن",
|
"tours.button.skipForNow": "التخطي مؤقتا",
|
||||||
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
|
"tours.datesCheckpoint.body": "قد تكون التواريخ المهمة عونا لك للبقاء على السكة.",
|
||||||
"tours.datesCheckpoint.title": "Keep on top of key dates",
|
"tours.datesCheckpoint.title": "ابق مٌطّلعًا على أهم التواريخ",
|
||||||
"tours.outlineCheckpoint.body": "يمكنك استكشاف أقسام الدورة باستخدام المخطط التفصيلي أدناه.",
|
"tours.outlineCheckpoint.body": "يمكنك استكشاف أقسام المساق من خلال المخطط أدناه.",
|
||||||
"tours.outlineCheckpoint.title": "التحق في الدورة!",
|
"tours.outlineCheckpoint.title": "إبدأ المساق!",
|
||||||
"tours.tabNavigationCheckpoint.body": "يمكن استخدام علامات التبويب هذه للوصول إلى مواد الدورة التدريبية الأخرى ، مثل تقدمك والمنهج الدراسي وما إلى ذلك.",
|
"tours.tabNavigationCheckpoint.body": "يمكن استخدام هذه التبويبات للوصول إلى بقية مواد المساق الأخرى كتقدمك، و المنهاج، و غير ذلك.",
|
||||||
"tours.tabNavigationCheckpoint.title": "موارد الدورة الإضافية",
|
"tours.tabNavigationCheckpoint.title": "موارد المساق الإضافية",
|
||||||
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
|
"tours.upgradeCheckpoint.body": "اعمل للحصول على شهادة و استفد من كافة مواد المساق. قم بالترقية الآن!",
|
||||||
"tours.upgradeCheckpoint.title": "قم بترفية دورتك",
|
"tours.upgradeCheckpoint.title": "رفع القيود عن مساقك",
|
||||||
"tours.weeklyGoalsCheckpoint.body": "يؤدي تحديد خظة التعلم إلى زيادة احتمالية إتمام دورتك التدريبية.",
|
"tours.weeklyGoalsCheckpoint.body": "إن تحديد هدف يجعلك أقرب ﻹتمام المساق.",
|
||||||
"tours.weeklyGoalsCheckpoint.title": "حدد خظة التعلم",
|
"tours.weeklyGoalsCheckpoint.title": "حدد هدفًا للمساق",
|
||||||
"tours.newUserModal.title": "{welcome} دورة {siteName}!",
|
"tours.newUserModal.title": "{welcome} مساق {siteName}!",
|
||||||
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
|
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
|
||||||
"learning.effortEstimation.activities": "{activityCount, plural, zero {# أنشطة} one {# نشاط} two {# أنشطة} few {# أنشطة} many {# أنشطة} other {# أنشطة}}",
|
"learning.effortEstimation.activities": "{activityCount, plural, zero {لا أنشطة} one {نشاط واحد} two {نشاطان} few {# أنشطة} many {# نشاطًا} other {# نشاط}}",
|
||||||
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, zero {# دقيقة} one {# دقيقة} two {# دقيقة} few {# دقيقة} many {# دقيقة} other {# دقائق}}",
|
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, zero {#د} one {#د} two {#د} few {#د} many {#د} other {#د}}",
|
||||||
"learning.effortEstimation.minutesFull": "{minuteCount, plural, zero {# الدقائق} one {# اللحظة} two {# الدقائق} few {# الدقائق} many {# الدقائق} other {# دقائق}}",
|
"learning.effortEstimation.minutesFull": "{minuteCount, plural, zero {# دقيقة} one {# دقيقة واحدة} two {# دقيقتان} few {# دقائق} many {# دقيقة} other {# دقيقة}}",
|
||||||
"learning.streakCelebration.congratulations": "تهانينا!",
|
"learning.streakCelebration.congratulations": "تهانينا!",
|
||||||
"learning.streakCelebration.body": "استمر في التقدم ، أنت بوضع ممتاز!",
|
"learning.streakCelebration.body": "واصل التقدم، حافظ على حماسك!",
|
||||||
"learning.streakCelebration.button": "أبق على ما انت عليه !",
|
"learning.streakCelebration.button": "واصل على هذا المنوال",
|
||||||
"learning.streakCelebration.buttonSrOnly": "إغلاق الوسائط والمتابعة",
|
"learning.streakCelebration.buttonSrOnly": "إغلاق النافذة و المتابعة",
|
||||||
"learning.streakCelebration.buttonAA759": "أكمل المساق",
|
"learning.streakCelebration.buttonAA759": "المواصلة مع المساق",
|
||||||
"learning.streakCelebration.header": "ايام متتالية",
|
"learning.streakCelebration.header": "أيام متتالية",
|
||||||
"learning.streakCelebration.factoidABoldedSection": "تزيد احتمالية اجتيازهم الدورة التدريبية بمقدار 20 ضعفًا",
|
"learning.streakCelebration.factoidABoldedSection": "يزيد احتمال نجاحهم في مساقهم بـ 20 ضعفًا",
|
||||||
"learning.streakCelebration.factoidBBoldedSection": "أكمل بمعدل 5 أضعاف محتوى الدورة التدريبية",
|
"learning.streakCelebration.factoidBBoldedSection": "يكملون في المتوسط أكثر من 5 أضعاف محتوى المساق الذي يكمله",
|
||||||
"learning.streakCelebration.streakDiscountMessage": "لقد قمت بتفعيل خصم {percent}٪ بمكنك استخدامه عند ترقية هذه الدورة التدريبية لفترة محدودة فقط.",
|
"learning.streakCelebration.streakDiscountMessage": "لقد حصلت على خصم {percent}% لترقية هذا المساق، و هو صالح لفترة محدودة فقط.",
|
||||||
"learning.streakcelebration.factoida": "المستخدمون الذين يتعلمون {streak_length} يومًا متتاليًا {bolded_section} أكثر من أولئك الذين لا يتعلمون.",
|
"learning.streakcelebration.factoida": "إن المستخدمين الذين يتعلمون ل{streak_length, plural,\n two {يومين}\n few {# أيام}\n many {# يومًا}\n other {# يوم}\n} على التوالي {bolded_section} عن الذين لا يفعلون مثلهم.",
|
||||||
"learning.streakcelebration.factoidb": "المستخدمون الذين يتعلمون {streak_length} يومًا متتاليًا {bolded_section} مقابل أولئك الذين لا يفعلون ذلك.",
|
"learning.streakcelebration.factoidb": "إن المستخدمين الذين يتعلمون ل{streak_length, plural,\n two {يومين}\n few {# أيام}\n many {# يومًا}\n other {# يوم}\n} على التوالي {bolded_section} من لا يفعلون مثلهم.",
|
||||||
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "ينتهي في {date}.",
|
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "ينتهي في {date}.",
|
||||||
"learning.loading.failure": "حدث خطأ أثناء تحميل هذا المساق.",
|
"learning.loading.failure": "حدث خطأ ما أثناء تحميل هذا المساق.",
|
||||||
"learning.loading": "يتم الآن تحميل صفحة المساق..."
|
"learning.loading": "جارٍ تحميل صفحة المساق..."
|
||||||
}
|
}
|
||||||
@@ -94,6 +94,7 @@
|
|||||||
"learning.proctoringPanel.status.error": "Error",
|
"learning.proctoringPanel.status.error": "Error",
|
||||||
"learning.proctoringPanel.status.otherCourseApproved": "Aprobado en otro curso",
|
"learning.proctoringPanel.status.otherCourseApproved": "Aprobado en otro curso",
|
||||||
"learning.proctoringPanel.status.expiringSoon": "Expira pronto",
|
"learning.proctoringPanel.status.expiringSoon": "Expira pronto",
|
||||||
|
"learning.proctoringPanel.status.expired": "Expired",
|
||||||
"learning.proctoringPanel.status": "Estado actual de la integración:",
|
"learning.proctoringPanel.status": "Estado actual de la integración:",
|
||||||
"learning.proctoringPanel.message.notStarted": "No has comenzado tu examen de integración.",
|
"learning.proctoringPanel.message.notStarted": "No has comenzado tu examen de integración.",
|
||||||
"learning.proctoringPanel.message.started": "Has comenzado tu examen de integración.",
|
"learning.proctoringPanel.message.started": "Has comenzado tu examen de integración.",
|
||||||
@@ -103,7 +104,8 @@
|
|||||||
"learning.proctoringPanel.message.error": "Se ha producido un error durante tu examen de integración. Vuelve a intentar la integración.",
|
"learning.proctoringPanel.message.error": "Se ha producido un error durante tu examen de integración. Vuelve a intentar la integración.",
|
||||||
"learning.proctoringPanel.message.otherCourseApproved": "Tu examen de ingreso ha sido aprobado en otro curso.",
|
"learning.proctoringPanel.message.otherCourseApproved": "Tu examen de ingreso ha sido aprobado en otro curso.",
|
||||||
"learning.proctoringPanel.detail.otherCourseApproved": "Si tu dispositivo ha cambiado, te recomendamos que realices el examen de ingreso de este curso para asegurarte de que tu configuración sigue cumpliendo los requisitos para el examen supervisado.",
|
"learning.proctoringPanel.detail.otherCourseApproved": "Si tu dispositivo ha cambiado, te recomendamos que realices el examen de ingreso de este curso para asegurarte de que tu configuración sigue cumpliendo los requisitos para el examen supervisado.",
|
||||||
"learning.proctoringPanel.message.expiringSoon": "Tu perfil de ingreso ha sido aprobado en otro curso. Sin embargo, tu estado de ingreso expirará pronto. Vuelve a completar el proceso de ingreso para asegurarte de que puedas seguir realizando los exámenes supervisados.",
|
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
|
||||||
|
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
|
||||||
"learning.proctoringPanel.generalInfo": "Debes completar el proceso de integración antes de realizar cualquier examen supervisado. ",
|
"learning.proctoringPanel.generalInfo": "Debes completar el proceso de integración antes de realizar cualquier examen supervisado. ",
|
||||||
"learning.proctoringPanel.generalInfoSubmitted": "Tu perfil enviado está en revisión.",
|
"learning.proctoringPanel.generalInfoSubmitted": "Tu perfil enviado está en revisión.",
|
||||||
"learning.proctoringPanel.generalTime": "La revisión del perfil de ingreso puede tardar más de 2 días laborables.",
|
"learning.proctoringPanel.generalTime": "La revisión del perfil de ingreso puede tardar más de 2 días laborables.",
|
||||||
@@ -333,7 +335,7 @@
|
|||||||
"notification.tray.title": "Notificaciones",
|
"notification.tray.title": "Notificaciones",
|
||||||
"notification.tray.no.message": "No tienes notificaciones nuevas en este momento.",
|
"notification.tray.no.message": "No tienes notificaciones nuevas en este momento.",
|
||||||
"learn.contentLock.content.locked": "Contenido Bloqueado",
|
"learn.contentLock.content.locked": "Contenido Bloqueado",
|
||||||
"learn.contentLock.complete.prerequisite": "Debe completar el prerrequisito: '{prereqSectionName}'para acceder a este contenido.",
|
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
|
||||||
"learn.contentLock.goToSection": "Ir a la Sección de Prerrequisitos",
|
"learn.contentLock.goToSection": "Ir a la Sección de Prerrequisitos",
|
||||||
"learn.hiddenAfterDue.gradeAvailable": "Si has completado esta tarea, tu calificación estará disponible en {progressPage}.",
|
"learn.hiddenAfterDue.gradeAvailable": "Si has completado esta tarea, tu calificación estará disponible en {progressPage}.",
|
||||||
"learn.hiddenAfterDue.header": "La fecha límite para esta tarea ha pasado.",
|
"learn.hiddenAfterDue.header": "La fecha límite para esta tarea ha pasado.",
|
||||||
|
|||||||
@@ -94,6 +94,7 @@
|
|||||||
"learning.proctoringPanel.status.error": "Erreur",
|
"learning.proctoringPanel.status.error": "Erreur",
|
||||||
"learning.proctoringPanel.status.otherCourseApproved": "Approuvé dans un autre cours",
|
"learning.proctoringPanel.status.otherCourseApproved": "Approuvé dans un autre cours",
|
||||||
"learning.proctoringPanel.status.expiringSoon": "Expire bientôt",
|
"learning.proctoringPanel.status.expiringSoon": "Expire bientôt",
|
||||||
|
"learning.proctoringPanel.status.expired": "Expired",
|
||||||
"learning.proctoringPanel.status": "Statut actuel d'intégration :",
|
"learning.proctoringPanel.status": "Statut actuel d'intégration :",
|
||||||
"learning.proctoringPanel.message.notStarted": "Vous n'avez pas commencé votre examen d'intégration.",
|
"learning.proctoringPanel.message.notStarted": "Vous n'avez pas commencé votre examen d'intégration.",
|
||||||
"learning.proctoringPanel.message.started": "Vous avez commencé votre examen d'intégration.",
|
"learning.proctoringPanel.message.started": "Vous avez commencé votre examen d'intégration.",
|
||||||
@@ -103,7 +104,8 @@
|
|||||||
"learning.proctoringPanel.message.error": "Une erreur s'est produite lors de votre examen d'intégration. Veuillez réessayer l'intégration.",
|
"learning.proctoringPanel.message.error": "Une erreur s'est produite lors de votre examen d'intégration. Veuillez réessayer l'intégration.",
|
||||||
"learning.proctoringPanel.message.otherCourseApproved": "Votre examen d'intégration a été approuvé dans un autre cours.",
|
"learning.proctoringPanel.message.otherCourseApproved": "Votre examen d'intégration a été approuvé dans un autre cours.",
|
||||||
"learning.proctoringPanel.detail.otherCourseApproved": "Si votre appareil a changé, nous vous recommandons de passer l'examen d'intégration de ce cours afin de vous assurer que votre configuration répond toujours aux exigences de surveillance.",
|
"learning.proctoringPanel.detail.otherCourseApproved": "Si votre appareil a changé, nous vous recommandons de passer l'examen d'intégration de ce cours afin de vous assurer que votre configuration répond toujours aux exigences de surveillance.",
|
||||||
"learning.proctoringPanel.message.expiringSoon": "Votre profil d'intégration a été approuvé dans un autre cours. Cependant, votre statut d'intégration expire bientôt. Veuillez compléter à nouveau l'intégration afin que vous soyez en mesure de continuer à passer des examens surveillés.",
|
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
|
||||||
|
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
|
||||||
"learning.proctoringPanel.generalInfo": "Vous devez terminer le processus d'intégration avant de passer un examen surveillé.",
|
"learning.proctoringPanel.generalInfo": "Vous devez terminer le processus d'intégration avant de passer un examen surveillé.",
|
||||||
"learning.proctoringPanel.generalInfoSubmitted": "Votre profil soumis est en cours de révision.",
|
"learning.proctoringPanel.generalInfoSubmitted": "Votre profil soumis est en cours de révision.",
|
||||||
"learning.proctoringPanel.generalTime": "L'examen du profil d'intégration peut prendre plus de 2 jours ouvrables.",
|
"learning.proctoringPanel.generalTime": "L'examen du profil d'intégration peut prendre plus de 2 jours ouvrables.",
|
||||||
@@ -333,7 +335,7 @@
|
|||||||
"notification.tray.title": "Notifications",
|
"notification.tray.title": "Notifications",
|
||||||
"notification.tray.no.message": "Vous n'avez aucune nouvelle notification pour le moment.",
|
"notification.tray.no.message": "Vous n'avez aucune nouvelle notification pour le moment.",
|
||||||
"learn.contentLock.content.locked": "Contenu vérouillé",
|
"learn.contentLock.content.locked": "Contenu vérouillé",
|
||||||
"learn.contentLock.complete.prerequisite": "Vous devez compléter le prérequis: '{prereqSectionName}' pour accéder à ce contenu.",
|
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
|
||||||
"learn.contentLock.goToSection": "Aller à la section des prérequis",
|
"learn.contentLock.goToSection": "Aller à la section des prérequis",
|
||||||
"learn.hiddenAfterDue.gradeAvailable": "Si vous avez complété ce travail, votre note est disponible sur {progressPage}.",
|
"learn.hiddenAfterDue.gradeAvailable": "Si vous avez complété ce travail, votre note est disponible sur {progressPage}.",
|
||||||
"learn.hiddenAfterDue.header": "La date d'échéance de ce devoir est passée.",
|
"learn.hiddenAfterDue.header": "La date d'échéance de ce devoir est passée.",
|
||||||
|
|||||||
@@ -94,6 +94,7 @@
|
|||||||
"learning.proctoringPanel.status.error": "Error",
|
"learning.proctoringPanel.status.error": "Error",
|
||||||
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
|
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
|
||||||
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
|
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
|
||||||
|
"learning.proctoringPanel.status.expired": "Expired",
|
||||||
"learning.proctoringPanel.status": "Current Onboarding Status:",
|
"learning.proctoringPanel.status": "Current Onboarding Status:",
|
||||||
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
|
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
|
||||||
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
|
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
|
||||||
@@ -103,7 +104,8 @@
|
|||||||
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
|
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
|
||||||
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
|
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
|
||||||
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
|
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
|
||||||
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
|
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
|
||||||
|
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
|
||||||
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
|
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
|
||||||
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
|
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
|
||||||
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
|
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
|
||||||
@@ -333,7 +335,7 @@
|
|||||||
"notification.tray.title": "Notifications",
|
"notification.tray.title": "Notifications",
|
||||||
"notification.tray.no.message": "You have no new notifications at this time.",
|
"notification.tray.no.message": "You have no new notifications at this time.",
|
||||||
"learn.contentLock.content.locked": "Content Locked",
|
"learn.contentLock.content.locked": "Content Locked",
|
||||||
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: '{prereqSectionName}' to access this content.",
|
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
|
||||||
"learn.contentLock.goToSection": "Go To Prerequisite Section",
|
"learn.contentLock.goToSection": "Go To Prerequisite Section",
|
||||||
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
|
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
|
||||||
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
|
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'regenerator-runtime/runtime';
|
|||||||
import {
|
import {
|
||||||
APP_INIT_ERROR, APP_READY, subscribe, initialize,
|
APP_INIT_ERROR, APP_READY, subscribe, initialize,
|
||||||
mergeConfig,
|
mergeConfig,
|
||||||
|
getConfig,
|
||||||
} from '@edx/frontend-platform';
|
} from '@edx/frontend-platform';
|
||||||
import { AppProvider, ErrorPage, PageRoute } from '@edx/frontend-platform/react';
|
import { AppProvider, ErrorPage, PageRoute } from '@edx/frontend-platform/react';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
@@ -12,6 +13,7 @@ import { Switch } from 'react-router-dom';
|
|||||||
|
|
||||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||||
import { messages as headerMessages } from '@edx/frontend-component-header';
|
import { messages as headerMessages } from '@edx/frontend-component-header';
|
||||||
|
import { Helmet } from 'react-helmet';
|
||||||
import { fetchDiscussionTab, fetchLiveTab } from './course-home/data/thunks';
|
import { fetchDiscussionTab, fetchLiveTab } from './course-home/data/thunks';
|
||||||
import DiscussionTab from './course-home/discussion-tab/DiscussionTab';
|
import DiscussionTab from './course-home/discussion-tab/DiscussionTab';
|
||||||
|
|
||||||
@@ -39,6 +41,9 @@ import CourseAccessErrorPage from './generic/CourseAccessErrorPage';
|
|||||||
subscribe(APP_READY, () => {
|
subscribe(APP_READY, () => {
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<AppProvider store={initializeStore()}>
|
<AppProvider store={initializeStore()}>
|
||||||
|
<Helmet>
|
||||||
|
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
|
||||||
|
</Helmet>
|
||||||
<PathFixesProvider>
|
<PathFixesProvider>
|
||||||
<NoticesProvider>
|
<NoticesProvider>
|
||||||
<UserMessagesProvider>
|
<UserMessagesProvider>
|
||||||
@@ -52,7 +57,7 @@ subscribe(APP_READY, () => {
|
|||||||
</TabContainer>
|
</TabContainer>
|
||||||
</PageRoute>
|
</PageRoute>
|
||||||
<PageRoute path="/course/:courseId/live">
|
<PageRoute path="/course/:courseId/live">
|
||||||
<TabContainer tab="live" fetch={fetchLiveTab} slice="courseHome">
|
<TabContainer tab="lti_live" fetch={fetchLiveTab} slice="courseHome">
|
||||||
<LiveTab />
|
<LiveTab />
|
||||||
</TabContainer>
|
</TabContainer>
|
||||||
</PageRoute>
|
</PageRoute>
|
||||||
|
|||||||
@@ -376,6 +376,7 @@
|
|||||||
@import "course-home/progress-tab/course-completion/CompletionDonutChart.scss";
|
@import "course-home/progress-tab/course-completion/CompletionDonutChart.scss";
|
||||||
@import "course-home/progress-tab/grades/course-grade/GradeBar.scss";
|
@import "course-home/progress-tab/grades/course-grade/GradeBar.scss";
|
||||||
@import "courseware/course/course-exit/CourseRecommendations";
|
@import "courseware/course/course-exit/CourseRecommendations";
|
||||||
|
@import "product-tours/newUserCourseHomeTour/NewUserCourseHomeTourModal.scss";
|
||||||
|
|
||||||
/** [MM-P2P] Experiment */
|
/** [MM-P2P] Experiment */
|
||||||
@import "experiments/mm-p2p/index.scss";
|
@import "experiments/mm-p2p/index.scss";
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ function NewUserCourseHomeTourModal({
|
|||||||
<MarketingModal
|
<MarketingModal
|
||||||
isOpen={isOpen}
|
isOpen={isOpen}
|
||||||
title="New user course home prompt"
|
title="New user course home prompt"
|
||||||
|
className="new-user-tour-dialog"
|
||||||
heroIsDark
|
heroIsDark
|
||||||
hasCloseButton={false}
|
hasCloseButton={false}
|
||||||
heroNode={(
|
heroNode={(
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[dir="rtl"] .new-user-tour-dialog .pgn__modal-hero .pgn__modal-hero-bg {
|
||||||
|
transform: scaleX(-1);
|
||||||
|
}
|
||||||
@@ -160,8 +160,8 @@ function StreakModal({
|
|||||||
</ModalDialog.Title>
|
</ModalDialog.Title>
|
||||||
</ModalDialog.Header>
|
</ModalDialog.Header>
|
||||||
<ModalDialog.Body className="modal-body">
|
<ModalDialog.Body className="modal-body">
|
||||||
<p>{intl.formatMessage(messages.streakBody)}</p>
|
<p className="text-center">{intl.formatMessage(messages.streakBody)}</p>
|
||||||
<p className="modal-image">
|
<p className="modal-image text-center">
|
||||||
{!wideScreen && <img src={StreakMobileImage} alt="" className="img-fluid" />}
|
{!wideScreen && <img src={StreakMobileImage} alt="" className="img-fluid" />}
|
||||||
{wideScreen && <img src={StreakDesktopImage} alt="" className="img-fluid" />}
|
{wideScreen && <img src={StreakDesktopImage} alt="" className="img-fluid" />}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -26,6 +26,10 @@
|
|||||||
.modal-body {
|
.modal-body {
|
||||||
padding-top: .5rem;
|
padding-top: .5rem;
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
|
|
||||||
|
.pgn__modal-body-content {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-footer {
|
.modal-footer {
|
||||||
|
|||||||
@@ -96,8 +96,8 @@ describe('Loaded Tab Page', () => {
|
|||||||
await renderModal();
|
await renderModal();
|
||||||
|
|
||||||
const endDateText = `Ends ${new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toLocaleDateString({ timeZone: 'UTC' })}.`;
|
const endDateText = `Ends ${new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toLocaleDateString({ timeZone: 'UTC' })}.`;
|
||||||
expect(screen.getByText('You’ve unlocked a 14% off discount when you upgrade this course for a limited time only.')).toBeInTheDocument();
|
expect(screen.getByText('You’ve unlocked a 14% off discount when you upgrade this course for a limited time only.', { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByText(endDateText)).toBeInTheDocument();
|
expect(screen.getByText(endDateText, { exact: false })).toBeInTheDocument();
|
||||||
expect(screen.getByText('Continue with course')).toBeInTheDocument();
|
expect(screen.getByText('Continue with course')).toBeInTheDocument();
|
||||||
expect(screen.queryByText('Keep it up')).not.toBeInTheDocument();
|
expect(screen.queryByText('Keep it up')).not.toBeInTheDocument();
|
||||||
expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.course.streak_discount_enabled', {
|
expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.course.streak_discount_enabled', {
|
||||||
|
|||||||
Reference in New Issue
Block a user