diff --git a/README.md b/README.md index 444d01c41..d2c15039c 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,43 @@ To make the editor work in a sub-path, use: Configuration ------------- -The editor can be configured through the `editor-settings.toml` settings file. It can either be provided in the public folder when running locally or can be found under `etc/opencast/ui-config/mh_default_org/editor` when deployed in Opencast. More information can be found in the example configuration file. + +### Configuration Methods + +Most configuration options can be set either as an option in the configuration file or as a URL parameter. + +The configuration file is called `editor-settings.toml`. It can either be provided in the public folder when running locally or can be found under `etc/opencast/ui-config/mh_default_org/editor` when deployed in Opencast. More information can be found in the example configuration file. + +If a configuration option belongs to a section, URL parameters are a combination of section and option separated by a single dot. + +For example, the following option in the configuration file: + +```toml +[trackSelection] +show = true +``` + +…can be specified as URL parameter in the form `trackSelection.show=true`. + +If an option can be specified both ways, the URL parameter will always take precedence. + + +### Settings + +Options which are usually specified in the configuration file are documented in there as well. Metadata configuration options are only documented in the configuration file. + +| Option | URL | File | Description +| --------------------|-----|------|------------ +| id | ✓ | ✓ | Id of the event that the editor should open by default. +| mediaPackageId | ✓ | ✓ | Deprecated. Use `id` instead. +| opencast.url | ✗ | ✓ | URL of the opencast server to connect to. +| opencast.name | ✗ | ✓ | Opencast user to use. For demo purposes only. +| opencast.password | ✗ | ✓ | Password to use for authentication. For demo purposes only. +| metadata.show | ✓ | ✓ | Show metadata tab. +| trackSelection.show | ✓ | ✓ | Show track selection tab. +| thumbnail.show | ✓ | ✓ | Show thumbnail tab. Demo only. +| debug | ✓ | ✗ | Enable internationalization debugging. +| lng | ✓ | ✗ | Select a specific language. Use language codes like `de` or `en-US`. How to cut a release for Opencast @@ -66,6 +102,7 @@ How to cut a release for Opencast if necessary - Verify that the new release runs in Opencast, then create the pull request. + Opencast API used by the Editor ------------- @@ -82,45 +119,6 @@ Translating the Editor You can help translating the editor to your language on [crowdin.com/project/opencast-editor](https://crowdin.com/project/opencast-editor). Simply request to join the project on Crowdin and start translating. If you are interested in translating a language which is not a target language right now, please create [a GitHub issue](https://github.com/opencast/opencast-editor/issues) and we will add the language. -Configuration -------------- - -### Configuration Methods - -Most configuration options can be set either as a URL parameter or as an option in the configuration file. - -If the option belongs to a section, URL parameters are a combination of section and option separated by a single dot. - -For example, the following option in the configuration file: - -```toml -[trackSelection] -show = true -``` - -…can be specified as URL parameter in the form `trackSelection.show=true`. - -If an option can be specified both ways, the URL parameter will always take precedence. - - -### Settings - -Options which are usually specified in the configuration file are documented in there as well. Metadata configuration options are only documented in the configuration file. - -| Option | URL | File | Description -| --------------------|-----|------|------------ -| id | ✓ | ✓ | Id of the event that the editor should open by default. -| mediaPackageId | ✓ | ✓ | Deprecated. Use `id` instead. -| opencast.url | ✗ | ✓ | URL of the opencast server to connect to. -| opencast.name | ✗ | ✓ | Opencast user to use. For demo purposes only. -| opencast.password | ✗ | ✓ | Password to use for authentication. For demo purposes only. -| metadata.show | ✓ | ✓ | Show metadata tab. -| trackSelection.show | ✓ | ✓ | Show track selection tab. -| thumbnail.show | ✓ | ✓ | Show thumbnail tab. Demo only. -| debug | ✓ | ✗ | Enable internationalization debugging. -| lng | ✓ | ✗ | Select a specific language. Use language codes like `de` or `en-US`. - - Notes on Waveform Generation ---------------------------- diff --git a/package-lock.json b/package-lock.json index 690fbe9f9..b698d247c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,17 +9,17 @@ "version": "0.1.0", "dependencies": { "@emotion/babel-preset-css-prop": "^11.10.0", - "@emotion/react": "^11.11.0", + "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fontsource-variable/roboto-flex": "^5.0.3", "@iarna/toml": "^2.2.5", - "@mui/material": "^5.13.3", + "@mui/material": "^5.13.6", "@opencast/appkit": "^0.1.2", "@reduxjs/toolkit": "^1.9.5", "@testing-library/jest-dom": "^5.16.5", "@types/iarna__toml": "^2.0.2", - "@types/react": "^18.2.6", - "@types/react-dom": "^18.2.4", + "@types/react": "^18.2.14", + "@types/react-dom": "^18.2.6", "customize-cra": "^1.0.0", "deepmerge": "^4.3.1", "emotion-normalize": "^11.0.1", @@ -27,13 +27,13 @@ "eslint-plugin-react-hooks": "^4.6.0", "final-form": "^4.20.9", "i18next": "^22.5.0", - "i18next-browser-languagedetector": "^7.0.2", + "i18next-browser-languagedetector": "^7.1.0", "lodash": "^4.17.21", "luxon": "^3.3.0", "mui-rff": "^6.1.4", "react": "^18.2.0", "react-app-rewired": "^2.2.1", - "react-beforeunload": "^2.5.3", + "react-beforeunload": "^2.6.0", "react-device-detect": "^2.2.3", "react-dom": "^18.2.0", "react-draggable": "^4.4.5", @@ -43,20 +43,20 @@ "react-icons": "^4.9.0", "react-indiana-drag-scroll": "^2.2.0", "react-player": "git+https://arnei@github.com/Arnei/react-player.git#20fe6c061cf7d71d33d764b4a51c9b9bbb614bf6", - "react-redux": "^8.0.7", + "react-redux": "^8.1.1", "react-resizable": "^3.0.5", "react-scripts": "5.0.1", "react-select": "^5.7.3", - "react-virtualized-auto-sizer": "^1.0.15", + "react-virtualized-auto-sizer": "^1.0.20", "react-window": "^1.8.9", "redux": "^4.2.1", - "standardized-audio-context": "^25.3.50", + "standardized-audio-context": "^25.3.53", "typescript": "^4.9.5", "webvtt-parser": "^2.2.0" }, "devDependencies": { "@opencast/eslint-config-ts-react": "^0.1.0", - "@playwright/test": "^1.34.3", + "@playwright/test": "^1.35.1", "@types/lodash": "^4.14.195", "@types/luxon": "^3.3.0", "@types/react-beforeunload": "^2.1.1", @@ -1808,9 +1808,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", + "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -3922,15 +3922,15 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "node_modules/@mui/base": { - "version": "5.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.3.tgz", - "integrity": "sha512-ErOMoGNpgf6BF5W+jgXDiRlXJnpSeg8XSRonuY5UCCMHIlOWtKDtt/LS3qDAbFFGb7tV/y6EBddbcMeexx+zHw==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz", + "integrity": "sha512-vy3TWLQYdGNecTaufR4wDNQFV2WEg6wRPi6BVbx6q1vP3K1mbxIn1+XOqOzfYBXjFHvMx0gZAo2TgWbaqfgvAA==", "dependencies": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@emotion/is-prop-valid": "^1.2.1", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", - "@popperjs/core": "^2.11.7", + "@mui/utils": "^5.13.6", + "@popperjs/core": "^2.11.8", "clsx": "^1.2.1", "prop-types": "^15.8.1", "react-is": "^18.2.0" @@ -3959,25 +3959,25 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.13.3", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.3.tgz", - "integrity": "sha512-w4//nRIi9fiMow/MmhkForOezd8nc229EpSZZ5DzwpJNOmAXwypFTapOUVAGTUQiTJyeZXUNbQqYuUIrIs2nbg==", + "version": "5.13.4", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.4.tgz", + "integrity": "sha512-yFrMWcrlI0TqRN5jpb6Ma9iI7sGTHpytdzzL33oskFHNQ8UgrtPas33Y1K7sWAMwCrr1qbWDrOHLAQG4tAzuSw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/material": { - "version": "5.13.3", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.13.3.tgz", - "integrity": "sha512-10pek+Bz+PZ4rjUf3KTKfXWjPMUqU1nSnRPf4DAXABhsjzelGGfGW/EICgrLRrttYplTJZhoponWALezAge8ug==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-beta.3", - "@mui/core-downloads-tracker": "^5.13.3", - "@mui/system": "^5.13.2", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.13.6.tgz", + "integrity": "sha512-/c2ZApeQm2sTYdQXjqEnldaBMBcUEiyu2VRS6bS39ZeNaAcCLBQbYocLR46R+f0S5dgpBzB0T4AsOABPOFYZ5Q==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@mui/base": "5.0.0-beta.5", + "@mui/core-downloads-tracker": "^5.13.4", + "@mui/system": "^5.13.6", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", + "@mui/utils": "^5.13.6", "@types/react-transition-group": "^4.4.6", "clsx": "^1.2.1", "csstype": "^3.1.2", @@ -4074,15 +4074,15 @@ } }, "node_modules/@mui/system": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.13.2.tgz", - "integrity": "sha512-TPyWmRJPt0JPVxacZISI4o070xEJ7ftxpVtu6LWuYVOUOINlhoGOclam4iV8PDT3EMQEHuUrwU49po34UdWLlw==", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.13.6.tgz", + "integrity": "sha512-G3Xr28uLqU3DyF6r2LQkHGw/ku4P0AHzlKVe7FGXOPl7X1u+hoe2xxj8Vdiq/69II/mh9OP21i38yBWgWb7WgQ==", "dependencies": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@mui/private-theming": "^5.13.1", "@mui/styled-engine": "^5.13.2", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", + "@mui/utils": "^5.13.6", "clsx": "^1.2.1", "csstype": "^3.1.2", "prop-types": "^15.8.1" @@ -4126,11 +4126,11 @@ } }, "node_modules/@mui/utils": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.13.1.tgz", - "integrity": "sha512-6lXdWwmlUbEU2jUI8blw38Kt+3ly7xkmV9ljzY4Q20WhsJMWiNry9CX8M+TaP/HbtuyR8XKsdMgQW7h7MM3n3A==", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.13.6.tgz", + "integrity": "sha512-ggNlxl5NPSbp+kNcQLmSig6WVB0Id+4gOxhx644987v4fsji+CSXc+MFYLocFB/x4oHtzCUlSzbVHlJfP/fXoQ==", "dependencies": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@types/prop-types": "^15.7.5", "@types/react-is": "^18.2.0", "prop-types": "^15.8.1", @@ -4325,19 +4325,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.34.3", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz", - "integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==", + "version": "1.35.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.1.tgz", + "integrity": "sha512-b5YoFe6J9exsMYg0pQAobNDR85T1nLumUYgUTtKm4d21iX2L7WqKq9dW8NGJ+2vX0etZd+Y7UeuqsxDXm9+5ZA==", "dev": true, "dependencies": { "@types/node": "*", - "playwright-core": "1.34.3" + "playwright-core": "1.35.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=14" + "node": ">=16" }, "optionalDependencies": { "fsevents": "2.3.2" @@ -5132,9 +5132,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "18.2.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", - "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", + "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5151,9 +5151,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz", - "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==", + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz", + "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==", "dependencies": { "@types/react": "*" } @@ -6175,12 +6175,12 @@ } }, "node_modules/automation-events": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-6.0.3.tgz", - "integrity": "sha512-RxBkiL3EVdKcRphs/G7E142fPITrXRHOUwpOc/pWio5EY5P17MNdn5YeIvIFcmtZJ55cWHGDzuKzRlPsB7ZRkg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-6.0.6.tgz", + "integrity": "sha512-0gFiz0TCa0iLm5XBOFtXrcOmA8RB8jOFkj2IWiNnhr0LeahfGQny9ccs1+yYJBJuhKAWUu/lTsXsYELsjvuP0Q==", "dependencies": { - "@babel/runtime": "^7.22.3", - "tslib": "^2.5.2" + "@babel/runtime": "^7.22.5", + "tslib": "^2.6.0" }, "engines": { "node": ">=16.1.0" @@ -10074,9 +10074,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.2.tgz", - "integrity": "sha512-5ViaK+gikxfqZ9M3jJ7gJkUzzu/p3HwiqfLoL1bdiL7CUb0IylcTyVLdPaTU3pH5VFWFCiGFuJDg3VkLUikWgg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz", + "integrity": "sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==", "dependencies": { "@babel/runtime": "^7.19.4" } @@ -15202,15 +15202,15 @@ } }, "node_modules/playwright-core": { - "version": "1.34.3", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz", - "integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==", + "version": "1.35.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.1.tgz", + "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", "dev": true, "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/postcss": { @@ -16662,13 +16662,9 @@ } }, "node_modules/react-beforeunload": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/react-beforeunload/-/react-beforeunload-2.5.3.tgz", - "integrity": "sha512-roOH5Qja6DGwydKYDMdzw3LR/mX6CCaglGqOb/1W9VREVBDp+DlOlC+aXKru5K7aH+vxdviBpfgyX3lTutOulg==", - "dependencies": { - "prop-types": "^15.8.1", - "tiny-invariant": "^1.2.0" - }, + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-beforeunload/-/react-beforeunload-2.6.0.tgz", + "integrity": "sha512-aKrGaRNc7fZQlDnmSYrXu4cbz9QEPhScA4A2mLxhjcULDy4VILLyLhSEjg2goIw3o5LQ1zss44kmQh5LXWYGCw==", "peerDependencies": { "react": "^16.8.0 || 17 || 18" } @@ -16941,9 +16937,9 @@ } }, "node_modules/react-redux": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.7.tgz", - "integrity": "sha512-1vRQuCQI5Y2uNmrMXg81RXKiBHY3jBzvCvNmZF437O/Z9/pZ+ba2uYHbemYXb3g8rjsacBGo+/wmfrQKzMhJsg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.1.tgz", + "integrity": "sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA==", "dependencies": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", @@ -16953,7 +16949,6 @@ "use-sync-external-store": "^1.0.0" }, "peerDependencies": { - "@reduxjs/toolkit": "^1 || ^2.0.0-beta.0", "@types/react": "^16.8 || ^17.0 || ^18.0", "@types/react-dom": "^16.8 || ^17.0 || ^18.0", "react": "^16.8 || ^17.0 || ^18.0", @@ -16962,9 +16957,6 @@ "redux": "^4 || ^5.0.0-beta.0" }, "peerDependenciesMeta": { - "@reduxjs/toolkit": { - "optional": true - }, "@types/react": { "optional": true }, @@ -17134,9 +17126,9 @@ } }, "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.15.tgz", - "integrity": "sha512-01yhkssgHShMiu5W8k+86kgl8lutpl+Uef9KP4wrozXnzZjxWIgj+cH8Qi064oQpKD8myn/JNMzp4tcZNQ3Avg==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz", + "integrity": "sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==", "peerDependencies": { "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc", "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc" @@ -18100,13 +18092,13 @@ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/standardized-audio-context": { - "version": "25.3.50", - "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.50.tgz", - "integrity": "sha512-FGuX3OBOQ7qj9pjX6Fx7SbrIWxYIx02i7iWr04DBo/Gxzm2pEpZpaZ411ew6PLet7hfgbKbp5tDII2jnftRetQ==", + "version": "25.3.53", + "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.53.tgz", + "integrity": "sha512-uLtKsl/ZDPCwKqw8lzPtJXQJYp4uF4E9A2srNMj6nxmvFaZbJPx0X9pWuYcV/kMsmlIkRxBpofyDG1AdodW0fA==", "dependencies": { - "@babel/runtime": "^7.22.3", - "automation-events": "^6.0.3", - "tslib": "^2.5.2" + "@babel/runtime": "^7.22.5", + "automation-events": "^6.0.6", + "tslib": "^2.6.0" } }, "node_modules/statuses": { @@ -18674,11 +18666,6 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -18786,9 +18773,9 @@ } }, "node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -21214,9 +21201,9 @@ } }, "@babel/runtime": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", + "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", "requires": { "regenerator-runtime": "^0.13.11" } @@ -22748,15 +22735,15 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "@mui/base": { - "version": "5.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.3.tgz", - "integrity": "sha512-ErOMoGNpgf6BF5W+jgXDiRlXJnpSeg8XSRonuY5UCCMHIlOWtKDtt/LS3qDAbFFGb7tV/y6EBddbcMeexx+zHw==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz", + "integrity": "sha512-vy3TWLQYdGNecTaufR4wDNQFV2WEg6wRPi6BVbx6q1vP3K1mbxIn1+XOqOzfYBXjFHvMx0gZAo2TgWbaqfgvAA==", "requires": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@emotion/is-prop-valid": "^1.2.1", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", - "@popperjs/core": "^2.11.7", + "@mui/utils": "^5.13.6", + "@popperjs/core": "^2.11.8", "clsx": "^1.2.1", "prop-types": "^15.8.1", "react-is": "^18.2.0" @@ -22770,21 +22757,21 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.13.3", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.3.tgz", - "integrity": "sha512-w4//nRIi9fiMow/MmhkForOezd8nc229EpSZZ5DzwpJNOmAXwypFTapOUVAGTUQiTJyeZXUNbQqYuUIrIs2nbg==" + "version": "5.13.4", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.4.tgz", + "integrity": "sha512-yFrMWcrlI0TqRN5jpb6Ma9iI7sGTHpytdzzL33oskFHNQ8UgrtPas33Y1K7sWAMwCrr1qbWDrOHLAQG4tAzuSw==" }, "@mui/material": { - "version": "5.13.3", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.13.3.tgz", - "integrity": "sha512-10pek+Bz+PZ4rjUf3KTKfXWjPMUqU1nSnRPf4DAXABhsjzelGGfGW/EICgrLRrttYplTJZhoponWALezAge8ug==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-beta.3", - "@mui/core-downloads-tracker": "^5.13.3", - "@mui/system": "^5.13.2", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.13.6.tgz", + "integrity": "sha512-/c2ZApeQm2sTYdQXjqEnldaBMBcUEiyu2VRS6bS39ZeNaAcCLBQbYocLR46R+f0S5dgpBzB0T4AsOABPOFYZ5Q==", + "requires": { + "@babel/runtime": "^7.22.5", + "@mui/base": "5.0.0-beta.5", + "@mui/core-downloads-tracker": "^5.13.4", + "@mui/system": "^5.13.6", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", + "@mui/utils": "^5.13.6", "@types/react-transition-group": "^4.4.6", "clsx": "^1.2.1", "csstype": "^3.1.2", @@ -22822,15 +22809,15 @@ } }, "@mui/system": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.13.2.tgz", - "integrity": "sha512-TPyWmRJPt0JPVxacZISI4o070xEJ7ftxpVtu6LWuYVOUOINlhoGOclam4iV8PDT3EMQEHuUrwU49po34UdWLlw==", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.13.6.tgz", + "integrity": "sha512-G3Xr28uLqU3DyF6r2LQkHGw/ku4P0AHzlKVe7FGXOPl7X1u+hoe2xxj8Vdiq/69II/mh9OP21i38yBWgWb7WgQ==", "requires": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@mui/private-theming": "^5.13.1", "@mui/styled-engine": "^5.13.2", "@mui/types": "^7.2.4", - "@mui/utils": "^5.13.1", + "@mui/utils": "^5.13.6", "clsx": "^1.2.1", "csstype": "^3.1.2", "prop-types": "^15.8.1" @@ -22843,11 +22830,11 @@ "requires": {} }, "@mui/utils": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.13.1.tgz", - "integrity": "sha512-6lXdWwmlUbEU2jUI8blw38Kt+3ly7xkmV9ljzY4Q20WhsJMWiNry9CX8M+TaP/HbtuyR8XKsdMgQW7h7MM3n3A==", + "version": "5.13.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.13.6.tgz", + "integrity": "sha512-ggNlxl5NPSbp+kNcQLmSig6WVB0Id+4gOxhx644987v4fsji+CSXc+MFYLocFB/x4oHtzCUlSzbVHlJfP/fXoQ==", "requires": { - "@babel/runtime": "^7.21.0", + "@babel/runtime": "^7.22.5", "@types/prop-types": "^15.7.5", "@types/react-is": "^18.2.0", "prop-types": "^15.8.1", @@ -22962,14 +22949,14 @@ } }, "@playwright/test": { - "version": "1.34.3", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz", - "integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==", + "version": "1.35.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.1.tgz", + "integrity": "sha512-b5YoFe6J9exsMYg0pQAobNDR85T1nLumUYgUTtKm4d21iX2L7WqKq9dW8NGJ+2vX0etZd+Y7UeuqsxDXm9+5ZA==", "dev": true, "requires": { "@types/node": "*", "fsevents": "2.3.2", - "playwright-core": "1.34.3" + "playwright-core": "1.35.1" } }, "@pmmmwh/react-refresh-webpack-plugin": { @@ -23551,9 +23538,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "18.2.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", - "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", + "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -23570,9 +23557,9 @@ } }, "@types/react-dom": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz", - "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==", + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz", + "integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==", "requires": { "@types/react": "*" } @@ -24334,12 +24321,12 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "automation-events": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-6.0.3.tgz", - "integrity": "sha512-RxBkiL3EVdKcRphs/G7E142fPITrXRHOUwpOc/pWio5EY5P17MNdn5YeIvIFcmtZJ55cWHGDzuKzRlPsB7ZRkg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-6.0.6.tgz", + "integrity": "sha512-0gFiz0TCa0iLm5XBOFtXrcOmA8RB8jOFkj2IWiNnhr0LeahfGQny9ccs1+yYJBJuhKAWUu/lTsXsYELsjvuP0Q==", "requires": { - "@babel/runtime": "^7.22.3", - "tslib": "^2.5.2" + "@babel/runtime": "^7.22.5", + "tslib": "^2.6.0" } }, "autoprefixer": { @@ -27168,9 +27155,9 @@ } }, "i18next-browser-languagedetector": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.2.tgz", - "integrity": "sha512-5ViaK+gikxfqZ9M3jJ7gJkUzzu/p3HwiqfLoL1bdiL7CUb0IylcTyVLdPaTU3pH5VFWFCiGFuJDg3VkLUikWgg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz", + "integrity": "sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==", "requires": { "@babel/runtime": "^7.19.4" } @@ -30948,9 +30935,9 @@ } }, "playwright-core": { - "version": "1.34.3", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz", - "integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==", + "version": "1.35.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.1.tgz", + "integrity": "sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==", "dev": true }, "postcss": { @@ -31816,13 +31803,10 @@ } }, "react-beforeunload": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/react-beforeunload/-/react-beforeunload-2.5.3.tgz", - "integrity": "sha512-roOH5Qja6DGwydKYDMdzw3LR/mX6CCaglGqOb/1W9VREVBDp+DlOlC+aXKru5K7aH+vxdviBpfgyX3lTutOulg==", - "requires": { - "prop-types": "^15.8.1", - "tiny-invariant": "^1.2.0" - } + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-beforeunload/-/react-beforeunload-2.6.0.tgz", + "integrity": "sha512-aKrGaRNc7fZQlDnmSYrXu4cbz9QEPhScA4A2mLxhjcULDy4VILLyLhSEjg2goIw3o5LQ1zss44kmQh5LXWYGCw==", + "requires": {} }, "react-dev-utils": { "version": "12.0.1", @@ -32011,9 +31995,9 @@ } }, "react-redux": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.7.tgz", - "integrity": "sha512-1vRQuCQI5Y2uNmrMXg81RXKiBHY3jBzvCvNmZF437O/Z9/pZ+ba2uYHbemYXb3g8rjsacBGo+/wmfrQKzMhJsg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.1.tgz", + "integrity": "sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA==", "requires": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", @@ -32144,9 +32128,9 @@ } }, "react-virtualized-auto-sizer": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.15.tgz", - "integrity": "sha512-01yhkssgHShMiu5W8k+86kgl8lutpl+Uef9KP4wrozXnzZjxWIgj+cH8Qi064oQpKD8myn/JNMzp4tcZNQ3Avg==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.20.tgz", + "integrity": "sha512-OdIyHwj4S4wyhbKHOKM1wLSj/UDXm839Z3Cvfg2a9j+He6yDa6i5p0qQvEiCnyQlGO/HyfSnigQwuxvYalaAXA==", "requires": {} }, "react-window": { @@ -32864,13 +32848,13 @@ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "standardized-audio-context": { - "version": "25.3.50", - "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.50.tgz", - "integrity": "sha512-FGuX3OBOQ7qj9pjX6Fx7SbrIWxYIx02i7iWr04DBo/Gxzm2pEpZpaZ411ew6PLet7hfgbKbp5tDII2jnftRetQ==", + "version": "25.3.53", + "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.53.tgz", + "integrity": "sha512-uLtKsl/ZDPCwKqw8lzPtJXQJYp4uF4E9A2srNMj6nxmvFaZbJPx0X9pWuYcV/kMsmlIkRxBpofyDG1AdodW0fA==", "requires": { - "@babel/runtime": "^7.22.3", - "automation-events": "^6.0.3", - "tslib": "^2.5.2" + "@babel/runtime": "^7.22.5", + "automation-events": "^6.0.6", + "tslib": "^2.6.0" } }, "statuses": { @@ -33296,11 +33280,6 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, - "tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -33388,9 +33367,9 @@ } }, "tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" }, "tsutils": { "version": "3.21.0", diff --git a/package.json b/package.json index 386458b4b..fca8215f2 100644 --- a/package.json +++ b/package.json @@ -4,17 +4,17 @@ "private": true, "dependencies": { "@emotion/babel-preset-css-prop": "^11.10.0", - "@emotion/react": "^11.11.0", + "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fontsource-variable/roboto-flex": "^5.0.3", "@iarna/toml": "^2.2.5", - "@mui/material": "^5.13.3", + "@mui/material": "^5.13.6", "@opencast/appkit": "^0.1.2", "@reduxjs/toolkit": "^1.9.5", "@testing-library/jest-dom": "^5.16.5", "@types/iarna__toml": "^2.0.2", - "@types/react": "^18.2.6", - "@types/react-dom": "^18.2.4", + "@types/react": "^18.2.14", + "@types/react-dom": "^18.2.6", "customize-cra": "^1.0.0", "deepmerge": "^4.3.1", "emotion-normalize": "^11.0.1", @@ -22,13 +22,13 @@ "eslint-plugin-react-hooks": "^4.6.0", "final-form": "^4.20.9", "i18next": "^22.5.0", - "i18next-browser-languagedetector": "^7.0.2", + "i18next-browser-languagedetector": "^7.1.0", "lodash": "^4.17.21", "luxon": "^3.3.0", "mui-rff": "^6.1.4", "react": "^18.2.0", "react-app-rewired": "^2.2.1", - "react-beforeunload": "^2.5.3", + "react-beforeunload": "^2.6.0", "react-device-detect": "^2.2.3", "react-dom": "^18.2.0", "react-draggable": "^4.4.5", @@ -38,14 +38,14 @@ "react-icons": "^4.9.0", "react-indiana-drag-scroll": "^2.2.0", "react-player": "git+https://arnei@github.com/Arnei/react-player.git#20fe6c061cf7d71d33d764b4a51c9b9bbb614bf6", - "react-redux": "^8.0.7", + "react-redux": "^8.1.1", "react-resizable": "^3.0.5", "react-scripts": "5.0.1", "react-select": "^5.7.3", - "react-virtualized-auto-sizer": "^1.0.15", + "react-virtualized-auto-sizer": "^1.0.20", "react-window": "^1.8.9", "redux": "^4.2.1", - "standardized-audio-context": "^25.3.50", + "standardized-audio-context": "^25.3.53", "typescript": "^4.9.5", "webvtt-parser": "^2.2.0" }, @@ -71,7 +71,7 @@ }, "devDependencies": { "@opencast/eslint-config-ts-react": "^0.1.0", - "@playwright/test": "^1.34.3", + "@playwright/test": "^1.35.1", "@types/lodash": "^4.14.195", "@types/luxon": "^3.3.0", "@types/react-beforeunload": "^2.1.1", diff --git a/src/main/SubtitleListEditor.tsx b/src/main/SubtitleListEditor.tsx index 530fe0433..e6184db1a 100644 --- a/src/main/SubtitleListEditor.tsx +++ b/src/main/SubtitleListEditor.tsx @@ -114,7 +114,7 @@ const SubtitleListEditor : React.FC = () => { return (
- {({ height, width }) => ( + {({ height, width }: {height: string | number, width: string | number}) => (