Compare commits

...

32 Commits

Author SHA1 Message Date
Awais Ansari
5236e110dd feat: updated MFE structure and reduced re-rendering for sidebar 2023-11-16 13:13:01 +05:00
Ihor Romaniuk
48b2b9de64 fix: container indents and style imports (#600) 2023-11-14 12:07:47 +05:00
renovate[bot]
352fa0eacf chore(deps): update dependency @edx/frontend-build to v13.0.5 (#604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 14:45:32 +05:00
Mashal Malik
6930e90c78 refactor: update lock file version (#559) 2023-11-08 18:36:07 +05:00
Ihor Romaniuk
4994de9615 fix: unify font-family with paragon component styles (#598) 2023-11-08 16:43:18 +05:00
renovate[bot]
6d90da7aa2 chore(deps): update dependency @testing-library/jest-dom to v5.17.0 (#588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-08 00:04:27 +05:00
Awais Ansari
bcb43dfdff fix: resolved load more posts delay issue (#602) 2023-11-07 11:48:19 +05:00
renovate[bot]
7d7221b144 fix(deps): update dependency @edx/frontend-component-footer to v12.5.1 (#590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 18:30:33 +05:00
renovate[bot]
7cd93bd8d2 fix(deps): update dependency @edx/frontend-component-header to v4.9.1 (#594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 18:15:15 +05:00
Jenkins
6afa9840aa chore(i18n): update translations 2023-11-05 15:23:37 -05:00
renovate[bot]
46ddd6d885 chore(deps): update dependency @edx/reactifex to v1.1.0 (#580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-03 14:41:08 +05:00
renovate[bot]
5bd15655f6 chore(deps): update dependency axios-mock-adapter to v1.22.0 (#589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-03 14:27:33 +05:00
Muhammad Abdullah Waheed
27f73e3c23 feat: babel-plugin-react-intl to babel-plugin-formatjs migration (#572) 2023-11-01 12:02:57 +05:00
Mashal Malik
67700e8974 refactor: updated README file to reflect template changes (#592) 2023-10-31 17:30:05 +05:00
Sarina Canelake
1cb8ad3018 Merge pull request #591 from openedx/feanil/update_security_emails
docs: Update the security e-mail address.
2023-10-30 18:04:44 -04:00
Feanil Patel
4068b9e46a docs: Update the security e-mail address.
This repository is now managed by the Axim Collaborative and security issues
with it should be reported to security@openedx.org instead of security@edx.org

This work is being done as a part of https://github.com/openedx/wg-security/issues/16
2023-10-30 17:33:10 -04:00
Emad Rad
5db3a18cb7 fix: Persian language (#555)
* fix: corrected typos

comfirm -> confirm
varaint -> variant
Privilaged -> Privileged
courseare, coursweare  -> courseware
Discssion -> Discussion
dimentions -> dimensions

* refactor: clean up language codes
2023-10-24 14:29:09 +05:00
Feanil Patel
3a6a783f21 chore: Update to the new version of brand-openedx in the new scope. (#585)
Part of https://github.com/openedx/axim-engineering/issues/23

This updates the `@edx/brand` alias to point to the `brand-openedx` package at
the `openedx` scope. This does not impact imports because this package is used
via an alias.
2023-10-20 15:59:01 -04:00
renovate[bot]
69e0689ab9 fix(deps): update dependency @edx/frontend-platform to v4.6.3 (#566)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 16:18:23 +05:00
renovate[bot]
f795d9f836 fix(deps): update dependency tinymce to v5.10.7 (#570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 14:57:00 +05:00
renovate[bot]
68c18526fb fix(deps): update dependency classnames to v2.3.2 (#568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 18:10:40 +05:00
renovate[bot]
f49f272afa chore(deps): update dependency @edx/browserslist-config to v1.2.0 (#571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 14:06:11 +05:00
Jenkins
67212254f7 chore(i18n): update translations 2023-09-24 16:27:33 -04:00
sundasnoreen12
af5b10a575 fix: now discussion sidebar modal appears above the fold (#563)
Co-authored-by: SundasNoreen <sundas.noreen@arbisoft.com>
2023-09-15 17:25:04 +05:00
Jenkins
fb2be35d00 chore(i18n): update translations 2023-09-03 16:32:24 -04:00
Jenkins
10adf1171b chore(i18n): update translations 2023-08-27 16:27:23 -04:00
Awais Ansari
2609380bd8 fix: moved feedback widget behind the env variable (#557)
* feat: remove InformationBanner from Discussion MFE

* fix: moved feedback widget behind the env variable
2023-08-21 14:49:35 +05:00
Jenkins
61d0f9a7ea chore(i18n): update translations 2023-08-13 16:27:20 -04:00
sundasnoreen12
ea235cf6ca fix: fixed leak issue when checkpoint will be undefined (#553)
Co-authored-by: SundasNoreen <sundas.noreen@arbisoft.com>
Co-authored-by: Awais Ansari <79941147+awais-ansari@users.noreply.github.com>
2023-08-08 14:32:34 +05:00
Jenkins
b8f11c3046 chore(i18n): update translations 2023-08-06 16:32:19 -04:00
Jenkins
1769692d22 chore(i18n): update translations 2023-07-30 16:27:15 -04:00
Awais Ansari
3d6b71c247 fix: learning header constant height (#551) 2023-07-26 14:42:07 +05:00
98 changed files with 5956 additions and 4679 deletions

5
.env
View File

@@ -20,6 +20,5 @@ SEGMENT_KEY=''
SITE_NAME='' SITE_NAME=''
USER_INFO_COOKIE_NAME='' USER_INFO_COOKIE_NAME=''
SUPPORT_URL='' SUPPORT_URL=''
TA_FEEDBACK_FORM= '' LEARNER_FEEDBACK_URL=''
STAFF_FEEDBACK_FORM= '' STAFF_FEEDBACK_URL=''
DISPLAY_FEEDBACK_BANNER='false'

View File

@@ -21,6 +21,5 @@ SEGMENT_KEY=''
SITE_NAME=localhost SITE_NAME=localhost
USER_INFO_COOKIE_NAME='edx-user-info' USER_INFO_COOKIE_NAME='edx-user-info'
SUPPORT_URL='https://support.edx.org' SUPPORT_URL='https://support.edx.org'
TA_FEEDBACK_FORM='https://learner-form.test' LEARNER_FEEDBACK_URL=''
STAFF_FEEDBACK_FORM='https://staff-form.test' STAFF_FEEDBACK_URL=''
DISPLAY_FEEDBACK_BANNER='false'

View File

@@ -19,6 +19,5 @@ SEGMENT_KEY=''
SITE_NAME='localhost' SITE_NAME='localhost'
USER_INFO_COOKIE_NAME='edx-user-info' USER_INFO_COOKIE_NAME='edx-user-info'
SUPPORT_URL='https://support.edx.org' SUPPORT_URL='https://support.edx.org'
TA_FEEDBACK_FORM='https://learner-form.test' LEARNER_FEEDBACK_URL=''
STAFF_FEEDBACK_FORM='https://staff-form.test' STAFF_FEEDBACK_URL=''
DISPLAY_FEEDBACK_BANNER='false'

View File

@@ -10,4 +10,4 @@ on:
jobs: jobs:
version-check: version-check:
uses: openedx/.github/.github/workflows/lockfileversion-check-v3.yml@master uses: openedx/.github/.github/workflows/lockfile-check.yml@master

View File

@@ -1,2 +0,0 @@
process.env.TA_FEEDBACK_FORM= 'https://learner-form.test';
process.env.STAFF_FEEDBACK_FORM= 'https://staff-form.test';

View File

@@ -1,6 +1,6 @@
export TRANSIFEX_RESOURCE = frontend-app-discussions export TRANSIFEX_RESOURCE = frontend-app-discussions
transifex_resource = frontend-app-discussions transifex_resource = frontend-app-discussions
transifex_langs = "ar,fr,es_419,zh_CN,tr_TR,pl,fr_CA,fr_FR,de_DE,it_IT,pt_PT,uk,ru,hi,cs,es_AR,es_ES,fa_IR" transifex_langs = "ar,cs,de_DE,es_419,es_AR,es_ES,fa_IR,fr,fr_CA,fr_FR,hi,it_IT,pl,pt_PT,tr_TR,uk,ru,zh_CN"
intl_imports = ./node_modules/.bin/intl-imports.js intl_imports = ./node_modules/.bin/intl-imports.js
transifex_utils = ./node_modules/.bin/transifex-utils.js transifex_utils = ./node_modules/.bin/transifex-utils.js
@@ -8,7 +8,7 @@ i18n = ./src/i18n
transifex_input = $(i18n)/transifex_input.json transifex_input = $(i18n)/transifex_input.json
# This directory must match .babelrc . # This directory must match .babelrc .
transifex_temp = ./temp/babel-plugin-react-intl transifex_temp = ./temp/babel-plugin-formatjs
NPM_TESTS=build i18n_extract lint test NPM_TESTS=build i18n_extract lint test

View File

@@ -1,3 +1,7 @@
########################
frontend-app-discussions
########################
|Codecov| |license| |Codecov| |license|
.. |Codecov| image:: https://codecov.io/gh/openedx/frontend-app-discussions/branch/master/graph/badge.svg?token=3z7XvuzTq3 .. |Codecov| image:: https://codecov.io/gh/openedx/frontend-app-discussions/branch/master/graph/badge.svg?token=3z7XvuzTq3
@@ -5,16 +9,34 @@
.. |license| image:: https://img.shields.io/badge/license-AGPL-informational .. |license| image:: https://img.shields.io/badge/license-AGPL-informational
:target: https://github.com/openedx/frontend-app-discussions/blob/master/LICENSE :target: https://github.com/openedx/frontend-app-discussions/blob/master/LICENSE
frontend-app-discussions ********
======================== Purpose
********
Introduction
------------
This repository is a React-based micro frontend for the Open edX discussion forums. This repository is a React-based micro frontend for the Open edX discussion forums.
***************
Getting Started Getting Started
--------------- ***************
Prerequisites
=============
The `devstack`_ is currently recommended as a development environment for your
new MFE. If you start it with ``make dev.up.lms`` that should give you
everything you need as a companion to this frontend.
Note that it is also possible to use `Tutor`_ to develop an MFE. You can refer
to the `relevant tutor-mfe documentation`_ to get started using it.
.. _Devstack: https://github.com/openedx/devstack
.. _Tutor: https://github.com/overhangio/tutor
.. _relevant tutor-mfe documentation: https://github.com/overhangio/tutor-mfe#mfe-development
Cloning and Startup
===================
1. Clone your new repo: 1. Clone your new repo:
@@ -31,7 +53,7 @@ Getting Started
The dev server is running at `http://localhost:2002 <http://localhost:2002>`_. The dev server is running at `http://localhost:2002 <http://localhost:2002>`_.
Getting Help Getting Help
------------ ============
Please tag **@openedx/edx-infinity ** on any PRs or issues. Thanks. Please tag **@openedx/edx-infinity ** on any PRs or issues. Thanks.
If you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community. If you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.
@@ -44,7 +66,8 @@ For more information about these options, see the `Getting Help`_ page.
.. _Getting Help: https://openedx.org/getting-help .. _Getting Help: https://openedx.org/getting-help
How to Contribute How to Contribute
----------------- =================
Details about how to become a contributor to the Open edX project may be found in the wiki at `How to contribute`_ Details about how to become a contributor to the Open edX project may be found in the wiki at `How to contribute`_
.. _How to contribute: https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/process/index.html .. _How to contribute: https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/process/index.html
@@ -55,32 +78,45 @@ can find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/frontend
This project is currently accepting all types of contributions, bug fixes and security fixes This project is currently accepting all types of contributions, bug fixes and security fixes
The Open edX Code of Conduct The Open edX Code of Conduct
---------------------------- ============================
All community members should familiarize themselves with the `Open edX Code of Conduct`_. All community members should familiarize themselves with the `Open edX Code of Conduct`_.
.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/ .. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/
People People
------ ======
The assigned maintainers for this component and other project details may be found in Backstage or from inspecting catalog-info.yaml. The assigned maintainers for this component and other project details may be found in Backstage or from inspecting catalog-info.yaml.
Reporting Security Issues Reporting Security Issues
------------------------- -------------------------
Please do not report security issues in public. Please email security@edx.org. Please do not report security issues in public. Please email security@openedx.org.
Project Structure Project Structure
----------------- =================
The source for this project is organized into nested submodules according to the ADR `Feature-based Application Organization <https://github.com/openedx/frontend-app-discussions/blob/master/docs/decisions/0002-feature-based-application-organization.rst>`_. The source for this project is organized into nested submodules according to the ADR `Feature-based Application Organization <https://github.com/openedx/frontend-app-discussions/blob/master/docs/decisions/0002-feature-based-application-organization.rst>`_.
Build Process Notes Build Process Notes
------------------- ===================
**Production Build** **Production Build**
The production build is created with ``npm run build``. The production build is created with ``npm run build``.
License
=======
The code in this repository is licensed under the AGPLv3 unless otherwise
noted.
Please see `LICENSE <LICENSE>`_ for details.
Internationalization Internationalization
-------------------- ====================
Please see `edx/frontend-platform's i18n module <https://edx.github.io/frontend-platform/module-Internationalization.html>`_ for documentation on internationalization. The documentation explains how to use it, and the `How To <https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst>`_ has more detail. Please see `edx/frontend-platform's i18n module <https://edx.github.io/frontend-platform/module-Internationalization.html>`_ for documentation on internationalization. The documentation explains how to use it, and the `How To <https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst>`_ has more detail.
Reporting Security Issues
=========================
Please do not report security issues in public. Please email security@openedx.org.

View File

@@ -1,9 +1,9 @@
const { createConfig } = require('@edx/frontend-build'); const { createConfig } = require('@edx/frontend-build');
module.exports = createConfig('jest', { module.exports = createConfig('jest', {
// setupFilesAfterEnv is used after the jest environment has been loaded. In general this is what you want. // setupFilesAfterEnv is used after the jest environment has been loaded. In general this is what you want.
// If you want to add config BEFORE jest loads, use setupFiles instead. // If you want to add config BEFORE jest loads, use setupFiles instead.
setupFiles: ['<rootDir>/.jest/setEnvVars.js'], setupFiles: ['<rootDir>/.env.test'],
setupFilesAfterEnv: [ setupFilesAfterEnv: [
'<rootDir>/src/setupTest.js', '<rootDir>/src/setupTest.js',
], ],

4618
package-lock.json generated
View File

@@ -9,15 +9,15 @@
"version": "0.1.0", "version": "0.1.0",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"@edx/brand": "npm:@edx/brand-openedx@1.1.0", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2",
"@edx/frontend-component-footer": "12.1.0", "@edx/frontend-component-footer": "12.5.1",
"@edx/frontend-component-header": "4.3.0", "@edx/frontend-component-header": "4.9.1",
"@edx/frontend-platform": "4.6.0", "@edx/frontend-platform": "4.6.3",
"@edx/paragon": "20.44.0", "@edx/paragon": "20.44.0",
"@reduxjs/toolkit": "1.8.0", "@reduxjs/toolkit": "1.8.0",
"@tinymce/tinymce-react": "3.13.1", "@tinymce/tinymce-react": "3.13.1",
"babel-polyfill": "6.26.0", "babel-polyfill": "6.26.0",
"classnames": "2.3.1", "classnames": "2.3.2",
"core-js": "3.21.1", "core-js": "3.21.1",
"dompurify": "^2.4.3", "dompurify": "^2.4.3",
"formik": "2.2.9", "formik": "2.2.9",
@@ -32,17 +32,17 @@
"redux": "4.1.2", "redux": "4.1.2",
"regenerator-runtime": "0.13.9", "regenerator-runtime": "0.13.9",
"timeago.js": "4.0.2", "timeago.js": "4.0.2",
"tinymce": "5.10.2", "tinymce": "5.10.7",
"yup": "0.31.1" "yup": "0.31.1"
}, },
"devDependencies": { "devDependencies": {
"@edx/browserslist-config": "1.1.0", "@edx/browserslist-config": "1.2.0",
"@edx/frontend-build": "12.8.27", "@edx/frontend-build": "13.0.5",
"@edx/reactifex": "1.0.3", "@edx/reactifex": "1.1.0",
"@testing-library/jest-dom": "5.16.2", "@testing-library/jest-dom": "5.17.0",
"@testing-library/react": "12.1.5", "@testing-library/react": "12.1.5",
"@testing-library/user-event": "13.5.0", "@testing-library/user-event": "13.5.0",
"axios-mock-adapter": "1.20.0", "axios-mock-adapter": "1.22.0",
"babel-plugin-react-intl": "8.2.25", "babel-plugin-react-intl": "8.2.25",
"eslint-plugin-simple-import-sort": "7.0.0", "eslint-plugin-simple-import-sort": "7.0.0",
"glob": "7.2.0", "glob": "7.2.0",
@@ -51,6 +51,20 @@
"rosie": "2.1.0" "rosie": "2.1.0"
} }
}, },
"node_modules/@aashutoshrathi/word-wrap": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
"integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@adobe/css-tools": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz",
"integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==",
"dev": true
},
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -64,9 +78,9 @@
} }
}, },
"node_modules/@babel/cli": { "node_modules/@babel/cli": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.5.tgz",
"integrity": "sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g==", "integrity": "sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==",
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "^0.3.17", "@jridgewell/trace-mapping": "^0.3.17",
"commander": "^4.0.1", "commander": "^4.0.1",
@@ -92,39 +106,40 @@
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
"version": "7.21.4", "version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
"integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dependencies": { "dependencies": {
"@babel/highlight": "^7.18.6" "@babel/highlight": "^7.22.13",
"chalk": "^2.4.2"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/compat-data": { "node_modules/@babel/compat-data": {
"version": "7.21.7", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz",
"integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.21.8", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
"integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.21.4", "@babel/code-frame": "^7.22.5",
"@babel/generator": "^7.21.5", "@babel/generator": "^7.22.5",
"@babel/helper-compilation-targets": "^7.21.5", "@babel/helper-compilation-targets": "^7.22.5",
"@babel/helper-module-transforms": "^7.21.5", "@babel/helper-module-transforms": "^7.22.5",
"@babel/helpers": "^7.21.5", "@babel/helpers": "^7.22.5",
"@babel/parser": "^7.21.8", "@babel/parser": "^7.22.5",
"@babel/template": "^7.20.7", "@babel/template": "^7.22.5",
"@babel/traverse": "^7.21.5", "@babel/traverse": "^7.22.5",
"@babel/types": "^7.21.5", "@babel/types": "^7.22.5",
"convert-source-map": "^1.7.0", "convert-source-map": "^1.7.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
@@ -140,13 +155,13 @@
} }
}, },
"node_modules/@babel/eslint-parser": { "node_modules/@babel/eslint-parser": {
"version": "7.21.8", "version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz",
"integrity": "sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==", "integrity": "sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==",
"dependencies": { "dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0", "eslint-visitor-keys": "^2.1.0",
"semver": "^6.3.0" "semver": "^6.3.1"
}, },
"engines": { "engines": {
"node": "^10.13.0 || ^12.13.0 || >=14.0.0" "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
@@ -156,12 +171,20 @@
"eslint": "^7.5.0 || ^8.0.0" "eslint": "^7.5.0 || ^8.0.0"
} }
}, },
"node_modules/@babel/eslint-parser/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": { "node_modules/@babel/generator": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
"integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.5", "@babel/types": "^7.23.0",
"@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17", "@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1" "jsesc": "^2.5.1"
@@ -171,59 +194,64 @@
} }
}, },
"node_modules/@babel/helper-annotate-as-pure": { "node_modules/@babel/helper-annotate-as-pure": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
"integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
"dependencies": { "dependencies": {
"@babel/types": "^7.18.6" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.21.5", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
"integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.5" "@babel/types": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-compilation-targets": { "node_modules/@babel/helper-compilation-targets": {
"version": "7.21.5", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
"integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.21.5", "@babel/compat-data": "^7.22.9",
"@babel/helper-validator-option": "^7.21.0", "@babel/helper-validator-option": "^7.22.15",
"browserslist": "^4.21.3", "browserslist": "^4.21.9",
"lru-cache": "^5.1.1", "lru-cache": "^5.1.1",
"semver": "^6.3.0" "semver": "^6.3.1"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
}, }
"peerDependencies": { },
"@babel/core": "^7.0.0" "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
} }
}, },
"node_modules/@babel/helper-create-class-features-plugin": { "node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.21.8", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
"integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-function-name": "^7.21.0", "@babel/helper-function-name": "^7.22.5",
"@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-member-expression-to-functions": "^7.22.15",
"@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-optimise-call-expression": "^7.22.5",
"@babel/helper-replace-supers": "^7.21.5", "@babel/helper-replace-supers": "^7.22.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-split-export-declaration": "^7.22.6",
"semver": "^6.3.0" "semver": "^6.3.1"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -232,14 +260,22 @@
"@babel/core": "^7.0.0" "@babel/core": "^7.0.0"
} }
}, },
"node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": { "node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.21.8", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
"integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"regexpu-core": "^5.3.1", "regexpu-core": "^5.3.1",
"semver": "^6.3.0" "semver": "^6.3.1"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -248,121 +284,127 @@
"@babel/core": "^7.0.0" "@babel/core": "^7.0.0"
} }
}, },
"node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-define-polyfill-provider": { "node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.3.3", "version": "0.4.2",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz",
"integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==",
"dependencies": { "dependencies": {
"@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-compilation-targets": "^7.22.6",
"@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-plugin-utils": "^7.22.5",
"debug": "^4.1.1", "debug": "^4.1.1",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"resolve": "^1.14.2", "resolve": "^1.14.2"
"semver": "^6.1.2"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.4.0-0" "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
} }
}, },
"node_modules/@babel/helper-environment-visitor": { "node_modules/@babel/helper-environment-visitor": {
"version": "7.21.5", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
"integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-function-name": { "node_modules/@babel/helper-function-name": {
"version": "7.21.0", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
"integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dependencies": { "dependencies": {
"@babel/template": "^7.20.7", "@babel/template": "^7.22.15",
"@babel/types": "^7.21.0" "@babel/types": "^7.23.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-hoist-variables": { "node_modules/@babel/helper-hoist-variables": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
"integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dependencies": { "dependencies": {
"@babel/types": "^7.18.6" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-member-expression-to-functions": { "node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
"integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.5" "@babel/types": "^7.23.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-module-imports": { "node_modules/@babel/helper-module-imports": {
"version": "7.21.4", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
"integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.4" "@babel/types": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-module-transforms": { "node_modules/@babel/helper-module-transforms": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
"integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
"dependencies": { "dependencies": {
"@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-module-imports": "^7.21.4", "@babel/helper-module-imports": "^7.22.15",
"@babel/helper-simple-access": "^7.21.5", "@babel/helper-simple-access": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-split-export-declaration": "^7.22.6",
"@babel/helper-validator-identifier": "^7.19.1", "@babel/helper-validator-identifier": "^7.22.20"
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.21.5",
"@babel/types": "^7.21.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
} }
}, },
"node_modules/@babel/helper-optimise-call-expression": { "node_modules/@babel/helper-optimise-call-expression": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
"integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
"dependencies": { "dependencies": {
"@babel/types": "^7.18.6" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-plugin-utils": { "node_modules/@babel/helper-plugin-utils": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
"integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-remap-async-to-generator": { "node_modules/@babel/helper-remap-async-to-generator": {
"version": "7.18.9", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
"integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-wrap-function": "^7.18.9", "@babel/helper-wrap-function": "^7.22.20"
"@babel/types": "^7.18.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -372,112 +414,111 @@
} }
}, },
"node_modules/@babel/helper-replace-supers": { "node_modules/@babel/helper-replace-supers": {
"version": "7.21.5", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
"integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
"dependencies": { "dependencies": {
"@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-member-expression-to-functions": "^7.22.15",
"@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-optimise-call-expression": "^7.22.5"
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.21.5",
"@babel/types": "^7.21.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
} }
}, },
"node_modules/@babel/helper-simple-access": { "node_modules/@babel/helper-simple-access": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
"integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.5" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-skip-transparent-expression-wrappers": { "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.20.0", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
"integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
"dependencies": { "dependencies": {
"@babel/types": "^7.20.0" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-split-export-declaration": { "node_modules/@babel/helper-split-export-declaration": {
"version": "7.18.6", "version": "7.22.6",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
"integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dependencies": { "dependencies": {
"@babel/types": "^7.18.6" "@babel/types": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-string-parser": { "node_modules/@babel/helper-string-parser": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
"integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-validator-identifier": { "node_modules/@babel/helper-validator-identifier": {
"version": "7.19.1", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-validator-option": { "node_modules/@babel/helper-validator-option": {
"version": "7.21.0", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
"integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-wrap-function": { "node_modules/@babel/helper-wrap-function": {
"version": "7.20.5", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
"integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
"dependencies": { "dependencies": {
"@babel/helper-function-name": "^7.19.0", "@babel/helper-function-name": "^7.22.5",
"@babel/template": "^7.18.10", "@babel/template": "^7.22.15",
"@babel/traverse": "^7.20.5", "@babel/types": "^7.22.19"
"@babel/types": "^7.20.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.21.5", "version": "7.23.1",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz",
"integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==",
"dependencies": { "dependencies": {
"@babel/template": "^7.20.7", "@babel/template": "^7.22.15",
"@babel/traverse": "^7.21.5", "@babel/traverse": "^7.23.0",
"@babel/types": "^7.21.5" "@babel/types": "^7.23.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/highlight": { "node_modules/@babel/highlight": {
"version": "7.18.6", "version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.18.6", "@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.0.0", "chalk": "^2.4.2",
"js-tokens": "^4.0.0" "js-tokens": "^4.0.0"
}, },
"engines": { "engines": {
@@ -485,9 +526,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.21.8", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
"integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@@ -496,11 +537,11 @@
} }
}, },
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.18.6", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
"integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -510,13 +551,13 @@
} }
}, },
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
"version": "7.20.7", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
"integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/plugin-proposal-optional-chaining": "^7.20.7" "@babel/plugin-transform-optional-chaining": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -525,27 +566,11 @@
"@babel/core": "^7.13.0" "@babel/core": "^7.13.0"
} }
}, },
"node_modules/@babel/plugin-proposal-async-generator-functions": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
"integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-remap-async-to-generator": "^7.18.9",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-class-properties": { "node_modules/@babel/plugin-proposal-class-properties": {
"version": "7.18.6", "version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
"integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
"deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
"dependencies": { "dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.18.6"
@@ -557,116 +582,11 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/plugin-proposal-class-static-block": {
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz",
"integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.21.0",
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.12.0"
}
},
"node_modules/@babel/plugin-proposal-dynamic-import": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
"integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-export-namespace-from": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
"integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-json-strings": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
"integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
"integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
"integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-numeric-separator": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
"integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": { "node_modules/@babel/plugin-proposal-object-rest-spread": {
"version": "7.20.7", "version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
"integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
"deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.20.5", "@babel/compat-data": "^7.20.5",
"@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-compilation-targets": "^7.20.7",
@@ -681,62 +601,10 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/plugin-proposal-optional-catch-binding": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
"integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-optional-chaining": {
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
"integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-private-methods": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
"integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": { "node_modules/@babel/plugin-proposal-private-property-in-object": {
"version": "7.21.0", "version": "7.21.0-placeholder-for-preset-env.2",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
"integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-create-class-features-plugin": "^7.21.0",
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
}, },
@@ -748,6 +616,7 @@
"version": "7.18.6", "version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
"integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
"deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.",
"dependencies": { "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.18.6"
@@ -829,11 +698,25 @@
} }
}, },
"node_modules/@babel/plugin-syntax-import-assertions": { "node_modules/@babel/plugin-syntax-import-assertions": {
"version": "7.20.0", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
"integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.19.0" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
"integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -865,11 +748,11 @@
} }
}, },
"node_modules/@babel/plugin-syntax-jsx": { "node_modules/@babel/plugin-syntax-jsx": {
"version": "7.21.4", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
"integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -973,11 +856,11 @@
} }
}, },
"node_modules/@babel/plugin-syntax-typescript": { "node_modules/@babel/plugin-syntax-typescript": {
"version": "7.21.4", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
"integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -986,12 +869,44 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/plugin-transform-arrow-functions": { "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
"version": "7.21.5", "version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
"integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5" "@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
"integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
"version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz",
"integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-remap-async-to-generator": "^7.22.9",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1001,13 +916,13 @@
} }
}, },
"node_modules/@babel/plugin-transform-async-to-generator": { "node_modules/@babel/plugin-transform-async-to-generator": {
"version": "7.20.7", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
"integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
"dependencies": { "dependencies": {
"@babel/helper-module-imports": "^7.18.6", "@babel/helper-module-imports": "^7.22.5",
"@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-remap-async-to-generator": "^7.18.9" "@babel/helper-remap-async-to-generator": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1017,11 +932,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-block-scoped-functions": { "node_modules/@babel/plugin-transform-block-scoped-functions": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
"integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1031,11 +946,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-block-scoping": { "node_modules/@babel/plugin-transform-block-scoping": {
"version": "7.21.0", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
"integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1044,19 +959,50 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/plugin-transform-classes": { "node_modules/@babel/plugin-transform-class-properties": {
"version": "7.21.0", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
"integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.22.5",
"@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.22.5"
"@babel/helper-environment-visitor": "^7.18.9", },
"@babel/helper-function-name": "^7.21.0", "engines": {
"@babel/helper-optimise-call-expression": "^7.18.6", "node": ">=6.9.0"
"@babel/helper-plugin-utils": "^7.20.2", },
"@babel/helper-replace-supers": "^7.20.7", "peerDependencies": {
"@babel/helper-split-export-declaration": "^7.18.6", "@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
"integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.22.11",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.12.0"
}
},
"node_modules/@babel/plugin-transform-classes": {
"version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
"integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-function-name": "^7.22.5",
"@babel/helper-optimise-call-expression": "^7.22.5",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-replace-supers": "^7.22.9",
"@babel/helper-split-export-declaration": "^7.22.6",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
"engines": { "engines": {
@@ -1067,12 +1013,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-computed-properties": { "node_modules/@babel/plugin-transform-computed-properties": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
"integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/template": "^7.20.7" "@babel/template": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1082,11 +1028,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-destructuring": { "node_modules/@babel/plugin-transform-destructuring": {
"version": "7.21.3", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
"integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1096,12 +1042,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-dotall-regex": { "node_modules/@babel/plugin-transform-dotall-regex": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
"integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
"dependencies": { "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-create-regexp-features-plugin": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1111,11 +1057,26 @@
} }
}, },
"node_modules/@babel/plugin-transform-duplicate-keys": { "node_modules/@babel/plugin-transform-duplicate-keys": {
"version": "7.18.9", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
"integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.9" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-dynamic-import": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
"integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1125,12 +1086,27 @@
} }
}, },
"node_modules/@babel/plugin-transform-exponentiation-operator": { "node_modules/@babel/plugin-transform-exponentiation-operator": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
"integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
"dependencies": { "dependencies": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
"integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1140,11 +1116,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-for-of": { "node_modules/@babel/plugin-transform-for-of": {
"version": "7.21.5", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
"integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1154,13 +1130,28 @@
} }
}, },
"node_modules/@babel/plugin-transform-function-name": { "node_modules/@babel/plugin-transform-function-name": {
"version": "7.18.9", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
"integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
"dependencies": { "dependencies": {
"@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-compilation-targets": "^7.22.5",
"@babel/helper-function-name": "^7.18.9", "@babel/helper-function-name": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.9" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-json-strings": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
"integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-json-strings": "^7.8.3"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1170,11 +1161,26 @@
} }
}, },
"node_modules/@babel/plugin-transform-literals": { "node_modules/@babel/plugin-transform-literals": {
"version": "7.18.9", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
"integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.9" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
"integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1184,11 +1190,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-member-expression-literals": { "node_modules/@babel/plugin-transform-member-expression-literals": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
"integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1198,12 +1204,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-modules-amd": { "node_modules/@babel/plugin-transform-modules-amd": {
"version": "7.20.11", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
"integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
"dependencies": { "dependencies": {
"@babel/helper-module-transforms": "^7.20.11", "@babel/helper-module-transforms": "^7.23.0",
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1213,13 +1219,13 @@
} }
}, },
"node_modules/@babel/plugin-transform-modules-commonjs": { "node_modules/@babel/plugin-transform-modules-commonjs": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
"integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
"dependencies": { "dependencies": {
"@babel/helper-module-transforms": "^7.21.5", "@babel/helper-module-transforms": "^7.23.0",
"@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-simple-access": "^7.21.5" "@babel/helper-simple-access": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1229,14 +1235,14 @@
} }
}, },
"node_modules/@babel/plugin-transform-modules-systemjs": { "node_modules/@babel/plugin-transform-modules-systemjs": {
"version": "7.20.11", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
"integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
"dependencies": { "dependencies": {
"@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-module-transforms": "^7.20.11", "@babel/helper-module-transforms": "^7.23.0",
"@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-identifier": "^7.19.1" "@babel/helper-validator-identifier": "^7.22.20"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1246,12 +1252,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-modules-umd": { "node_modules/@babel/plugin-transform-modules-umd": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
"integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
"dependencies": { "dependencies": {
"@babel/helper-module-transforms": "^7.18.6", "@babel/helper-module-transforms": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1261,12 +1267,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
"version": "7.20.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
"integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
"dependencies": { "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-create-regexp-features-plugin": "^7.22.5",
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1276,11 +1282,59 @@
} }
}, },
"node_modules/@babel/plugin-transform-new-target": { "node_modules/@babel/plugin-transform-new-target": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
"integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
"integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
"integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
"version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
"integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
"dependencies": {
"@babel/compat-data": "^7.22.9",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-transform-parameters": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1290,12 +1344,43 @@
} }
}, },
"node_modules/@babel/plugin-transform-object-super": { "node_modules/@babel/plugin-transform-object-super": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
"integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-replace-supers": "^7.18.6" "@babel/helper-replace-supers": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
"integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
"version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
"integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1305,11 +1390,43 @@
} }
}, },
"node_modules/@babel/plugin-transform-parameters": { "node_modules/@babel/plugin-transform-parameters": {
"version": "7.21.3", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
"integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-private-methods": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
"integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.22.5",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
"integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.11",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1319,11 +1436,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-property-literals": { "node_modules/@babel/plugin-transform-property-literals": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
"integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1333,11 +1450,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-react-constant-elements": { "node_modules/@babel/plugin-transform-react-constant-elements": {
"version": "7.21.3", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz",
"integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1347,11 +1464,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-react-display-name": { "node_modules/@babel/plugin-transform-react-display-name": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz",
"integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1361,15 +1478,15 @@
} }
}, },
"node_modules/@babel/plugin-transform-react-jsx": { "node_modules/@babel/plugin-transform-react-jsx": {
"version": "7.21.5", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz",
"integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-module-imports": "^7.21.4", "@babel/helper-module-imports": "^7.22.15",
"@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-jsx": "^7.21.4", "@babel/plugin-syntax-jsx": "^7.22.5",
"@babel/types": "^7.21.5" "@babel/types": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1379,11 +1496,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-react-jsx-development": { "node_modules/@babel/plugin-transform-react-jsx-development": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
"integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
"dependencies": { "dependencies": {
"@babel/plugin-transform-react-jsx": "^7.18.6" "@babel/plugin-transform-react-jsx": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1393,12 +1510,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-react-pure-annotations": { "node_modules/@babel/plugin-transform-react-pure-annotations": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz",
"integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1408,12 +1525,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-regenerator": { "node_modules/@babel/plugin-transform-regenerator": {
"version": "7.21.5", "version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
"integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5",
"regenerator-transform": "^0.15.1" "regenerator-transform": "^0.15.2"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1423,11 +1540,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-reserved-words": { "node_modules/@babel/plugin-transform-reserved-words": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
"integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1437,11 +1554,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-shorthand-properties": { "node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
"integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1451,12 +1568,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-spread": { "node_modules/@babel/plugin-transform-spread": {
"version": "7.20.7", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
"integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1466,11 +1583,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-sticky-regex": { "node_modules/@babel/plugin-transform-sticky-regex": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
"integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1480,11 +1597,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-template-literals": { "node_modules/@babel/plugin-transform-template-literals": {
"version": "7.18.9", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
"integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.9" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1494,11 +1611,11 @@
} }
}, },
"node_modules/@babel/plugin-transform-typeof-symbol": { "node_modules/@babel/plugin-transform-typeof-symbol": {
"version": "7.18.9", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
"integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.9" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1508,14 +1625,14 @@
} }
}, },
"node_modules/@babel/plugin-transform-typescript": { "node_modules/@babel/plugin-transform-typescript": {
"version": "7.21.3", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz",
"integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-typescript": "^7.20.0" "@babel/plugin-syntax-typescript": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1525,11 +1642,26 @@
} }
}, },
"node_modules/@babel/plugin-transform-unicode-escapes": { "node_modules/@babel/plugin-transform-unicode-escapes": {
"version": "7.21.5", "version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
"integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5" "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
"integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.22.5",
"@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1539,12 +1671,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-unicode-regex": { "node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
"integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
"dependencies": { "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-create-regexp-features-plugin": "^7.22.5",
"@babel/helper-plugin-utils": "^7.18.6" "@babel/helper-plugin-utils": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1553,38 +1685,40 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/preset-env": { "node_modules/@babel/plugin-transform-unicode-sets-regex": {
"version": "7.21.5", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
"integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.21.5", "@babel/helper-create-regexp-features-plugin": "^7.22.5",
"@babel/helper-compilation-targets": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5"
"@babel/helper-plugin-utils": "^7.21.5", },
"@babel/helper-validator-option": "^7.21.0", "engines": {
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "node": ">=6.9.0"
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", },
"@babel/plugin-proposal-async-generator-functions": "^7.20.7", "peerDependencies": {
"@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/core": "^7.0.0"
"@babel/plugin-proposal-class-static-block": "^7.21.0", }
"@babel/plugin-proposal-dynamic-import": "^7.18.6", },
"@babel/plugin-proposal-export-namespace-from": "^7.18.9", "node_modules/@babel/preset-env": {
"@babel/plugin-proposal-json-strings": "^7.18.6", "version": "7.22.5",
"@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==",
"@babel/plugin-proposal-numeric-separator": "^7.18.6", "dependencies": {
"@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/compat-data": "^7.22.5",
"@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/helper-compilation-targets": "^7.22.5",
"@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/helper-validator-option": "^7.22.5",
"@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5",
"@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
"@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-import-assertions": "^7.22.5",
"@babel/plugin-syntax-import-attributes": "^7.22.5",
"@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
@@ -1595,44 +1729,61 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-transform-arrow-functions": "^7.21.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
"@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-arrow-functions": "^7.22.5",
"@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-async-generator-functions": "^7.22.5",
"@babel/plugin-transform-block-scoping": "^7.21.0", "@babel/plugin-transform-async-to-generator": "^7.22.5",
"@babel/plugin-transform-classes": "^7.21.0", "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
"@babel/plugin-transform-computed-properties": "^7.21.5", "@babel/plugin-transform-block-scoping": "^7.22.5",
"@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-class-properties": "^7.22.5",
"@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-class-static-block": "^7.22.5",
"@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-classes": "^7.22.5",
"@babel/plugin-transform-exponentiation-operator": "^7.18.6", "@babel/plugin-transform-computed-properties": "^7.22.5",
"@babel/plugin-transform-for-of": "^7.21.5", "@babel/plugin-transform-destructuring": "^7.22.5",
"@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-dotall-regex": "^7.22.5",
"@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-duplicate-keys": "^7.22.5",
"@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-dynamic-import": "^7.22.5",
"@babel/plugin-transform-modules-amd": "^7.20.11", "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
"@babel/plugin-transform-modules-commonjs": "^7.21.5", "@babel/plugin-transform-export-namespace-from": "^7.22.5",
"@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-for-of": "^7.22.5",
"@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-function-name": "^7.22.5",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-json-strings": "^7.22.5",
"@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-literals": "^7.22.5",
"@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-logical-assignment-operators": "^7.22.5",
"@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-member-expression-literals": "^7.22.5",
"@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.22.5",
"@babel/plugin-transform-regenerator": "^7.21.5", "@babel/plugin-transform-modules-commonjs": "^7.22.5",
"@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-modules-systemjs": "^7.22.5",
"@babel/plugin-transform-shorthand-properties": "^7.18.6", "@babel/plugin-transform-modules-umd": "^7.22.5",
"@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
"@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-new-target": "^7.22.5",
"@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5",
"@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-numeric-separator": "^7.22.5",
"@babel/plugin-transform-unicode-escapes": "^7.21.5", "@babel/plugin-transform-object-rest-spread": "^7.22.5",
"@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/plugin-transform-object-super": "^7.22.5",
"@babel/plugin-transform-optional-catch-binding": "^7.22.5",
"@babel/plugin-transform-optional-chaining": "^7.22.5",
"@babel/plugin-transform-parameters": "^7.22.5",
"@babel/plugin-transform-private-methods": "^7.22.5",
"@babel/plugin-transform-private-property-in-object": "^7.22.5",
"@babel/plugin-transform-property-literals": "^7.22.5",
"@babel/plugin-transform-regenerator": "^7.22.5",
"@babel/plugin-transform-reserved-words": "^7.22.5",
"@babel/plugin-transform-shorthand-properties": "^7.22.5",
"@babel/plugin-transform-spread": "^7.22.5",
"@babel/plugin-transform-sticky-regex": "^7.22.5",
"@babel/plugin-transform-template-literals": "^7.22.5",
"@babel/plugin-transform-typeof-symbol": "^7.22.5",
"@babel/plugin-transform-unicode-escapes": "^7.22.5",
"@babel/plugin-transform-unicode-property-regex": "^7.22.5",
"@babel/plugin-transform-unicode-regex": "^7.22.5",
"@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
"@babel/preset-modules": "^0.1.5", "@babel/preset-modules": "^0.1.5",
"@babel/types": "^7.21.5", "@babel/types": "^7.22.5",
"babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs2": "^0.4.3",
"babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-corejs3": "^0.8.1",
"babel-plugin-polyfill-regenerator": "^0.4.1", "babel-plugin-polyfill-regenerator": "^0.5.0",
"core-js-compat": "^3.25.1", "core-js-compat": "^3.30.2",
"semver": "^6.3.0" "semver": "^6.3.0"
}, },
"engines": { "engines": {
@@ -1643,9 +1794,9 @@
} }
}, },
"node_modules/@babel/preset-modules": { "node_modules/@babel/preset-modules": {
"version": "0.1.5", "version": "0.1.6",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz",
"integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@@ -1654,20 +1805,20 @@
"esutils": "^2.0.2" "esutils": "^2.0.2"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
} }
}, },
"node_modules/@babel/preset-react": { "node_modules/@babel/preset-react": {
"version": "7.18.6", "version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz",
"integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.18.6", "@babel/helper-validator-option": "^7.22.5",
"@babel/plugin-transform-react-display-name": "^7.18.6", "@babel/plugin-transform-react-display-name": "^7.22.5",
"@babel/plugin-transform-react-jsx": "^7.18.6", "@babel/plugin-transform-react-jsx": "^7.22.5",
"@babel/plugin-transform-react-jsx-development": "^7.18.6", "@babel/plugin-transform-react-jsx-development": "^7.22.5",
"@babel/plugin-transform-react-pure-annotations": "^7.18.6" "@babel/plugin-transform-react-pure-annotations": "^7.22.5"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1677,15 +1828,15 @@
} }
}, },
"node_modules/@babel/preset-typescript": { "node_modules/@babel/preset-typescript": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz",
"integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", "integrity": "sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.21.5", "@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.21.0", "@babel/helper-validator-option": "^7.22.15",
"@babel/plugin-syntax-jsx": "^7.21.4", "@babel/plugin-syntax-jsx": "^7.22.5",
"@babel/plugin-transform-modules-commonjs": "^7.21.5", "@babel/plugin-transform-modules-commonjs": "^7.23.0",
"@babel/plugin-transform-typescript": "^7.21.3" "@babel/plugin-transform-typescript": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1716,31 +1867,31 @@
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
}, },
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.20.7", "version": "7.22.15",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
"integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.22.13",
"@babel/parser": "^7.20.7", "@babel/parser": "^7.22.15",
"@babel/types": "^7.20.7" "@babel/types": "^7.22.15"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz",
"integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.21.4", "@babel/code-frame": "^7.22.13",
"@babel/generator": "^7.21.5", "@babel/generator": "^7.23.0",
"@babel/helper-environment-visitor": "^7.21.5", "@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.21.0", "@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-split-export-declaration": "^7.22.6",
"@babel/parser": "^7.21.5", "@babel/parser": "^7.23.0",
"@babel/types": "^7.21.5", "@babel/types": "^7.23.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
@@ -1749,12 +1900,12 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.21.5", "version": "7.23.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
"integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.21.5", "@babel/helper-string-parser": "^7.22.5",
"@babel/helper-validator-identifier": "^7.19.1", "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
}, },
"engines": { "engines": {
@@ -1790,62 +1941,86 @@
} }
}, },
"node_modules/@csstools/cascade-layer-name-parser": { "node_modules/@csstools/cascade-layer-name-parser": {
"version": "1.0.2", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.5.tgz",
"integrity": "sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==", "integrity": "sha512-v/5ODKNBMfBl0us/WQjlfsvSlYxfZLhNMVIsuCPib2ulTwGKYbKJbwqw671+qH9Y4wvWVnu7LBChvml/wBKjFg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": { "engines": {
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/csstools"
},
"peerDependencies": { "peerDependencies": {
"@csstools/css-parser-algorithms": "^2.1.1", "@csstools/css-parser-algorithms": "^2.3.2",
"@csstools/css-tokenizer": "^2.1.1" "@csstools/css-tokenizer": "^2.2.1"
} }
}, },
"node_modules/@csstools/css-parser-algorithms": { "node_modules/@csstools/css-parser-algorithms": {
"version": "2.1.1", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz",
"integrity": "sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA==", "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": { "engines": {
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/csstools"
},
"peerDependencies": { "peerDependencies": {
"@csstools/css-tokenizer": "^2.1.1" "@csstools/css-tokenizer": "^2.2.1"
} }
}, },
"node_modules/@csstools/css-tokenizer": { "node_modules/@csstools/css-tokenizer": {
"version": "2.1.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz",
"integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": { "engines": {
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/csstools"
} }
}, },
"node_modules/@csstools/media-query-list-parser": { "node_modules/@csstools/media-query-list-parser": {
"version": "2.0.4", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz",
"integrity": "sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA==", "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": { "engines": {
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/csstools"
},
"peerDependencies": { "peerDependencies": {
"@csstools/css-parser-algorithms": "^2.1.1", "@csstools/css-parser-algorithms": "^2.3.2",
"@csstools/css-tokenizer": "^2.1.1" "@csstools/css-tokenizer": "^2.2.1"
} }
}, },
"node_modules/@discoveryjs/json-ext": { "node_modules/@discoveryjs/json-ext": {
@@ -1857,15 +2032,15 @@
} }
}, },
"node_modules/@edx/brand": { "node_modules/@edx/brand": {
"name": "@edx/brand-openedx", "name": "@openedx/brand-openedx",
"version": "1.1.0", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/@edx/brand-openedx/-/brand-openedx-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@openedx/brand-openedx/-/brand-openedx-1.2.2.tgz",
"integrity": "sha512-ne2ZKF1r0akkt0rEzCAQAk4cTDTI2GiWCpc+T7ldQpw9X57OnUB16dKsFNe40C9uEjL5h3Ps/ZsFM5dm4cIkEQ==" "integrity": "sha512-mBvxR7aB9290j9+h3d/9G8VkG1b8ecLSmlxc0vskfm7DL/fKUzFmHAj3PI7Z4kkwCQOL4QT5mJHJKC0ZFf7qvQ=="
}, },
"node_modules/@edx/browserslist-config": { "node_modules/@edx/browserslist-config": {
"version": "1.1.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@edx/browserslist-config/-/browserslist-config-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@edx/browserslist-config/-/browserslist-config-1.2.0.tgz",
"integrity": "sha512-2lxL2emt81vJZWa5ujil8yK2eBKVpbPMULI/ocqMuoJ6QVAKXcuonVGpzBHvKvliBzP14UDaF+yN5Ek/nUTByQ==", "integrity": "sha512-T1+6P52Yx7SMkmoIr4O0Q3m/DyRdrLTJbv1xVijdRLFEq1hqdafEs+Ln1423U5LSkTePb9AOkEtL1G0RZLFl1w==",
"dev": true "dev": true
}, },
"node_modules/@edx/eslint-config": { "node_modules/@edx/eslint-config": {
@@ -1882,64 +2057,67 @@
} }
}, },
"node_modules/@edx/frontend-build": { "node_modules/@edx/frontend-build": {
"version": "12.8.27", "version": "13.0.5",
"resolved": "https://registry.npmjs.org/@edx/frontend-build/-/frontend-build-12.8.27.tgz", "resolved": "https://registry.npmjs.org/@edx/frontend-build/-/frontend-build-13.0.5.tgz",
"integrity": "sha512-BpjghIVi+GHW2DmN4/9pxXhpqFmMr7A5T7NeJznrPiDvj+i3jo9p3EhPlscApvHtiHjU2cjtTQYRTbXjyrJzfA==", "integrity": "sha512-cGCw4deCTjLTt2kVoMKOOo+8HS+CSpRjlZBEln1Qfu/868PEB0IWM1E3c7d0rIlkR9kkt7s7WFpYxcs1fk7Ryw==",
"dependencies": { "dependencies": {
"@babel/cli": "7.21.5", "@babel/cli": "7.22.5",
"@babel/core": "7.21.8", "@babel/core": "7.22.5",
"@babel/eslint-parser": "7.21.8", "@babel/eslint-parser": "7.22.9",
"@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-proposal-object-rest-spread": "7.20.7",
"@babel/plugin-syntax-dynamic-import": "7.8.3", "@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/preset-env": "7.21.5", "@babel/preset-env": "7.22.5",
"@babel/preset-react": "7.18.6", "@babel/preset-react": "7.22.5",
"@edx/eslint-config": "3.2.0", "@edx/eslint-config": "3.2.0",
"@edx/new-relic-source-map-webpack-plugin": "2.0.0", "@edx/new-relic-source-map-webpack-plugin": "2.1.0",
"@fullhuman/postcss-purgecss": "^5.0.0", "@formatjs/cli": "^6.0.3",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10", "@fullhuman/postcss-purgecss": "5.0.0",
"@svgr/webpack": "7.0.0", "@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
"autoprefixer": "10.4.14", "@svgr/webpack": "8.1.0",
"autoprefixer": "10.4.16",
"babel-jest": "26.6.3", "babel-jest": "26.6.3",
"babel-loader": "9.1.2", "babel-loader": "9.1.3",
"babel-plugin-react-intl": "7.9.4", "babel-plugin-formatjs": "^10.4.0",
"babel-plugin-transform-imports": "2.0.0", "babel-plugin-transform-imports": "2.0.0",
"babel-polyfill": "6.26.0", "babel-polyfill": "6.26.0",
"chalk": "4.1.2",
"clean-webpack-plugin": "4.0.0", "clean-webpack-plugin": "4.0.0",
"css-loader": "5.2.7", "css-loader": "5.2.7",
"cssnano": "6.0.1", "cssnano": "6.0.1",
"dotenv": "8.6.0", "dotenv": "8.6.0",
"dotenv-webpack": "8.0.1", "dotenv-webpack": "8.0.1",
"eslint": "8.39.0", "eslint": "8.44.0",
"eslint-config-airbnb": "19.0.4", "eslint-config-airbnb": "19.0.4",
"eslint-plugin-import": "2.27.5", "eslint-plugin-import": "2.27.5",
"eslint-plugin-jsx-a11y": "6.7.1", "eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-react": "7.32.2", "eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-react-hooks": "4.6.0",
"express": "4.18.2",
"file-loader": "6.2.0", "file-loader": "6.2.0",
"html-webpack-plugin": "5.5.1", "html-webpack-plugin": "5.5.3",
"identity-obj-proxy": "3.0.0", "identity-obj-proxy": "3.0.0",
"image-minimizer-webpack-plugin": "3.8.2", "image-minimizer-webpack-plugin": "3.8.3",
"jest": "26.6.3", "jest": "26.6.3",
"mini-css-extract-plugin": "1.6.2", "mini-css-extract-plugin": "1.6.2",
"postcss": "8.4.23", "postcss": "8.4.31",
"postcss-custom-media": "^9.1.2", "postcss-custom-media": "10.0.2",
"postcss-loader": "7.3.0", "postcss-loader": "7.3.3",
"postcss-rtlcss": "4.0.6", "postcss-rtlcss": "4.0.8",
"react-dev-utils": "12.0.1", "react-dev-utils": "12.0.1",
"react-refresh": "0.14.0", "react-refresh": "0.14.0",
"resolve-url-loader": "5.0.0", "resolve-url-loader": "5.0.0",
"sass": "1.62.1", "sass": "1.65.1",
"sass-loader": "12.6.0", "sass-loader": "13.3.2",
"sharp": "^0.32.0", "sharp": "0.32.6",
"source-map-loader": "^4.0.1", "source-map-loader": "4.0.1",
"style-loader": "3.3.2", "style-loader": "3.3.3",
"url-loader": "4.1.1", "url-loader": "4.1.1",
"webpack": "5.82.0", "webpack": "5.89.0",
"webpack-bundle-analyzer": "4.8.0", "webpack-bundle-analyzer": "4.9.1",
"webpack-cli": "5.0.2", "webpack-cli": "5.1.4",
"webpack-dev-server": "4.13.3", "webpack-dev-server": "4.15.1",
"webpack-merge": "5.8.0" "webpack-merge": "5.9.0"
}, },
"bin": { "bin": {
"fedx-scripts": "bin/fedx-scripts.js" "fedx-scripts": "bin/fedx-scripts.js"
@@ -1948,24 +2126,6 @@
"react": "^16.9.0 || ^17.0.0" "react": "^16.9.0 || ^17.0.0"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/@formatjs/ts-transformer": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
"integrity": "sha512-mu7sHXZk1NWZrQ3eUqugpSYo8x5/tXkrI4uIbFqCEC0eNgQaIcoKgVeDFgDAcgG+cEme2atAUYSFF+DFWC4org==",
"dependencies": {
"intl-messageformat-parser": "6.1.2",
"tslib": "^2.0.1",
"typescript": "^4.0"
},
"peerDependencies": {
"ts-jest": "^26.4.0"
},
"peerDependenciesMeta": {
"ts-jest": {
"optional": true
}
}
},
"node_modules/@edx/frontend-build/node_modules/@jest/console": { "node_modules/@edx/frontend-build/node_modules/@jest/console": {
"version": "26.6.2", "version": "26.6.2",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz",
@@ -2020,42 +2180,6 @@
"node": ">= 10.14.2" "node": ">= 10.14.2"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/@jest/core/node_modules/jest-config": {
"version": "26.6.3",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
"integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
"dependencies": {
"@babel/core": "^7.1.0",
"@jest/test-sequencer": "^26.6.3",
"@jest/types": "^26.6.2",
"babel-jest": "^26.6.3",
"chalk": "^4.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
"jest-environment-jsdom": "^26.6.2",
"jest-environment-node": "^26.6.2",
"jest-get-type": "^26.3.0",
"jest-jasmine2": "^26.6.3",
"jest-regex-util": "^26.0.0",
"jest-resolve": "^26.6.2",
"jest-util": "^26.6.2",
"jest-validate": "^26.6.2",
"micromatch": "^4.0.2",
"pretty-format": "^26.6.2"
},
"engines": {
"node": ">= 10.14.2"
},
"peerDependencies": {
"ts-node": ">=9.0.0"
},
"peerDependenciesMeta": {
"ts-node": {
"optional": true
}
}
},
"node_modules/@edx/frontend-build/node_modules/@jest/environment": { "node_modules/@edx/frontend-build/node_modules/@jest/environment": {
"version": "26.6.2", "version": "26.6.2",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz",
@@ -2200,33 +2324,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1" "url": "https://github.com/chalk/ansi-styles?sponsor=1"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/babel-plugin-react-intl": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-7.9.4.tgz",
"integrity": "sha512-cMKrHEXrw43yT4M89Wbgq8A8N8lffSquj1Piwov/HVukR7jwOw8gf9btXNsQhT27ccyqEwy+M286JQYy0jby2g==",
"deprecated": "this package has been renamed to babel-plugin-formatjs",
"dependencies": {
"@babel/core": "^7.9.0",
"@babel/helper-plugin-utils": "^7.8.3",
"@babel/types": "^7.9.5",
"@formatjs/ts-transformer": "^2.6.0",
"@types/babel__core": "^7.1.7",
"@types/fs-extra": "^9.0.1",
"@types/schema-utils": "^2.4.0",
"fs-extra": "^9.0.0",
"intl-messageformat-parser": "^5.3.7",
"schema-utils": "^2.6.6"
}
},
"node_modules/@edx/frontend-build/node_modules/babel-plugin-react-intl/node_modules/intl-messageformat-parser": {
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-5.5.1.tgz",
"integrity": "sha512-TvB3LqF2VtP6yI6HXlRT5TxX98HKha6hCcrg9dwlPwNaedVNuQA9KgBdtWKgiyakyCTYHQ+KJeFEstNKfZr64w==",
"deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser",
"dependencies": {
"@formatjs/intl-numberformat": "^5.5.2"
}
},
"node_modules/@edx/frontend-build/node_modules/chalk": { "node_modules/@edx/frontend-build/node_modules/chalk": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2444,7 +2541,7 @@
"node": ">= 10.14.2" "node": ">= 10.14.2"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/jest-cli/node_modules/jest-config": { "node_modules/@edx/frontend-build/node_modules/jest-config": {
"version": "26.6.3", "version": "26.6.3",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
"integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
@@ -2707,42 +2804,6 @@
"node": ">= 10.14.2" "node": ">= 10.14.2"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/jest-runner/node_modules/jest-config": {
"version": "26.6.3",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
"integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
"dependencies": {
"@babel/core": "^7.1.0",
"@jest/test-sequencer": "^26.6.3",
"@jest/types": "^26.6.2",
"babel-jest": "^26.6.3",
"chalk": "^4.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
"jest-environment-jsdom": "^26.6.2",
"jest-environment-node": "^26.6.2",
"jest-get-type": "^26.3.0",
"jest-jasmine2": "^26.6.3",
"jest-regex-util": "^26.0.0",
"jest-resolve": "^26.6.2",
"jest-util": "^26.6.2",
"jest-validate": "^26.6.2",
"micromatch": "^4.0.2",
"pretty-format": "^26.6.2"
},
"engines": {
"node": ">= 10.14.2"
},
"peerDependencies": {
"ts-node": ">=9.0.0"
},
"peerDependenciesMeta": {
"ts-node": {
"optional": true
}
}
},
"node_modules/@edx/frontend-build/node_modules/jest-runtime": { "node_modules/@edx/frontend-build/node_modules/jest-runtime": {
"version": "26.6.3", "version": "26.6.3",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz",
@@ -2783,42 +2844,6 @@
"node": ">= 10.14.2" "node": ">= 10.14.2"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/jest-runtime/node_modules/jest-config": {
"version": "26.6.3",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz",
"integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==",
"dependencies": {
"@babel/core": "^7.1.0",
"@jest/test-sequencer": "^26.6.3",
"@jest/types": "^26.6.2",
"babel-jest": "^26.6.3",
"chalk": "^4.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
"graceful-fs": "^4.2.4",
"jest-environment-jsdom": "^26.6.2",
"jest-environment-node": "^26.6.2",
"jest-get-type": "^26.3.0",
"jest-jasmine2": "^26.6.3",
"jest-regex-util": "^26.0.0",
"jest-resolve": "^26.6.2",
"jest-util": "^26.6.2",
"jest-validate": "^26.6.2",
"micromatch": "^4.0.2",
"pretty-format": "^26.6.2"
},
"engines": {
"node": ">= 10.14.2"
},
"peerDependencies": {
"ts-node": ">=9.0.0"
},
"peerDependenciesMeta": {
"ts-node": {
"optional": true
}
}
},
"node_modules/@edx/frontend-build/node_modules/jest-snapshot": { "node_modules/@edx/frontend-build/node_modules/jest-snapshot": {
"version": "26.6.2", "version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz",
@@ -2846,9 +2871,9 @@
} }
}, },
"node_modules/@edx/frontend-build/node_modules/jest-snapshot/node_modules/semver": { "node_modules/@edx/frontend-build/node_modules/jest-snapshot/node_modules/semver": {
"version": "7.5.1", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@@ -2996,23 +3021,6 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/@edx/frontend-build/node_modules/schema-utils": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
"integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
"dependencies": {
"@types/json-schema": "^7.0.5",
"ajv": "^6.12.4",
"ajv-keywords": "^3.5.2"
},
"engines": {
"node": ">= 8.9.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
}
},
"node_modules/@edx/frontend-build/node_modules/slash": { "node_modules/@edx/frontend-build/node_modules/slash": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -3045,11 +3053,6 @@
"resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
"integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
}, },
"node_modules/@edx/frontend-build/node_modules/tslib": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA=="
},
"node_modules/@edx/frontend-build/node_modules/v8-to-istanbul": { "node_modules/@edx/frontend-build/node_modules/v8-to-istanbul": {
"version": "7.1.2", "version": "7.1.2",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz",
@@ -3123,79 +3126,42 @@
} }
}, },
"node_modules/@edx/frontend-component-footer": { "node_modules/@edx/frontend-component-footer": {
"version": "12.1.0", "version": "12.5.1",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-12.1.0.tgz", "resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-12.5.1.tgz",
"integrity": "sha512-yF2GHwb9dzaYVSNGS7ps92hFCfh3ZChf+gPO+rFYq0cRsRENFV2UV9tlfBKSiwqiu19JZCpepp4tSIIg7QUOgg==", "integrity": "sha512-bLXfSDyyf8z+n4VXkraQ98qhkc+ZXuvRy65kXUE3s560oDv0qdiKU054W8uPY6wtsdu4WQ50C/Mluxzd60UKUg==",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "6.4.0", "@edx/paragon": "^21.3.1",
"@fortawesome/free-brands-svg-icons": "6.4.0", "@fortawesome/fontawesome-svg-core": "6.4.2",
"@fortawesome/free-regular-svg-icons": "6.4.0", "@fortawesome/free-brands-svg-icons": "6.4.2",
"@fortawesome/free-solid-svg-icons": "6.4.0", "@fortawesome/free-regular-svg-icons": "6.4.2",
"@fortawesome/react-fontawesome": "0.2.0" "@fortawesome/free-solid-svg-icons": "6.4.2",
"@fortawesome/react-fontawesome": "0.2.0",
"lodash": "^4.17.21"
}, },
"peerDependencies": { "peerDependencies": {
"@edx/frontend-platform": "^4.0.0", "@edx/frontend-platform": "^4.0.0 || ^5.0.0 || ^6.0.0",
"prop-types": "^15.5.10", "prop-types": "^15.5.10",
"react": "^16.9.0 || ^17.0.0", "react": "^16.9.0 || ^17.0.0",
"react-dom": "^16.9.0 || ^17.0.0" "react-dom": "^16.9.0 || ^17.0.0"
} }
}, },
"node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/react-fontawesome": { "node_modules/@edx/frontend-component-footer/node_modules/@edx/paragon": {
"version": "0.2.0", "version": "21.5.6",
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-21.5.6.tgz",
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", "integrity": "sha512-CWR9mFBQAnZ29GeP8igPk3dBLgIQmZJ6tZQiou6855TjHIXcvgmbIvtchKw9SgzhW+D5B0hQJet94zsm+GG/Rg==",
"dependencies": {
"prop-types": "^15.8.1"
},
"peerDependencies": {
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
"react": ">=16.3"
}
},
"node_modules/@edx/frontend-component-header": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-4.3.0.tgz",
"integrity": "sha512-NqeqRqxKsSZ4LKj+pVTfcbUagtFh4atBPRDuWxJoCyV4KTaTkn/WBYRGf4D6MSvo8xHJUgVXu9ZDmxdMhRWyew==",
"dependencies": {
"@edx/paragon": "20.45.0",
"@fortawesome/fontawesome-svg-core": "6.4.0",
"@fortawesome/free-brands-svg-icons": "6.4.0",
"@fortawesome/free-regular-svg-icons": "6.4.0",
"@fortawesome/free-solid-svg-icons": "6.4.0",
"@fortawesome/react-fontawesome": "^0.2.0",
"@reduxjs/toolkit": "1.9.5",
"axios-mock-adapter": "1.21.5",
"babel-polyfill": "6.26.0",
"classnames": "2.3.2",
"lodash": "4.17.21",
"react-redux": "7.2.9",
"react-responsive": "8.2.0",
"react-router-dom": "5.3.4",
"react-transition-group": "4.4.5",
"rosie": "2.1.0",
"timeago.js": "4.0.2"
},
"peerDependencies": {
"@edx/frontend-platform": "^4.0.0",
"prop-types": "^15.5.10",
"react": "^16.9.0 || ^17.0.0",
"react-dom": "^16.9.0 || ^17.0.0"
}
},
"node_modules/@edx/frontend-component-header/node_modules/@edx/paragon": {
"version": "20.45.0",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.45.0.tgz",
"integrity": "sha512-9lHcnSJ36sQ+bsYFhydf/Pvp3Bo5N3go8R3ORPTNtvYnwiKSfjlv11QpURC/xHobXsT2eYHiwl2gNmq1yP09BA==",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1", "@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",
"bootstrap": "^4.6.2", "bootstrap": "^4.6.2",
"chalk": "^4.1.2",
"child_process": "^1.0.2",
"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", "file-selector": "^0.6.0",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"glob": "^8.0.3", "glob": "^8.0.3",
"inquirer": "^8.2.5",
"lodash.uniqby": "^4.7.0", "lodash.uniqby": "^4.7.0",
"mailto-link": "^2.0.0", "mailto-link": "^2.0.0",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
@@ -3213,10 +3179,216 @@
"uncontrollable": "^7.2.1", "uncontrollable": "^7.2.1",
"uuid": "^9.0.0" "uuid": "^9.0.0"
}, },
"bin": {
"paragon": "bin/paragon-scripts.js"
},
"peerDependencies": { "peerDependencies": {
"react": "^16.8.6 || ^17.0.0", "react": "^16.8.6 || ^17.0.0",
"react-dom": "^16.8.6 || ^17.0.0", "react-dom": "^16.8.6 || ^17.0.0",
"react-intl": "^5.25.1" "react-intl": "^5.25.1 || ^6.4.0"
}
},
"node_modules/@edx/frontend-component-footer/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-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-footer/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/@edx/frontend-component-footer/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-footer/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@edx/frontend-component-footer/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/@edx/frontend-component-footer/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/@edx/frontend-component-footer/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-footer/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/@edx/frontend-component-footer/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-footer/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@edx/frontend-component-footer/node_modules/uuid": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@edx/frontend-component-header": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-4.9.1.tgz",
"integrity": "sha512-OcCWkdRNihZhT5WkZcKRjHCeD883TACIUi27921g5LG2/7+++9EUG74JGtVDYklk0JCuhr0M9tD87YM4BySlaA==",
"dependencies": {
"@edx/paragon": "21.5.6",
"@fortawesome/fontawesome-svg-core": "6.4.2",
"@fortawesome/free-brands-svg-icons": "6.4.2",
"@fortawesome/free-regular-svg-icons": "6.4.2",
"@fortawesome/free-solid-svg-icons": "6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"axios-mock-adapter": "1.22.0",
"babel-polyfill": "6.26.0",
"react-responsive": "8.2.0",
"react-transition-group": "4.4.5"
},
"peerDependencies": {
"@edx/frontend-platform": "^4.0.0 || ^5.0.0 || ^6.0.0",
"prop-types": "^15.5.10",
"react": "^16.9.0 || ^17.0.0",
"react-dom": "^16.9.0 || ^17.0.0"
}
},
"node_modules/@edx/frontend-component-header/node_modules/@edx/paragon": {
"version": "21.5.6",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-21.5.6.tgz",
"integrity": "sha512-CWR9mFBQAnZ29GeP8igPk3dBLgIQmZJ6tZQiou6855TjHIXcvgmbIvtchKw9SgzhW+D5B0hQJet94zsm+GG/Rg==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@popperjs/core": "^2.11.4",
"bootstrap": "^4.6.2",
"chalk": "^4.1.2",
"child_process": "^1.0.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",
"inquirer": "^8.2.5",
"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"
},
"bin": {
"paragon": "bin/paragon-scripts.js"
},
"peerDependencies": {
"react": "^16.8.6 || ^17.0.0",
"react-dom": "^16.8.6 || ^17.0.0",
"react-intl": "^5.25.1 || ^6.4.0"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/@edx/paragon/node_modules/@fortawesome/react-fontawesome": { "node_modules/@edx/frontend-component-header/node_modules/@edx/paragon/node_modules/@fortawesome/react-fontawesome": {
@@ -3243,39 +3415,18 @@
"react": ">=16.3" "react": ">=16.3"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/@reduxjs/toolkit": { "node_modules/@edx/frontend-component-header/node_modules/ansi-styles": {
"version": "1.9.5", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": { "dependencies": {
"immer": "^9.0.21", "color-convert": "^2.0.1"
"redux": "^4.2.1",
"redux-thunk": "^2.4.2",
"reselect": "^4.1.8"
}, },
"peerDependencies": { "engines": {
"react": "^16.9.0 || ^17.0.0 || ^18", "node": ">=8"
"react-redux": "^7.2.1 || ^8.0.2"
}, },
"peerDependenciesMeta": { "funding": {
"react": { "url": "https://github.com/chalk/ansi-styles?sponsor=1"
"optional": true
},
"react-redux": {
"optional": true
}
}
},
"node_modules/@edx/frontend-component-header/node_modules/axios-mock-adapter": {
"version": "1.21.5",
"resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.21.5.tgz",
"integrity": "sha512-5NI1V/VK+8+JeTF8niqOowuysA4b8mGzdlMN/QnTnoXbYh4HZSNiopsDclN2g/m85+G++IrEtUdZaQ3GnaMsSA==",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"is-buffer": "^2.0.5"
},
"peerDependencies": {
"axios": ">= 0.17.0"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/brace-expansion": { "node_modules/@edx/frontend-component-header/node_modules/brace-expansion": {
@@ -3286,10 +3437,36 @@
"balanced-match": "^1.0.0" "balanced-match": "^1.0.0"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/classnames": { "node_modules/@edx/frontend-component-header/node_modules/chalk": {
"version": "2.3.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@edx/frontend-component-header/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/@edx/frontend-component-header/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}, },
"node_modules/@edx/frontend-component-header/node_modules/glob": { "node_modules/@edx/frontend-component-header/node_modules/glob": {
"version": "8.1.0", "version": "8.1.0",
@@ -3309,6 +3486,14 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/@edx/frontend-component-header/node_modules/minimatch": { "node_modules/@edx/frontend-component-header/node_modules/minimatch": {
"version": "5.1.6", "version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -3320,67 +3505,33 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/react-router": { "node_modules/@edx/frontend-component-header/node_modules/supports-color": {
"version": "5.3.4", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.12.13", "has-flag": "^4.0.0"
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
}, },
"peerDependencies": { "engines": {
"react": ">=15" "node": ">=8"
}
},
"node_modules/@edx/frontend-component-header/node_modules/react-router-dom": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
"integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"loose-envify": "^1.3.1",
"prop-types": "^15.6.2",
"react-router": "5.3.4",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"peerDependencies": {
"react": ">=15"
}
},
"node_modules/@edx/frontend-component-header/node_modules/react-router/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/@edx/frontend-component-header/node_modules/redux": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
"integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
"dependencies": {
"@babel/runtime": "^7.9.2"
} }
}, },
"node_modules/@edx/frontend-component-header/node_modules/uuid": { "node_modules/@edx/frontend-component-header/node_modules/uuid": {
"version": "9.0.0", "version": "9.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
"bin": { "bin": {
"uuid": "dist/bin/uuid" "uuid": "dist/bin/uuid"
} }
}, },
"node_modules/@edx/frontend-platform": { "node_modules/@edx/frontend-platform": {
"version": "4.6.0", "version": "4.6.3",
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-4.6.0.tgz", "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-4.6.3.tgz",
"integrity": "sha512-NZ1I3BgUZl7bqvDwSnnL+LxqZOdOUGZU55KiwvknqiKU8RS5Lx9tc4arp+NcX1u58xy/Xbinv+mriSO6PPxQNQ==", "integrity": "sha512-vvmg2rWfjdOD9BKcHiFlV3n4kVGqMGUYS0UrIk8Dx7BYbb7It03q/twe5b2D3PHQwvNCTei9EgX8+Tn1QhkXBA==",
"dependencies": { "dependencies": {
"@cospired/i18n-iso-languages": "4.1.0", "@cospired/i18n-iso-languages": "4.1.0",
"@formatjs/intl-pluralrules": "4.3.3", "@formatjs/intl-pluralrules": "4.3.3",
@@ -3407,8 +3558,8 @@
"transifex-utils.js": "i18n/scripts/transifex-utils.js" "transifex-utils.js": "i18n/scripts/transifex-utils.js"
}, },
"peerDependencies": { "peerDependencies": {
"@edx/frontend-build": ">= 8.1.0", "@edx/frontend-build": ">= 8.1.0 || ^12.9.0-alpha.1",
"@edx/paragon": ">= 10.0.0 < 21.0.0", "@edx/paragon": ">= 10.0.0 < 22.0.0",
"prop-types": "^15.7.2", "prop-types": "^15.7.2",
"react": "^16.9.0 || ^17.0.0", "react": "^16.9.0 || ^17.0.0",
"react-dom": "^16.9.0 || ^17.0.0", "react-dom": "^16.9.0 || ^17.0.0",
@@ -3459,9 +3610,9 @@
} }
}, },
"node_modules/@edx/new-relic-source-map-webpack-plugin": { "node_modules/@edx/new-relic-source-map-webpack-plugin": {
"version": "2.0.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@edx/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-2.0.0.tgz", "resolved": "https://registry.npmjs.org/@edx/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-2.1.0.tgz",
"integrity": "sha512-ispqqc28EyIe3iASDAVoEDEYovsw7GS8RwHw6q9QN5CIzv8qA8zMz2PblH9X2dPauBcR3G4BZXXC/fT1EOcFEg==", "integrity": "sha512-OrlvtdsPcWuOm6NBWfUxFE06qdPiu2bf9nU4I9t8Lu7WW6NsosAB5hxm5U+MBMZP2AuVl3FAt0k0lZsu3+ri8Q==",
"dependencies": { "dependencies": {
"@newrelic/publish-sourcemap": "^5.0.1" "@newrelic/publish-sourcemap": "^5.0.1"
} }
@@ -3549,40 +3700,104 @@
} }
}, },
"node_modules/@edx/reactifex": { "node_modules/@edx/reactifex": {
"version": "1.0.3", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@edx/reactifex/-/reactifex-1.0.3.tgz", "resolved": "https://registry.npmjs.org/@edx/reactifex/-/reactifex-1.1.0.tgz",
"integrity": "sha512-zJjD3ym4KOQ2sa+lwR08jgospMyiRTSRqK6Mxi1VMQ+sqxZxWFCGymV+mqLRPHPAJ/z+qhblsVuWeb0N9qI5ww==", "integrity": "sha512-tXIB+lxTKNsWeMrlJ+NXAiBgvuJ7OVLxzdGMPVYPOL8Xh3BJ/S7CC1/foV8iKl0859UwshLPTAUCOn4NhgGDvw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.1",
"yargs": "^17.1.1" "yargs": "^17.1.1"
}, },
"bin": { "bin": {
"reactifex": "main.js" "edx_reactifex": "main.js"
}
},
"node_modules/@edx/reactifex/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/@edx/reactifex/node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@edx/reactifex/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/@edx/reactifex/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"node_modules/@edx/reactifex/node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
} }
}, },
"node_modules/@edx/reactifex/node_modules/yargs": { "node_modules/@edx/reactifex/node_modules/yargs": {
"version": "17.5.1", "version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cliui": "^7.0.2", "cliui": "^8.0.1",
"escalade": "^3.1.1", "escalade": "^3.1.1",
"get-caller-file": "^2.0.5", "get-caller-file": "^2.0.5",
"require-directory": "^2.1.1", "require-directory": "^2.1.1",
"string-width": "^4.2.3", "string-width": "^4.2.3",
"y18n": "^5.0.5", "y18n": "^5.0.5",
"yargs-parser": "^21.0.0" "yargs-parser": "^21.1.1"
}, },
"engines": { "engines": {
"node": ">=12" "node": ">=12"
} }
}, },
"node_modules/@edx/reactifex/node_modules/yargs-parser": { "node_modules/@edx/reactifex/node_modules/yargs-parser": {
"version": "21.0.1", "version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
@@ -3622,13 +3837,13 @@
} }
}, },
"node_modules/@eslint/eslintrc": { "node_modules/@eslint/eslintrc": {
"version": "2.0.3", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
"integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
"dependencies": { "dependencies": {
"ajv": "^6.12.4", "ajv": "^6.12.4",
"debug": "^4.3.2", "debug": "^4.3.2",
"espree": "^9.5.2", "espree": "^9.6.0",
"globals": "^13.19.0", "globals": "^13.19.0",
"ignore": "^5.2.0", "ignore": "^5.2.0",
"import-fresh": "^3.2.1", "import-fresh": "^3.2.1",
@@ -3649,9 +3864,9 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
}, },
"node_modules/@eslint/eslintrc/node_modules/globals": { "node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.20.0", "version": "13.22.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
"integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
"dependencies": { "dependencies": {
"type-fest": "^0.20.2" "type-fest": "^0.20.2"
}, },
@@ -3685,17 +3900,37 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.39.0", "version": "8.44.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz",
"integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==",
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
} }
}, },
"node_modules/@formatjs/cli": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.2.0.tgz",
"integrity": "sha512-sP04UpocRHYwSovUnunAZHYvCTVbNcaLtWKnr1lETGRUnRRQqnXy/3d2Ce271ELXmNUSde2eHRdu4rv2XaVaiQ==",
"bin": {
"formatjs": "bin/formatjs"
},
"engines": {
"node": ">= 16"
},
"peerDependencies": {
"vue": "^3.3.4"
},
"peerDependenciesMeta": {
"vue": {
"optional": true
}
}
},
"node_modules/@formatjs/ecma402-abstract": { "node_modules/@formatjs/ecma402-abstract": {
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz",
"integrity": "sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==", "integrity": "sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==",
"dev": true,
"dependencies": { "dependencies": {
"tslib": "^2.0.1" "tslib": "^2.0.1"
} }
@@ -3703,7 +3938,8 @@
"node_modules/@formatjs/ecma402-abstract/node_modules/tslib": { "node_modules/@formatjs/ecma402-abstract/node_modules/tslib": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
"dev": true
}, },
"node_modules/@formatjs/fast-memoize": { "node_modules/@formatjs/fast-memoize": {
"version": "1.2.1", "version": "1.2.1",
@@ -3848,28 +4084,6 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}, },
"node_modules/@formatjs/intl-numberformat": {
"version": "5.7.6",
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
"integrity": "sha512-ZlZfYtvbVHYZY5OG3RXizoCwxKxEKOrzEe2YOw9wbzoxF3PmFn0SAgojCFGLyNXkkR6xVxlylhbuOPf1dkIVNg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.4.0",
"tslib": "^2.0.1"
}
},
"node_modules/@formatjs/intl-numberformat/node_modules/@formatjs/ecma402-abstract": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz",
"integrity": "sha512-Mv027hcLFjE45K8UJ8PjRpdDGfR0aManEFj1KzoN8zXNveHGEygpZGfFf/FTTMl+QEVSrPAUlyxaCApvmv47AQ==",
"dependencies": {
"tslib": "^2.0.1"
}
},
"node_modules/@formatjs/intl-numberformat/node_modules/tslib": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA=="
},
"node_modules/@formatjs/intl-pluralrules": { "node_modules/@formatjs/intl-pluralrules": {
"version": "4.3.3", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz", "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz",
@@ -3933,57 +4147,57 @@
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}, },
"node_modules/@fortawesome/fontawesome-common-types": { "node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz",
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==", "integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==",
"hasInstallScript": true, "hasInstallScript": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/fontawesome-svg-core": { "node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz",
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==", "integrity": "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-brands-svg-icons": { "node_modules/@fortawesome/free-brands-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz",
"integrity": "sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==", "integrity": "sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-regular-svg-icons": { "node_modules/@fortawesome/free-regular-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz",
"integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==", "integrity": "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-solid-svg-icons": { "node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz",
"integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==", "integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
@@ -4013,9 +4227,9 @@
} }
}, },
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.11.8", "version": "0.11.11",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
"integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
"dependencies": { "dependencies": {
"@humanwhocodes/object-schema": "^1.2.1", "@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1", "debug": "^4.1.1",
@@ -5731,9 +5945,9 @@
} }
}, },
"node_modules/@pmmmwh/react-refresh-webpack-plugin": { "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
"version": "0.5.10", "version": "0.5.11",
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz",
"integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==",
"dependencies": { "dependencies": {
"ansi-html-community": "^0.0.8", "ansi-html-community": "^0.0.8",
"common-path-prefix": "^3.0.0", "common-path-prefix": "^3.0.0",
@@ -5752,7 +5966,7 @@
"@types/webpack": "4.x || 5.x", "@types/webpack": "4.x || 5.x",
"react-refresh": ">=0.10.0 <1.0.0", "react-refresh": ">=0.10.0 <1.0.0",
"sockjs-client": "^1.4.0", "sockjs-client": "^1.4.0",
"type-fest": ">=0.17.0 <4.0.0", "type-fest": ">=0.17.0 <5.0.0",
"webpack": ">=4.43.0 <6.0.0", "webpack": ">=4.43.0 <6.0.0",
"webpack-dev-server": "3.x || 4.x", "webpack-dev-server": "3.x || 4.x",
"webpack-hot-middleware": "2.x", "webpack-hot-middleware": "2.x",
@@ -5779,23 +5993,10 @@
} }
} }
}, },
"node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/loader-utils": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
},
"engines": {
"node": ">=8.9.0"
}
},
"node_modules/@polka/url": { "node_modules/@polka/url": {
"version": "1.0.0-next.21", "version": "1.0.0-next.23",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz",
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg=="
}, },
"node_modules/@popperjs/core": { "node_modules/@popperjs/core": {
"version": "2.11.8", "version": "2.11.8",
@@ -5866,9 +6067,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-add-jsx-attribute": { "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
"integrity": "sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5881,9 +6082,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-remove-jsx-attribute": { "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
"integrity": "sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5896,9 +6097,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
"integrity": "sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5911,9 +6112,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
"integrity": "sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5926,9 +6127,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-svg-dynamic-title": { "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
"integrity": "sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5941,9 +6142,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-svg-em-dimensions": { "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
"integrity": "sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5956,9 +6157,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-transform-react-native-svg": { "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
"integrity": "sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==", "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
}, },
@@ -5971,9 +6172,9 @@
} }
}, },
"node_modules/@svgr/babel-plugin-transform-svg-component": { "node_modules/@svgr/babel-plugin-transform-svg-component": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
"integrity": "sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -5986,18 +6187,18 @@
} }
}, },
"node_modules/@svgr/babel-preset": { "node_modules/@svgr/babel-preset": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
"integrity": "sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ==", "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
"dependencies": { "dependencies": {
"@svgr/babel-plugin-add-jsx-attribute": "^7.0.0", "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
"@svgr/babel-plugin-remove-jsx-attribute": "^7.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
"@svgr/babel-plugin-remove-jsx-empty-expression": "^7.0.0", "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
"@svgr/babel-plugin-replace-jsx-attribute-value": "^7.0.0", "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
"@svgr/babel-plugin-svg-dynamic-title": "^7.0.0", "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
"@svgr/babel-plugin-svg-em-dimensions": "^7.0.0", "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
"@svgr/babel-plugin-transform-react-native-svg": "^7.0.0", "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
"@svgr/babel-plugin-transform-svg-component": "^7.0.0" "@svgr/babel-plugin-transform-svg-component": "8.0.0"
}, },
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@@ -6011,14 +6212,15 @@
} }
}, },
"node_modules/@svgr/core": { "node_modules/@svgr/core": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
"integrity": "sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw==", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
"dependencies": { "dependencies": {
"@babel/core": "^7.21.3", "@babel/core": "^7.21.3",
"@svgr/babel-preset": "^7.0.0", "@svgr/babel-preset": "8.1.0",
"camelcase": "^6.2.0", "camelcase": "^6.2.0",
"cosmiconfig": "^8.1.3" "cosmiconfig": "^8.1.3",
"snake-case": "^3.0.4"
}, },
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@@ -6028,10 +6230,65 @@
"url": "https://github.com/sponsors/gregberge" "url": "https://github.com/sponsors/gregberge"
} }
}, },
"node_modules/@svgr/core/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/@svgr/core/node_modules/cosmiconfig": {
"version": "8.3.6",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
"integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dependencies": {
"import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
"parse-json": "^5.2.0",
"path-type": "^4.0.0"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"typescript": ">=4.9.5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@svgr/core/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/@svgr/core/node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"optional": true,
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/@svgr/hast-util-to-babel-ast": { "node_modules/@svgr/hast-util-to-babel-ast": {
"version": "7.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
"integrity": "sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ==", "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
"dependencies": { "dependencies": {
"@babel/types": "^7.21.3", "@babel/types": "^7.21.3",
"entities": "^4.4.0" "entities": "^4.4.0"
@@ -6045,13 +6302,13 @@
} }
}, },
"node_modules/@svgr/plugin-jsx": { "node_modules/@svgr/plugin-jsx": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
"integrity": "sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw==", "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
"dependencies": { "dependencies": {
"@babel/core": "^7.21.3", "@babel/core": "^7.21.3",
"@svgr/babel-preset": "^7.0.0", "@svgr/babel-preset": "8.1.0",
"@svgr/hast-util-to-babel-ast": "^7.0.0", "@svgr/hast-util-to-babel-ast": "8.0.0",
"svg-parser": "^2.0.4" "svg-parser": "^2.0.4"
}, },
"engines": { "engines": {
@@ -6060,12 +6317,15 @@
"funding": { "funding": {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/gregberge" "url": "https://github.com/sponsors/gregberge"
},
"peerDependencies": {
"@svgr/core": "*"
} }
}, },
"node_modules/@svgr/plugin-svgo": { "node_modules/@svgr/plugin-svgo": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
"integrity": "sha512-263znzlu3qTKj71/ot5G9l2vpL4CW+pr2IexBFIwwB+fRAXE9Xnw2rUFgE6P4+37N9siOuC4lKkgBfUCOLFRKQ==", "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
"dependencies": { "dependencies": {
"cosmiconfig": "^8.1.3", "cosmiconfig": "^8.1.3",
"deepmerge": "^4.3.1", "deepmerge": "^4.3.1",
@@ -6082,19 +6342,74 @@
"@svgr/core": "*" "@svgr/core": "*"
} }
}, },
"node_modules/@svgr/plugin-svgo/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": {
"version": "8.3.6",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
"integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dependencies": {
"import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
"parse-json": "^5.2.0",
"path-type": "^4.0.0"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"typescript": ">=4.9.5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@svgr/plugin-svgo/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/@svgr/plugin-svgo/node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"optional": true,
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/@svgr/webpack": { "node_modules/@svgr/webpack": {
"version": "7.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
"integrity": "sha512-XWzIhLTr5WYns/cNFXpXrmFy+LFf2xp60VnNUBZCpM1CGTx47FCDuUj2DQjxirMf2L6CP2jTRELK8ef01TecFQ==", "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
"dependencies": { "dependencies": {
"@babel/core": "^7.21.3", "@babel/core": "^7.21.3",
"@babel/plugin-transform-react-constant-elements": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3",
"@babel/preset-env": "^7.20.2", "@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6", "@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.21.0", "@babel/preset-typescript": "^7.21.0",
"@svgr/core": "^7.0.0", "@svgr/core": "8.1.0",
"@svgr/plugin-jsx": "^7.0.0", "@svgr/plugin-jsx": "8.1.0",
"@svgr/plugin-svgo": "^7.0.0" "@svgr/plugin-svgo": "8.1.0"
}, },
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@@ -6194,16 +6509,16 @@
} }
}, },
"node_modules/@testing-library/jest-dom": { "node_modules/@testing-library/jest-dom": {
"version": "5.16.2", "version": "5.17.0",
"resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
"integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@adobe/css-tools": "^4.0.1",
"@babel/runtime": "^7.9.2", "@babel/runtime": "^7.9.2",
"@types/testing-library__jest-dom": "^5.9.1", "@types/testing-library__jest-dom": "^5.9.1",
"aria-query": "^5.0.0", "aria-query": "^5.0.0",
"chalk": "^3.0.0", "chalk": "^3.0.0",
"css": "^3.0.0",
"css.escape": "^1.5.1", "css.escape": "^1.5.1",
"dom-accessibility-api": "^0.5.6", "dom-accessibility-api": "^0.5.6",
"lodash": "^4.17.15", "lodash": "^4.17.15",
@@ -6371,6 +6686,14 @@
"@babel/types": "^7.0.0" "@babel/types": "^7.0.0"
} }
}, },
"node_modules/@types/babel__helper-plugin-utils": {
"version": "7.10.1",
"resolved": "https://registry.npmjs.org/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.1.tgz",
"integrity": "sha512-6RaT7i6r2rT6ouIDZ2Cd6dPkq4wn1F8pLyDO+7wPVsL1dodvORiZORImaD6j9FBcHjPGuERE0hhtwkuPNXsO0A==",
"dependencies": {
"@types/babel__core": "*"
}
},
"node_modules/@types/babel__template": { "node_modules/@types/babel__template": {
"version": "7.4.1", "version": "7.4.1",
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
@@ -6389,34 +6712,34 @@
} }
}, },
"node_modules/@types/body-parser": { "node_modules/@types/body-parser": {
"version": "1.19.2", "version": "1.19.3",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz",
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==",
"dependencies": { "dependencies": {
"@types/connect": "*", "@types/connect": "*",
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/bonjour": { "node_modules/@types/bonjour": {
"version": "3.5.10", "version": "3.5.11",
"resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.11.tgz",
"integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "integrity": "sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/connect": { "node_modules/@types/connect": {
"version": "3.4.35", "version": "3.4.36",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz",
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/connect-history-api-fallback": { "node_modules/@types/connect-history-api-fallback": {
"version": "1.5.0", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz",
"integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==",
"dependencies": { "dependencies": {
"@types/express-serve-static-core": "*", "@types/express-serve-static-core": "*",
"@types/node": "*" "@types/node": "*"
@@ -6451,9 +6774,9 @@
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
}, },
"node_modules/@types/express": { "node_modules/@types/express": {
"version": "4.17.17", "version": "4.17.18",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz",
"integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==",
"dependencies": { "dependencies": {
"@types/body-parser": "*", "@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33", "@types/express-serve-static-core": "^4.17.33",
@@ -6462,9 +6785,9 @@
} }
}, },
"node_modules/@types/express-serve-static-core": { "node_modules/@types/express-serve-static-core": {
"version": "4.17.35", "version": "4.17.37",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz",
"integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==",
"dependencies": { "dependencies": {
"@types/node": "*", "@types/node": "*",
"@types/qs": "*", "@types/qs": "*",
@@ -6472,14 +6795,6 @@
"@types/send": "*" "@types/send": "*"
} }
}, },
"node_modules/@types/fs-extra": {
"version": "9.0.13",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
"integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/glob": { "node_modules/@types/glob": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@@ -6511,10 +6826,15 @@
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
}, },
"node_modules/@types/http-errors": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz",
"integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg=="
},
"node_modules/@types/http-proxy": { "node_modules/@types/http-proxy": {
"version": "1.17.11", "version": "1.17.12",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.12.tgz",
"integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "integrity": "sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
@@ -6560,15 +6880,20 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
}, },
"node_modules/@types/json-stable-stringify": {
"version": "1.0.34",
"resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz",
"integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw=="
},
"node_modules/@types/json5": { "node_modules/@types/json5": {
"version": "0.0.29", "version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
}, },
"node_modules/@types/mime": { "node_modules/@types/mime": {
"version": "1.3.2", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz",
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg=="
}, },
"node_modules/@types/minimatch": { "node_modules/@types/minimatch": {
"version": "5.1.2", "version": "5.1.2",
@@ -6601,14 +6926,14 @@
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
}, },
"node_modules/@types/qs": { "node_modules/@types/qs": {
"version": "6.9.7", "version": "6.9.8",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz",
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg=="
}, },
"node_modules/@types/range-parser": { "node_modules/@types/range-parser": {
"version": "1.2.4", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz",
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA=="
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "18.0.12", "version": "18.0.12",
@@ -6674,40 +6999,42 @@
"resolved": "https://registry.npmjs.org/@types/schema-utils/-/schema-utils-2.4.0.tgz", "resolved": "https://registry.npmjs.org/@types/schema-utils/-/schema-utils-2.4.0.tgz",
"integrity": "sha512-454hrj5gz/FXcUE20ygfEiN4DxZ1sprUo0V1gqIqkNZ/CzoEzAZEll2uxMsuyz6BYjiQan4Aa65xbTemfzW9hQ==", "integrity": "sha512-454hrj5gz/FXcUE20ygfEiN4DxZ1sprUo0V1gqIqkNZ/CzoEzAZEll2uxMsuyz6BYjiQan4Aa65xbTemfzW9hQ==",
"deprecated": "This is a stub types definition. schema-utils provides its own type definitions, so you do not need this installed.", "deprecated": "This is a stub types definition. schema-utils provides its own type definitions, so you do not need this installed.",
"dev": true,
"dependencies": { "dependencies": {
"schema-utils": "*" "schema-utils": "*"
} }
}, },
"node_modules/@types/send": { "node_modules/@types/send": {
"version": "0.17.1", "version": "0.17.2",
"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz",
"integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==",
"dependencies": { "dependencies": {
"@types/mime": "^1", "@types/mime": "^1",
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/serve-index": { "node_modules/@types/serve-index": {
"version": "1.9.1", "version": "1.9.2",
"resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.2.tgz",
"integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "integrity": "sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==",
"dependencies": { "dependencies": {
"@types/express": "*" "@types/express": "*"
} }
}, },
"node_modules/@types/serve-static": { "node_modules/@types/serve-static": {
"version": "1.15.1", "version": "1.15.3",
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz",
"integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==",
"dependencies": { "dependencies": {
"@types/http-errors": "*",
"@types/mime": "*", "@types/mime": "*",
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/sockjs": { "node_modules/@types/sockjs": {
"version": "0.3.33", "version": "0.3.34",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.34.tgz",
"integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "integrity": "sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
@@ -6732,9 +7059,9 @@
"integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
}, },
"node_modules/@types/ws": { "node_modules/@types/ws": {
"version": "8.5.4", "version": "8.5.6",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.6.tgz",
"integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "integrity": "sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
@@ -6884,9 +7211,9 @@
} }
}, },
"node_modules/@webpack-cli/configtest": { "node_modules/@webpack-cli/configtest": {
"version": "2.1.0", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
"integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"engines": { "engines": {
"node": ">=14.15.0" "node": ">=14.15.0"
}, },
@@ -6896,9 +7223,9 @@
} }
}, },
"node_modules/@webpack-cli/info": { "node_modules/@webpack-cli/info": {
"version": "2.0.1", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
"integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"engines": { "engines": {
"node": ">=14.15.0" "node": ">=14.15.0"
}, },
@@ -6908,9 +7235,9 @@
} }
}, },
"node_modules/@webpack-cli/serve": { "node_modules/@webpack-cli/serve": {
"version": "2.0.4", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
"integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"engines": { "engines": {
"node": ">=14.15.0" "node": ">=14.15.0"
}, },
@@ -6952,9 +7279,9 @@
} }
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.8.2", "version": "8.10.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -6983,9 +7310,9 @@
} }
}, },
"node_modules/acorn-import-assertions": { "node_modules/acorn-import-assertions": {
"version": "1.8.0", "version": "1.9.0",
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
"peerDependencies": { "peerDependencies": {
"acorn": "^8" "acorn": "^8"
} }
@@ -7216,9 +7543,9 @@
} }
}, },
"node_modules/array-flatten": { "node_modules/array-flatten": {
"version": "2.1.2", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
}, },
"node_modules/array-includes": { "node_modules/array-includes": {
"version": "3.1.6", "version": "3.1.6",
@@ -7362,9 +7689,9 @@
} }
}, },
"node_modules/autoprefixer": { "node_modules/autoprefixer": {
"version": "10.4.14", "version": "10.4.16",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
"integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -7373,12 +7700,16 @@
{ {
"type": "tidelift", "type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/autoprefixer" "url": "https://tidelift.com/funding/github/npm/autoprefixer"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
} }
], ],
"dependencies": { "dependencies": {
"browserslist": "^4.21.5", "browserslist": "^4.21.10",
"caniuse-lite": "^1.0.30001464", "caniuse-lite": "^1.0.30001538",
"fraction.js": "^4.2.0", "fraction.js": "^4.3.6",
"normalize-range": "^0.1.2", "normalize-range": "^0.1.2",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"postcss-value-parser": "^4.2.0" "postcss-value-parser": "^4.2.0"
@@ -7434,17 +7765,15 @@
} }
}, },
"node_modules/axios-mock-adapter": { "node_modules/axios-mock-adapter": {
"version": "1.20.0", "version": "1.22.0",
"resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.20.0.tgz", "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz",
"integrity": "sha512-shZRhTjLP0WWdcvHKf3rH3iW9deb3UdKbdnKUoHmmsnBhVXN3sjPJM6ZvQ2r/ywgvBVQrMnjrSyQab60G1sr2w==", "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==",
"dev": true,
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"is-blob": "^2.1.0",
"is-buffer": "^2.0.5" "is-buffer": "^2.0.5"
}, },
"peerDependencies": { "peerDependencies": {
"axios": ">= 0.9.0" "axios": ">= 0.17.0"
} }
}, },
"node_modules/axobject-query": { "node_modules/axobject-query": {
@@ -7455,6 +7784,11 @@
"deep-equal": "^2.0.5" "deep-equal": "^2.0.5"
} }
}, },
"node_modules/b4a": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
},
"node_modules/babel-jest": { "node_modules/babel-jest": {
"version": "26.6.3", "version": "26.6.3",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz",
@@ -7549,11 +7883,11 @@
} }
}, },
"node_modules/babel-loader": { "node_modules/babel-loader": {
"version": "9.1.2", "version": "9.1.3",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz",
"integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==",
"dependencies": { "dependencies": {
"find-cache-dir": "^3.3.2", "find-cache-dir": "^4.0.0",
"schema-utils": "^4.0.0" "schema-utils": "^4.0.0"
}, },
"engines": { "engines": {
@@ -7596,9 +7930,9 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}, },
"node_modules/babel-loader/node_modules/schema-utils": { "node_modules/babel-loader/node_modules/schema-utils": {
"version": "4.0.1", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"ajv": "^8.9.0", "ajv": "^8.9.0",
@@ -7613,6 +7947,151 @@
"url": "https://opencollective.com/webpack" "url": "https://opencollective.com/webpack"
} }
}, },
"node_modules/babel-plugin-formatjs": {
"version": "10.5.6",
"resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.5.6.tgz",
"integrity": "sha512-XlE8WHF/ZstS5K3ZCWb5nQ6e9u6KpNquTpHpjteGaMSguSjvbfNb7CsF4YHq1fTPBdHWNspA3qfAqMGgHBO4mw==",
"dependencies": {
"@babel/core": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-jsx": "7",
"@babel/traverse": "7",
"@babel/types": "^7.12.11",
"@formatjs/icu-messageformat-parser": "2.6.2",
"@formatjs/ts-transformer": "3.13.5",
"@types/babel__core": "^7.1.7",
"@types/babel__helper-plugin-utils": "^7.10.0",
"@types/babel__traverse": "^7.1.7",
"tslib": "^2.4.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/@formatjs/ecma402-abstract": {
"version": "1.17.2",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz",
"integrity": "sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg==",
"dependencies": {
"@formatjs/intl-localematcher": "0.4.2",
"tslib": "^2.4.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/@formatjs/icu-messageformat-parser": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.6.2.tgz",
"integrity": "sha512-nF/Iww7sc5h+1MBCDRm68qpHTCG4xvGzYs/x9HFcDETSGScaJ1Fcadk5U/NXjXeCtzD+DhN4BAwKFVclHfKMdA==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.17.2",
"@formatjs/icu-skeleton-parser": "1.6.2",
"tslib": "^2.4.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/@formatjs/icu-skeleton-parser": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz",
"integrity": "sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.17.2",
"tslib": "^2.4.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/@formatjs/intl-localematcher": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz",
"integrity": "sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA==",
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/@formatjs/ts-transformer": {
"version": "3.13.5",
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.5.tgz",
"integrity": "sha512-dh2mmZqkId0UeM+FQtmwugpMGvyzTBmXj5LjwD4M5OeSm62tcgkScjqeO/1EetaNS/JkTUBbsFBnHzaDzh3yOw==",
"dependencies": {
"@formatjs/icu-messageformat-parser": "2.6.2",
"@types/json-stable-stringify": "^1.0.32",
"@types/node": "14 || 16 || 17",
"chalk": "^4.0.0",
"json-stable-stringify": "^1.0.1",
"tslib": "^2.4.0",
"typescript": "^4.7 || 5"
},
"peerDependencies": {
"ts-jest": ">=27"
},
"peerDependenciesMeta": {
"ts-jest": {
"optional": true
}
}
},
"node_modules/babel-plugin-formatjs/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/babel-plugin-formatjs/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/babel-plugin-formatjs/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/babel-plugin-formatjs/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/babel-plugin-formatjs/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/babel-plugin-formatjs/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/babel-plugin-formatjs/node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/babel-plugin-istanbul": { "node_modules/babel-plugin-istanbul": {
"version": "6.1.1", "version": "6.1.1",
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
@@ -7643,39 +8122,47 @@
} }
}, },
"node_modules/babel-plugin-polyfill-corejs2": { "node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.3.3", "version": "0.4.5",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz",
"integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.17.7", "@babel/compat-data": "^7.22.6",
"@babel/helper-define-polyfill-provider": "^0.3.3", "@babel/helper-define-polyfill-provider": "^0.4.2",
"semver": "^6.1.1" "semver": "^6.3.1"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0-0" "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
} }
}, },
"node_modules/babel-plugin-polyfill-corejs3": { "node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.6.0", "version": "0.8.4",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz",
"integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==",
"dependencies": { "dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.3", "@babel/helper-define-polyfill-provider": "^0.4.2",
"core-js-compat": "^3.25.1" "core-js-compat": "^3.32.2"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0-0" "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
} }
}, },
"node_modules/babel-plugin-polyfill-regenerator": { "node_modules/babel-plugin-polyfill-regenerator": {
"version": "0.4.1", "version": "0.5.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz",
"integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==",
"dependencies": { "dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.3" "@babel/helper-define-polyfill-provider": "^0.4.2"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0-0" "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
} }
}, },
"node_modules/babel-plugin-react-intl": { "node_modules/babel-plugin-react-intl": {
@@ -7929,14 +8416,6 @@
"npm": "1.2.8000 || >= 1.4.16" "npm": "1.2.8000 || >= 1.4.16"
} }
}, },
"node_modules/body-parser/node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/debug": { "node_modules/body-parser/node_modules/debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -7950,20 +8429,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}, },
"node_modules/body-parser/node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/bonjour-service": { "node_modules/bonjour-service": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz",
@@ -7975,6 +8440,11 @@
"multicast-dns": "^7.2.5" "multicast-dns": "^7.2.5"
} }
}, },
"node_modules/bonjour-service/node_modules/array-flatten": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"node_modules/boolbase": { "node_modules/boolbase": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -8025,9 +8495,9 @@
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.21.5", "version": "4.22.1",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
"integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -8036,13 +8506,17 @@
{ {
"type": "tidelift", "type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist" "url": "https://tidelift.com/funding/github/npm/browserslist"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
} }
], ],
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001449", "caniuse-lite": "^1.0.30001541",
"electron-to-chromium": "^1.4.284", "electron-to-chromium": "^1.4.535",
"node-releases": "^2.0.8", "node-releases": "^2.0.13",
"update-browserslist-db": "^1.0.10" "update-browserslist-db": "^1.0.13"
}, },
"bin": { "bin": {
"browserslist": "cli.js" "browserslist": "cli.js"
@@ -8088,9 +8562,9 @@
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
}, },
"node_modules/bytes": { "node_modules/bytes": {
"version": "3.0.0", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": { "engines": {
"node": ">= 0.8" "node": ">= 0.8"
} }
@@ -8149,9 +8623,9 @@
} }
}, },
"node_modules/camel-case/node_modules/tslib": { "node_modules/camel-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/camelcase": { "node_modules/camelcase": {
"version": "6.3.0", "version": "6.3.0",
@@ -8176,9 +8650,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001482", "version": "1.0.30001543",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz",
"integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", "integrity": "sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -8234,6 +8708,16 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/chardet": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
"node_modules/child_process": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
"integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g=="
},
"node_modules/chokidar": { "node_modules/chokidar": {
"version": "3.5.3", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -8381,9 +8865,9 @@
} }
}, },
"node_modules/classnames": { "node_modules/classnames": {
"version": "2.3.1", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
"integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
}, },
"node_modules/clean-css": { "node_modules/clean-css": {
"version": "5.3.2", "version": "5.3.2",
@@ -8418,6 +8902,36 @@
"webpack": ">=4.0.0 <6.0.0" "webpack": ">=4.0.0 <6.0.0"
} }
}, },
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dependencies": {
"restore-cursor": "^3.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/cli-spinners": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
"integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
"integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"engines": {
"node": ">= 10"
}
},
"node_modules/cliui": { "node_modules/cliui": {
"version": "7.0.4", "version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -8474,6 +8988,14 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1" "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
} }
}, },
"node_modules/clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/clone-deep": { "node_modules/clone-deep": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
@@ -8597,11 +9119,6 @@
"resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
"integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w=="
}, },
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
"node_modules/component-emitter": { "node_modules/component-emitter": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -8635,6 +9152,14 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/compression/node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/compression/node_modules/debug": { "node_modules/compression/node_modules/debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -8749,11 +9274,11 @@
} }
}, },
"node_modules/core-js-compat": { "node_modules/core-js-compat": {
"version": "3.30.2", "version": "3.33.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz",
"integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==",
"dependencies": { "dependencies": {
"browserslist": "^4.21.5" "browserslist": "^4.22.1"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -8761,9 +9286,9 @@
} }
}, },
"node_modules/core-js-pure": { "node_modules/core-js-pure": {
"version": "3.30.2", "version": "3.33.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.0.tgz",
"integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==", "integrity": "sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg==",
"hasInstallScript": true, "hasInstallScript": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -8775,39 +9300,6 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
}, },
"node_modules/cosmiconfig": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
"integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
"dependencies": {
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"parse-json": "^5.0.0",
"path-type": "^4.0.0"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/cosmiconfig/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/cosmiconfig/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -8821,17 +9313,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/css": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
"integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
"dev": true,
"dependencies": {
"inherits": "^2.0.4",
"source-map": "^0.6.1",
"source-map-resolve": "^0.6.0"
}
},
"node_modules/css-declaration-sorter": { "node_modules/css-declaration-sorter": {
"version": "6.4.0", "version": "6.4.0",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz",
@@ -8949,15 +9430,6 @@
"integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
"dev": true "dev": true
}, },
"node_modules/css/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/cssesc": { "node_modules/cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -9300,6 +9772,17 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/defaults": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
"integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
"dependencies": {
"clone": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-lazy-prop": { "node_modules/define-lazy-prop": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
@@ -9386,9 +9869,9 @@
} }
}, },
"node_modules/detect-libc": { "node_modules/detect-libc": {
"version": "2.0.1", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@@ -9471,9 +9954,9 @@
"integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
}, },
"node_modules/dns-packet": { "node_modules/dns-packet": {
"version": "5.6.0", "version": "5.6.1",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
"integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
"dependencies": { "dependencies": {
"@leichtgewicht/ip-codec": "^2.0.1" "@leichtgewicht/ip-codec": "^2.0.1"
}, },
@@ -9608,9 +10091,9 @@
} }
}, },
"node_modules/dot-case/node_modules/tslib": { "node_modules/dot-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/dotenv": { "node_modules/dotenv": {
"version": "8.6.0", "version": "8.6.0",
@@ -9653,9 +10136,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.380", "version": "1.4.540",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.540.tgz",
"integrity": "sha512-XKGdI4pWM78eLH2cbXJHiBnWUwFSzZM7XujsB6stDiGu9AeSqziedP6amNLpJzE3i0rLTcfAwdCTs5ecP5yeSg==" "integrity": "sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg=="
}, },
"node_modules/email-prop-type": { "node_modules/email-prop-type": {
"version": "3.0.1", "version": "3.0.1",
@@ -9715,9 +10198,9 @@
} }
}, },
"node_modules/enhanced-resolve": { "node_modules/enhanced-resolve": {
"version": "5.14.0", "version": "5.15.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
"integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
"dependencies": { "dependencies": {
"graceful-fs": "^4.2.4", "graceful-fs": "^4.2.4",
"tapable": "^2.2.0" "tapable": "^2.2.0"
@@ -9738,9 +10221,9 @@
} }
}, },
"node_modules/envinfo": { "node_modules/envinfo": {
"version": "7.8.1", "version": "7.10.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz",
"integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==",
"bin": { "bin": {
"envinfo": "dist/cli.js" "envinfo": "dist/cli.js"
}, },
@@ -9937,15 +10420,15 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.39.0", "version": "8.44.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz",
"integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==",
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.4.0", "@eslint-community/regexpp": "^4.4.0",
"@eslint/eslintrc": "^2.0.2", "@eslint/eslintrc": "^2.1.0",
"@eslint/js": "8.39.0", "@eslint/js": "8.44.0",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.10",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0", "ajv": "^6.10.0",
@@ -9955,8 +10438,8 @@
"doctrine": "^3.0.0", "doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0", "escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.2.0", "eslint-scope": "^7.2.0",
"eslint-visitor-keys": "^3.4.0", "eslint-visitor-keys": "^3.4.1",
"espree": "^9.5.1", "espree": "^9.6.0",
"esquery": "^1.4.2", "esquery": "^1.4.2",
"esutils": "^2.0.2", "esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
@@ -9964,20 +10447,19 @@
"find-up": "^5.0.0", "find-up": "^5.0.0",
"glob-parent": "^6.0.2", "glob-parent": "^6.0.2",
"globals": "^13.19.0", "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4", "graphemer": "^1.4.0",
"ignore": "^5.2.0", "ignore": "^5.2.0",
"import-fresh": "^3.0.0", "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-glob": "^4.0.0", "is-glob": "^4.0.0",
"is-path-inside": "^3.0.3", "is-path-inside": "^3.0.3",
"js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1", "json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1", "levn": "^0.4.1",
"lodash.merge": "^4.6.2", "lodash.merge": "^4.6.2",
"minimatch": "^3.1.2", "minimatch": "^3.1.2",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"optionator": "^0.9.1", "optionator": "^0.9.3",
"strip-ansi": "^6.0.1", "strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0", "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0" "text-table": "^0.2.0"
@@ -10360,9 +10842,9 @@
} }
}, },
"node_modules/eslint/node_modules/eslint-visitor-keys": { "node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "3.4.0", "version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}, },
@@ -10435,16 +10917,16 @@
} }
}, },
"node_modules/eslint/node_modules/optionator": { "node_modules/eslint/node_modules/optionator": {
"version": "0.9.1", "version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
"integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dependencies": { "dependencies": {
"@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3", "deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6", "fast-levenshtein": "^2.0.6",
"levn": "^0.4.1", "levn": "^0.4.1",
"prelude-ls": "^1.2.1", "prelude-ls": "^1.2.1",
"type-check": "^0.4.0", "type-check": "^0.4.0"
"word-wrap": "^1.2.3"
}, },
"engines": { "engines": {
"node": ">= 0.8.0" "node": ">= 0.8.0"
@@ -10492,11 +10974,11 @@
} }
}, },
"node_modules/espree": { "node_modules/espree": {
"version": "9.5.2", "version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dependencies": { "dependencies": {
"acorn": "^8.8.0", "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2", "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
@@ -10508,9 +10990,9 @@
} }
}, },
"node_modules/espree/node_modules/eslint-visitor-keys": { "node_modules/espree/node_modules/eslint-visitor-keys": {
"version": "3.4.1", "version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}, },
@@ -10985,11 +11467,6 @@
"node": ">= 0.10.0" "node": ">= 0.10.0"
} }
}, },
"node_modules/express/node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/express/node_modules/cookie": { "node_modules/express/node_modules/cookie": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
@@ -11016,20 +11493,6 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
}, },
"node_modules/express/node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/express/node_modules/safe-buffer": { "node_modules/express/node_modules/safe-buffer": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -11066,6 +11529,19 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
"integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dependencies": {
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
"tmp": "^0.0.33"
},
"engines": {
"node": ">=4"
}
},
"node_modules/extglob": { "node_modules/extglob": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
@@ -11124,6 +11600,11 @@
"resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz", "resolved": "https://registry.npmjs.org/fast-defer/-/fast-defer-1.1.7.tgz",
"integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg==" "integrity": "sha512-tJ01ulDWT2WhqxMKS20nXX6wyX2iInBYpbN3GO7yjKwXMY4qvkdBRxak9IFwBLlFDESox+SwSvqMCZDfe1tqeg=="
}, },
"node_modules/fast-fifo": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
},
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.2.12", "version": "3.2.12",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
@@ -11184,6 +11665,20 @@
"bser": "2.1.1" "bser": "2.1.1"
} }
}, },
"node_modules/figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/file-entry-cache": { "node_modules/file-entry-cache": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -11288,30 +11783,105 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}, },
"node_modules/find-cache-dir": { "node_modules/find-cache-dir": {
"version": "3.3.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
"integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dependencies": { "dependencies": {
"commondir": "^1.0.1", "common-path-prefix": "^3.0.0",
"make-dir": "^3.0.2", "pkg-dir": "^7.0.0"
"pkg-dir": "^4.1.0"
}, },
"engines": { "engines": {
"node": ">=8" "node": ">=14.16"
}, },
"funding": { "funding": {
"url": "https://github.com/avajs/find-cache-dir?sponsor=1" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/find-cache-dir/node_modules/make-dir": { "node_modules/find-cache-dir/node_modules/find-up": {
"version": "3.1.0", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
"dependencies": { "dependencies": {
"semver": "^6.0.0" "locate-path": "^7.1.0",
"path-exists": "^5.0.0"
}, },
"engines": { "engines": {
"node": ">=8" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-cache-dir/node_modules/locate-path": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
"integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
"dependencies": {
"p-locate": "^6.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-cache-dir/node_modules/p-limit": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
"integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
"dependencies": {
"yocto-queue": "^1.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-cache-dir/node_modules/p-locate": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
"integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
"dependencies": {
"p-limit": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-cache-dir/node_modules/path-exists": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
"integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
"node_modules/find-cache-dir/node_modules/pkg-dir": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
"integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
"dependencies": {
"find-up": "^6.3.0"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-cache-dir/node_modules/yocto-queue": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
"integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
"engines": {
"node": ">=12.20"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
@@ -11661,15 +12231,15 @@
} }
}, },
"node_modules/fraction.js": { "node_modules/fraction.js": {
"version": "4.2.0", "version": "4.3.6",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==",
"engines": { "engines": {
"node": "*" "node": "*"
}, },
"funding": { "funding": {
"type": "patreon", "type": "patreon",
"url": "https://www.patreon.com/infusion" "url": "https://github.com/sponsors/rawify"
} }
}, },
"node_modules/fragment-cache": { "node_modules/fragment-cache": {
@@ -11984,10 +12554,10 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
}, },
"node_modules/grapheme-splitter": { "node_modules/graphemer": {
"version": "1.0.4", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
}, },
"node_modules/growly": { "node_modules/growly": {
"version": "1.3.0", "version": "1.3.0",
@@ -12213,9 +12783,19 @@
} }
}, },
"node_modules/html-entities": { "node_modules/html-entities": {
"version": "2.3.3", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz",
"integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/mdevils"
},
{
"type": "patreon",
"url": "https://patreon.com/mdevils"
}
]
}, },
"node_modules/html-escaper": { "node_modules/html-escaper": {
"version": "2.0.2", "version": "2.0.2",
@@ -12251,9 +12831,9 @@
} }
}, },
"node_modules/html-webpack-plugin": { "node_modules/html-webpack-plugin": {
"version": "5.5.1", "version": "5.5.3",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz",
"integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==",
"dependencies": { "dependencies": {
"@types/html-minifier-terser": "^6.0.0", "@types/html-minifier-terser": "^6.0.0",
"html-minifier-terser": "^6.0.2", "html-minifier-terser": "^6.0.2",
@@ -12484,11 +13064,11 @@
} }
}, },
"node_modules/image-minimizer-webpack-plugin": { "node_modules/image-minimizer-webpack-plugin": {
"version": "3.8.2", "version": "3.8.3",
"resolved": "https://registry.npmjs.org/image-minimizer-webpack-plugin/-/image-minimizer-webpack-plugin-3.8.2.tgz", "resolved": "https://registry.npmjs.org/image-minimizer-webpack-plugin/-/image-minimizer-webpack-plugin-3.8.3.tgz",
"integrity": "sha512-l3nDq/c15y4ViTPtICG6lbFp77SoycSnR1hT/n3ER76uol//OpRptCDl7U1qiDSSEy2AcqPD1T7isRQ8TK27Cw==", "integrity": "sha512-Ex0cjNJc2FUSuwN7WHNyxkIZINP0M9lrN+uWJznMcsehiM5Z7ELwk+SEkSGEookK1GUd2wf+09jy1PEH5a5XmQ==",
"dependencies": { "dependencies": {
"schema-utils": "^4.0.0", "schema-utils": "^4.2.0",
"serialize-javascript": "^6.0.1" "serialize-javascript": "^6.0.1"
}, },
"engines": { "engines": {
@@ -12548,9 +13128,9 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}, },
"node_modules/image-minimizer-webpack-plugin/node_modules/schema-utils": { "node_modules/image-minimizer-webpack-plugin/node_modules/schema-utils": {
"version": "4.0.1", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"ajv": "^8.9.0", "ajv": "^8.9.0",
@@ -12580,9 +13160,9 @@
} }
}, },
"node_modules/immutable": { "node_modules/immutable": {
"version": "4.3.0", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
"integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
}, },
"node_modules/import-fresh": { "node_modules/import-fresh": {
"version": "3.3.0", "version": "3.3.0",
@@ -12661,6 +13241,95 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
}, },
"node_modules/inquirer": {
"version": "8.2.6",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
"integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
"dependencies": {
"ansi-escapes": "^4.2.1",
"chalk": "^4.1.1",
"cli-cursor": "^3.1.0",
"cli-width": "^3.0.0",
"external-editor": "^3.0.3",
"figures": "^3.0.0",
"lodash": "^4.17.21",
"mute-stream": "0.0.8",
"ora": "^5.4.1",
"run-async": "^2.4.0",
"rxjs": "^7.5.5",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0",
"through": "^2.3.6",
"wrap-ansi": "^6.0.1"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/inquirer/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/inquirer/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/inquirer/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/inquirer/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/inquirer/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/internal-slot": { "node_modules/internal-slot": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
@@ -12698,6 +13367,7 @@
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz", "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz",
"integrity": "sha512-4GQDEPhl/ZMNDKwMsLqyw1LG2IAWjmLJXdmnRcHKeLQzpgtNYZI6lVw1279pqIkRk2MfKb9aDsVFzm565azK5A==", "integrity": "sha512-4GQDEPhl/ZMNDKwMsLqyw1LG2IAWjmLJXdmnRcHKeLQzpgtNYZI6lVw1279pqIkRk2MfKb9aDsVFzm565azK5A==",
"deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser",
"dev": true,
"dependencies": { "dependencies": {
"@formatjs/ecma402-abstract": "1.5.0", "@formatjs/ecma402-abstract": "1.5.0",
"tslib": "^2.0.1" "tslib": "^2.0.1"
@@ -12706,7 +13376,8 @@
"node_modules/intl-messageformat-parser/node_modules/tslib": { "node_modules/intl-messageformat-parser/node_modules/tslib": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
"dev": true
}, },
"node_modules/intl-messageformat/node_modules/@formatjs/ecma402-abstract": { "node_modules/intl-messageformat/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4", "version": "1.11.4",
@@ -12731,11 +13402,11 @@
} }
}, },
"node_modules/ipaddr.js": { "node_modules/ipaddr.js": {
"version": "2.0.1", "version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": { "engines": {
"node": ">= 10" "node": ">= 0.10"
} }
}, },
"node_modules/is-accessor-descriptor": { "node_modules/is-accessor-descriptor": {
@@ -12804,18 +13475,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-blob": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz",
"integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==",
"dev": true,
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-boolean-object": { "node_modules/is-boolean-object": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
@@ -12989,6 +13648,14 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/is-interactive": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-invalid-path": { "node_modules/is-invalid-path": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
@@ -13226,6 +13893,17 @@
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
}, },
"node_modules/is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-valid-path": { "node_modules/is-valid-path": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
@@ -16740,9 +17418,9 @@
} }
}, },
"node_modules/jiti": { "node_modules/jiti": {
"version": "1.18.2", "version": "1.20.0",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz",
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==",
"bin": { "bin": {
"jiti": "bin/jiti.js" "jiti": "bin/jiti.js"
} }
@@ -16753,15 +17431,6 @@
"integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==", "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==",
"peer": true "peer": true
}, },
"node_modules/js-sdsl": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
"integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/js-sdsl"
}
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -16845,6 +17514,17 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
}, },
"node_modules/json-stable-stringify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz",
"integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==",
"dependencies": {
"jsonify": "^0.0.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/json-stable-stringify-without-jsonify": { "node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -16872,6 +17552,14 @@
"graceful-fs": "^4.1.6" "graceful-fs": "^4.1.6"
} }
}, },
"node_modules/jsonify": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
"integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/jsx-ast-utils": { "node_modules/jsx-ast-utils": {
"version": "3.3.3", "version": "3.3.3",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
@@ -16905,14 +17593,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/klona": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
"integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
"engines": {
"node": ">= 8"
}
},
"node_modules/language-subtag-registry": { "node_modules/language-subtag-registry": {
"version": "0.3.22", "version": "0.3.22",
"resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
@@ -16985,9 +17665,9 @@
} }
}, },
"node_modules/loader-utils": { "node_modules/loader-utils": {
"version": "2.0.2", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dependencies": { "dependencies": {
"big.js": "^5.2.2", "big.js": "^5.2.2",
"emojis-list": "^3.0.0", "emojis-list": "^3.0.0",
@@ -17047,6 +17727,21 @@
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
}, },
"node_modules/lodash.escape": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz",
"integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw=="
},
"node_modules/lodash.flatten": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
"integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g=="
},
"node_modules/lodash.invokemap": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz",
"integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w=="
},
"node_modules/lodash.memoize": { "node_modules/lodash.memoize": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -17057,6 +17752,11 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
}, },
"node_modules/lodash.pullall": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz",
"integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg=="
},
"node_modules/lodash.snakecase": { "node_modules/lodash.snakecase": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
@@ -17072,6 +17772,85 @@
"resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
"integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==" "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww=="
}, },
"node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/log-symbols/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/log-symbols/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/log-symbols/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/log-symbols/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/log-symbols/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/loose-envify": { "node_modules/loose-envify": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -17092,9 +17871,9 @@
} }
}, },
"node_modules/lower-case/node_modules/tslib": { "node_modules/lower-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/lru-cache": { "node_modules/lru-cache": {
"version": "5.1.1", "version": "5.1.1",
@@ -17140,9 +17919,9 @@
} }
}, },
"node_modules/make-dir/node_modules/semver": { "node_modules/make-dir/node_modules/semver": {
"version": "5.7.1", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": { "bin": {
"semver": "bin/semver" "semver": "bin/semver"
} }
@@ -17401,6 +18180,11 @@
"multicast-dns": "cli.js" "multicast-dns": "cli.js"
} }
}, },
"node_modules/mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
@@ -17477,14 +18261,14 @@
} }
}, },
"node_modules/no-case/node_modules/tslib": { "node_modules/no-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/node-abi": { "node_modules/node-abi": {
"version": "3.40.0", "version": "3.47.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.40.0.tgz", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz",
"integrity": "sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==", "integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==",
"dependencies": { "dependencies": {
"semver": "^7.3.5" "semver": "^7.3.5"
}, },
@@ -17504,9 +18288,9 @@
} }
}, },
"node_modules/node-abi/node_modules/semver": { "node_modules/node-abi/node_modules/semver": {
"version": "7.5.1", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@@ -17588,9 +18372,9 @@
"optional": true "optional": true
}, },
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "2.0.10", "version": "2.0.13",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
}, },
"node_modules/normalize-package-data": { "node_modules/normalize-package-data": {
"version": "2.5.0", "version": "2.5.0",
@@ -17976,6 +18760,100 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/ora": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
"integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
"dependencies": {
"bl": "^4.1.0",
"chalk": "^4.1.0",
"cli-cursor": "^3.1.0",
"cli-spinners": "^2.5.0",
"is-interactive": "^1.0.0",
"is-unicode-supported": "^0.1.0",
"log-symbols": "^4.1.0",
"strip-ansi": "^6.0.0",
"wcwidth": "^1.0.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ora/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/ora/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/ora/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/ora/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/ora/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/ora/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/p-each-series": { "node_modules/p-each-series": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
@@ -18061,9 +18939,9 @@
} }
}, },
"node_modules/param-case/node_modules/tslib": { "node_modules/param-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/parent-module": { "node_modules/parent-module": {
"version": "1.0.1", "version": "1.0.1",
@@ -18116,9 +18994,9 @@
} }
}, },
"node_modules/pascal-case/node_modules/tslib": { "node_modules/pascal-case/node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/pascalcase": { "node_modules/pascalcase": {
"version": "0.1.1", "version": "0.1.1",
@@ -18375,9 +19253,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.23", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -18449,22 +19327,28 @@
} }
}, },
"node_modules/postcss-custom-media": { "node_modules/postcss-custom-media": {
"version": "9.1.3", "version": "10.0.2",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-9.1.3.tgz", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.2.tgz",
"integrity": "sha512-W1C4Fu6KAZ7sKYQCuGMr8gyaE4BtjTQGPLVS4m0WCaWM6l7PgVbvmDeb4ClBc5R/7kdwESYf0hdxGtEPhi9CLA==", "integrity": "sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"dependencies": { "dependencies": {
"@csstools/cascade-layer-name-parser": "^1.0.2", "@csstools/cascade-layer-name-parser": "^1.0.5",
"@csstools/css-parser-algorithms": "^2.1.1", "@csstools/css-parser-algorithms": "^2.3.2",
"@csstools/css-tokenizer": "^2.1.1", "@csstools/css-tokenizer": "^2.2.1",
"@csstools/media-query-list-parser": "^2.0.4" "@csstools/media-query-list-parser": "^2.1.5"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/csstools"
},
"peerDependencies": { "peerDependencies": {
"postcss": "^8.4" "postcss": "^8.4"
} }
@@ -18514,13 +19398,12 @@
} }
}, },
"node_modules/postcss-loader": { "node_modules/postcss-loader": {
"version": "7.3.0", "version": "7.3.3",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.0.tgz", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz",
"integrity": "sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==", "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==",
"dependencies": { "dependencies": {
"cosmiconfig": "^8.1.3", "cosmiconfig": "^8.2.0",
"jiti": "^1.18.2", "jiti": "^1.18.2",
"klona": "^2.0.6",
"semver": "^7.3.8" "semver": "^7.3.8"
}, },
"engines": { "engines": {
@@ -18535,6 +19418,47 @@
"webpack": "^5.0.0" "webpack": "^5.0.0"
} }
}, },
"node_modules/postcss-loader/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/postcss-loader/node_modules/cosmiconfig": {
"version": "8.3.6",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
"integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dependencies": {
"import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
"parse-json": "^5.2.0",
"path-type": "^4.0.0"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
},
"peerDependencies": {
"typescript": ">=4.9.5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/postcss-loader/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/postcss-loader/node_modules/lru-cache": { "node_modules/postcss-loader/node_modules/lru-cache": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -18547,9 +19471,9 @@
} }
}, },
"node_modules/postcss-loader/node_modules/semver": { "node_modules/postcss-loader/node_modules/semver": {
"version": "7.5.1", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@@ -18560,6 +19484,20 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/postcss-loader/node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"optional": true,
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/postcss-loader/node_modules/yallist": { "node_modules/postcss-loader/node_modules/yallist": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -18881,9 +19819,9 @@
} }
}, },
"node_modules/postcss-rtlcss": { "node_modules/postcss-rtlcss": {
"version": "4.0.6", "version": "4.0.8",
"resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.6.tgz", "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.8.tgz",
"integrity": "sha512-YNm6g2Y7Gngqtrpq3GC7cUkzH5Gq7aB+Lw9MSgF9s2ro1BDY7W4zqnd15g2ueatUUpSTg2/F5KDjQoTdjhbAKg==", "integrity": "sha512-CR2sY889PHnX6K8rjW9FG4Qvm9UJsIekDakMtEYGH3zgFp9XADMeaKcA0hPOmkClNh0jWbkaPBm0jZ6fHmqkJQ==",
"dependencies": { "dependencies": {
"rtlcss": "4.1.0" "rtlcss": "4.1.0"
}, },
@@ -18965,6 +19903,45 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/prebuild-install/node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/prebuild-install/node_modules/tar-fs": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^2.1.4"
}
},
"node_modules/prebuild-install/node_modules/tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dependencies": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/prelude-ls": { "node_modules/prelude-ls": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -19070,14 +20047,6 @@
"node": ">= 0.10" "node": ">= 0.10"
} }
}, },
"node_modules/proxy-addr/node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/psl": { "node_modules/psl": {
"version": "1.8.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -19165,9 +20134,9 @@
} }
}, },
"node_modules/qs": { "node_modules/qs": {
"version": "6.11.2", "version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": { "dependencies": {
"side-channel": "^1.0.4" "side-channel": "^1.0.4"
}, },
@@ -19222,6 +20191,11 @@
} }
] ]
}, },
"node_modules/queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
},
"node_modules/randombytes": { "node_modules/randombytes": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -19252,14 +20226,6 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/raw-body/node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/raw-loader": { "node_modules/raw-loader": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
@@ -20087,9 +21053,9 @@
"integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
}, },
"node_modules/regenerate-unicode-properties": { "node_modules/regenerate-unicode-properties": {
"version": "10.1.0", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
"integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
"dependencies": { "dependencies": {
"regenerate": "^1.4.2" "regenerate": "^1.4.2"
}, },
@@ -20103,9 +21069,9 @@
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}, },
"node_modules/regenerator-transform": { "node_modules/regenerator-transform": {
"version": "0.15.1", "version": "0.15.2",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
"integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.8.4" "@babel/runtime": "^7.8.4"
} }
@@ -20328,6 +21294,18 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/ret": { "node_modules/ret": {
"version": "0.1.15", "version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -20368,6 +21346,7 @@
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/rosie/-/rosie-2.1.0.tgz", "resolved": "https://registry.npmjs.org/rosie/-/rosie-2.1.0.tgz",
"integrity": "sha512-Dbzdc+prLXZuB/suRptDnBUY29SdGvND3bLg6cll8n7PNqzuyCxSlRfrkn8PqjS9n4QVsiM7RCvxCkKAkTQRjA==", "integrity": "sha512-Dbzdc+prLXZuB/suRptDnBUY29SdGvND3bLg6cll8n7PNqzuyCxSlRfrkn8PqjS9n4QVsiM7RCvxCkKAkTQRjA==",
"dev": true,
"engines": { "engines": {
"node": ">=10" "node": ">=10"
} }
@@ -20397,6 +21376,14 @@
"node": ">=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/run-parallel": { "node_modules/run-parallel": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -20419,6 +21406,19 @@
"queue-microtask": "^1.2.2" "queue-microtask": "^1.2.2"
} }
}, },
"node_modules/rxjs": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/rxjs/node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/safe-buffer": { "node_modules/safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -20620,9 +21620,9 @@
} }
}, },
"node_modules/sass": { "node_modules/sass": {
"version": "1.62.1", "version": "1.65.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.65.1.tgz",
"integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "integrity": "sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==",
"dependencies": { "dependencies": {
"chokidar": ">=3.0.0 <4.0.0", "chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0", "immutable": "^4.0.0",
@@ -20636,15 +21636,14 @@
} }
}, },
"node_modules/sass-loader": { "node_modules/sass-loader": {
"version": "12.6.0", "version": "13.3.2",
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz",
"integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==",
"dependencies": { "dependencies": {
"klona": "^2.0.4",
"neo-async": "^2.6.2" "neo-async": "^2.6.2"
}, },
"engines": { "engines": {
"node": ">= 12.13.0" "node": ">= 14.15.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -20652,7 +21651,7 @@
}, },
"peerDependencies": { "peerDependencies": {
"fibers": ">= 3.1.0", "fibers": ">= 3.1.0",
"node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0", "sass": "^1.3.0",
"sass-embedded": "*", "sass-embedded": "*",
"webpack": "^5.0.0" "webpack": "^5.0.0"
@@ -20926,18 +21925,18 @@
"integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
}, },
"node_modules/sharp": { "node_modules/sharp": {
"version": "0.32.1", "version": "0.32.6",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==", "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"color": "^4.2.3", "color": "^4.2.3",
"detect-libc": "^2.0.1", "detect-libc": "^2.0.2",
"node-addon-api": "^6.1.0", "node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1", "prebuild-install": "^7.1.1",
"semver": "^7.5.0", "semver": "^7.5.4",
"simple-get": "^4.0.1", "simple-get": "^4.0.1",
"tar-fs": "^2.1.1", "tar-fs": "^3.0.4",
"tunnel-agent": "^0.6.0" "tunnel-agent": "^0.6.0"
}, },
"engines": { "engines": {
@@ -20959,9 +21958,9 @@
} }
}, },
"node_modules/sharp/node_modules/semver": { "node_modules/sharp/node_modules/semver": {
"version": "7.5.1", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@@ -21085,13 +22084,13 @@
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
}, },
"node_modules/sirv": { "node_modules/sirv": {
"version": "1.0.19", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz",
"integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==",
"dependencies": { "dependencies": {
"@polka/url": "^1.0.0-next.20", "@polka/url": "^1.0.0-next.20",
"mrmime": "^1.0.0", "mrmime": "^1.0.0",
"totalist": "^1.0.0" "totalist": "^3.0.0"
}, },
"engines": { "engines": {
"node": ">= 10" "node": ">= 10"
@@ -21110,6 +22109,20 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/snake-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
"integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
"dependencies": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
}
},
"node_modules/snake-case/node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/snapdragon": { "node_modules/snapdragon": {
"version": "0.8.2", "version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -21375,17 +22388,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/source-map-resolve": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz",
"integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==",
"deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
"dev": true,
"dependencies": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0"
}
},
"node_modules/source-map-support": { "node_modules/source-map-support": {
"version": "0.5.21", "version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
@@ -21638,6 +22640,15 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/streamx": {
"version": "2.15.1",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
"dependencies": {
"fast-fifo": "^1.1.0",
"queue-tick": "^1.0.1"
}
},
"node_modules/string_decoder": { "node_modules/string_decoder": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -21795,9 +22806,9 @@
} }
}, },
"node_modules/style-loader": { "node_modules/style-loader": {
"version": "3.3.2", "version": "3.3.3",
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.2.tgz", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz",
"integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==",
"engines": { "engines": {
"node": ">= 12.13.0" "node": ">= 12.13.0"
}, },
@@ -22029,42 +23040,23 @@
} }
}, },
"node_modules/tar-fs": { "node_modules/tar-fs": {
"version": "2.1.1", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
"dependencies": { "dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2", "mkdirp-classic": "^0.5.2",
"pump": "^3.0.0", "pump": "^3.0.0",
"tar-stream": "^2.1.4" "tar-stream": "^3.1.5"
} }
}, },
"node_modules/tar-stream": { "node_modules/tar-stream": {
"version": "2.2.0", "version": "3.1.6",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
"dependencies": { "dependencies": {
"bl": "^4.0.3", "b4a": "^1.6.4",
"end-of-stream": "^1.4.1", "fast-fifo": "^1.2.0",
"fs-constants": "^1.0.0", "streamx": "^2.15.0"
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tar-stream/node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
} }
}, },
"node_modules/terminal-link": { "node_modules/terminal-link": {
@@ -22161,6 +23153,11 @@
"integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==",
"dev": true "dev": true
}, },
"node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"node_modules/thunky": { "node_modules/thunky": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@@ -22182,9 +23179,20 @@
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
}, },
"node_modules/tinymce": { "node_modules/tinymce": {
"version": "5.10.2", "version": "5.10.7",
"resolved": "https://registry.npmjs.org/tinymce/-/tinymce-5.10.2.tgz", "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-5.10.7.tgz",
"integrity": "sha512-5QhnZ6c8F28fYucLLc00MM37fZoAZ4g7QCYzwIl38i5TwJR5xGqzOv6YMideyLM4tytCzLCRwJoQen2LI66p5A==" "integrity": "sha512-9UUjaO0R7FxcFo0oxnd1lMs7H+D0Eh+dDVo5hKbVe1a+VB0nit97vOqlinj+YwgoBDt6/DSCUoWqAYlLI8BLYA=="
},
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dependencies": {
"os-tmpdir": "~1.0.2"
},
"engines": {
"node": ">=0.6.0"
}
}, },
"node_modules/tmpl": { "node_modules/tmpl": {
"version": "1.0.5", "version": "1.0.5",
@@ -22265,9 +23273,9 @@
"integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg=="
}, },
"node_modules/totalist": { "node_modules/totalist": {
"version": "1.1.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
"integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@@ -22586,9 +23594,9 @@
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
}, },
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.0.11", "version": "1.0.13",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -22830,6 +23838,14 @@
"minimalistic-assert": "^1.0.0" "minimalistic-assert": "^1.0.0"
} }
}, },
"node_modules/wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
"integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
"dependencies": {
"defaults": "^1.0.3"
}
},
"node_modules/webidl-conversions": { "node_modules/webidl-conversions": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
@@ -22839,9 +23855,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.82.0", "version": "5.89.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz",
"integrity": "sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg==", "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==",
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.3", "@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.0", "@types/estree": "^1.0.0",
@@ -22849,10 +23865,10 @@
"@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5",
"@webassemblyjs/wasm-parser": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1", "acorn": "^8.7.1",
"acorn-import-assertions": "^1.7.6", "acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5", "browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.13.0", "enhanced-resolve": "^5.15.0",
"es-module-lexer": "^1.2.1", "es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1", "eslint-scope": "5.1.1",
"events": "^3.2.0", "events": "^3.2.0",
@@ -22862,7 +23878,7 @@
"loader-runner": "^4.2.0", "loader-runner": "^4.2.0",
"mime-types": "^2.1.27", "mime-types": "^2.1.27",
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.1.2", "schema-utils": "^3.2.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.7",
"watchpack": "^2.4.0", "watchpack": "^2.4.0",
@@ -22885,19 +23901,26 @@
} }
}, },
"node_modules/webpack-bundle-analyzer": { "node_modules/webpack-bundle-analyzer": {
"version": "4.8.0", "version": "4.9.1",
"resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz",
"integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==",
"dependencies": { "dependencies": {
"@discoveryjs/json-ext": "0.5.7", "@discoveryjs/json-ext": "0.5.7",
"acorn": "^8.0.4", "acorn": "^8.0.4",
"acorn-walk": "^8.0.0", "acorn-walk": "^8.0.0",
"chalk": "^4.1.0",
"commander": "^7.2.0", "commander": "^7.2.0",
"escape-string-regexp": "^4.0.0",
"gzip-size": "^6.0.0", "gzip-size": "^6.0.0",
"lodash": "^4.17.20", "is-plain-object": "^5.0.0",
"lodash.debounce": "^4.0.8",
"lodash.escape": "^4.0.1",
"lodash.flatten": "^4.4.0",
"lodash.invokemap": "^4.6.0",
"lodash.pullall": "^4.2.0",
"lodash.uniqby": "^4.7.0",
"opener": "^1.5.2", "opener": "^1.5.2",
"sirv": "^1.0.7", "picocolors": "^1.0.0",
"sirv": "^2.0.3",
"ws": "^7.3.1" "ws": "^7.3.1"
}, },
"bin": { "bin": {
@@ -22915,51 +23938,6 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/webpack-bundle-analyzer/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/webpack-bundle-analyzer/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/webpack-bundle-analyzer/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/webpack-bundle-analyzer/node_modules/commander": { "node_modules/webpack-bundle-analyzer/node_modules/commander": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
@@ -22968,34 +23946,34 @@
"node": ">= 10" "node": ">= 10"
} }
}, },
"node_modules/webpack-bundle-analyzer/node_modules/has-flag": { "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": { "engines": {
"node": ">=8" "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/webpack-bundle-analyzer/node_modules/supports-color": { "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": {
"version": "7.2.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": { "engines": {
"node": ">=8" "node": ">=0.10.0"
} }
}, },
"node_modules/webpack-cli": { "node_modules/webpack-cli": {
"version": "5.0.2", "version": "5.1.4",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.2.tgz", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
"integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"dependencies": { "dependencies": {
"@discoveryjs/json-ext": "^0.5.0", "@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^2.0.1", "@webpack-cli/configtest": "^2.1.1",
"@webpack-cli/info": "^2.0.1", "@webpack-cli/info": "^2.0.2",
"@webpack-cli/serve": "^2.0.2", "@webpack-cli/serve": "^2.0.5",
"colorette": "^2.0.14", "colorette": "^2.0.14",
"commander": "^10.0.1", "commander": "^10.0.1",
"cross-spawn": "^7.0.3", "cross-spawn": "^7.0.3",
@@ -23093,9 +24071,9 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
}, },
"node_modules/webpack-dev-middleware/node_modules/schema-utils": { "node_modules/webpack-dev-middleware/node_modules/schema-utils": {
"version": "4.0.1", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"ajv": "^8.9.0", "ajv": "^8.9.0",
@@ -23111,9 +24089,9 @@
} }
}, },
"node_modules/webpack-dev-server": { "node_modules/webpack-dev-server": {
"version": "4.13.3", "version": "4.15.1",
"resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz",
"integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==", "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==",
"dependencies": { "dependencies": {
"@types/bonjour": "^3.5.9", "@types/bonjour": "^3.5.9",
"@types/connect-history-api-fallback": "^1.3.5", "@types/connect-history-api-fallback": "^1.3.5",
@@ -23121,7 +24099,7 @@
"@types/serve-index": "^1.9.1", "@types/serve-index": "^1.9.1",
"@types/serve-static": "^1.13.10", "@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33", "@types/sockjs": "^0.3.33",
"@types/ws": "^8.5.1", "@types/ws": "^8.5.5",
"ansi-html-community": "^0.0.8", "ansi-html-community": "^0.0.8",
"bonjour-service": "^1.0.11", "bonjour-service": "^1.0.11",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
@@ -23194,6 +24172,14 @@
"ajv": "^8.8.2" "ajv": "^8.8.2"
} }
}, },
"node_modules/webpack-dev-server/node_modules/ipaddr.js": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz",
"integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==",
"engines": {
"node": ">= 10"
}
},
"node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
@@ -23214,9 +24200,9 @@
} }
}, },
"node_modules/webpack-dev-server/node_modules/schema-utils": { "node_modules/webpack-dev-server/node_modules/schema-utils": {
"version": "4.0.1", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
"integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"ajv": "^8.9.0", "ajv": "^8.9.0",
@@ -23232,9 +24218,9 @@
} }
}, },
"node_modules/webpack-dev-server/node_modules/ws": { "node_modules/webpack-dev-server/node_modules/ws": {
"version": "8.13.0", "version": "8.14.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
}, },
@@ -23252,9 +24238,9 @@
} }
}, },
"node_modules/webpack-merge": { "node_modules/webpack-merge": {
"version": "5.8.0", "version": "5.9.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz",
"integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==",
"dependencies": { "dependencies": {
"clone-deep": "^4.0.1", "clone-deep": "^4.0.1",
"wildcard": "^2.0.0" "wildcard": "^2.0.0"
@@ -23281,9 +24267,9 @@
} }
}, },
"node_modules/webpack/node_modules/schema-utils": { "node_modules/webpack/node_modules/schema-utils": {
"version": "3.1.2", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
"integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.8", "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5", "ajv": "^6.12.5",

View File

@@ -11,7 +11,7 @@
], ],
"scripts": { "scripts": {
"build": "fedx-scripts webpack", "build": "fedx-scripts webpack",
"i18n_extract": "BABEL_ENV=i18n fedx-scripts babel src --quiet > /dev/null", "i18n_extract": "fedx-scripts formatjs extract",
"lint": "fedx-scripts eslint --ext .js --ext .jsx .", "lint": "fedx-scripts eslint --ext .js --ext .jsx .",
"lint:fix": "fedx-scripts eslint --ext .js --ext .jsx . --fix", "lint:fix": "fedx-scripts eslint --ext .js --ext .jsx . --fix",
"snapshot": "fedx-scripts jest --updateSnapshot", "snapshot": "fedx-scripts jest --updateSnapshot",
@@ -33,15 +33,15 @@
"url": "https://github.com/openedx/frontend-app-discussions/issues" "url": "https://github.com/openedx/frontend-app-discussions/issues"
}, },
"dependencies": { "dependencies": {
"@edx/brand": "npm:@edx/brand-openedx@1.1.0", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2",
"@edx/frontend-component-footer": "12.1.0", "@edx/frontend-component-footer": "12.5.1",
"@edx/frontend-component-header": "4.3.0", "@edx/frontend-component-header": "4.9.1",
"@edx/frontend-platform": "4.6.0", "@edx/frontend-platform": "4.6.3",
"@edx/paragon": "20.44.0", "@edx/paragon": "20.44.0",
"@reduxjs/toolkit": "1.8.0", "@reduxjs/toolkit": "1.8.0",
"@tinymce/tinymce-react": "3.13.1", "@tinymce/tinymce-react": "3.13.1",
"babel-polyfill": "6.26.0", "babel-polyfill": "6.26.0",
"classnames": "2.3.1", "classnames": "2.3.2",
"core-js": "3.21.1", "core-js": "3.21.1",
"dompurify": "^2.4.3", "dompurify": "^2.4.3",
"formik": "2.2.9", "formik": "2.2.9",
@@ -56,17 +56,17 @@
"redux": "4.1.2", "redux": "4.1.2",
"regenerator-runtime": "0.13.9", "regenerator-runtime": "0.13.9",
"timeago.js": "4.0.2", "timeago.js": "4.0.2",
"tinymce": "5.10.2", "tinymce": "5.10.7",
"yup": "0.31.1" "yup": "0.31.1"
}, },
"devDependencies": { "devDependencies": {
"@edx/browserslist-config": "1.1.0", "@edx/browserslist-config": "1.2.0",
"@edx/frontend-build": "12.8.27", "@edx/frontend-build": "13.0.5",
"@edx/reactifex": "1.0.3", "@edx/reactifex": "1.1.0",
"@testing-library/jest-dom": "5.16.2", "@testing-library/jest-dom": "5.17.0",
"@testing-library/react": "12.1.5", "@testing-library/react": "12.1.5",
"@testing-library/user-event": "13.5.0", "@testing-library/user-event": "13.5.0",
"axios-mock-adapter": "1.20.0", "axios-mock-adapter": "1.22.0",
"babel-plugin-react-intl": "8.2.25", "babel-plugin-react-intl": "8.2.25",
"eslint-plugin-simple-import-sort": "7.0.0", "eslint-plugin-simple-import-sort": "7.0.0",
"glob": "7.2.0", "glob": "7.2.0",

View File

@@ -17,7 +17,7 @@ import {
} from '../data/constants'; } from '../data/constants';
import { selectCourseCohorts } from '../discussions/cohorts/data/selectors'; import { selectCourseCohorts } from '../discussions/cohorts/data/selectors';
import messages from '../discussions/posts/post-filter-bar/messages'; import messages from '../discussions/posts/post-filter-bar/messages';
import { ActionItem } from '../discussions/posts/post-filter-bar/PostFilterBar'; import ActionItem from '../discussions/posts/post-filter-bar/PostFilterBar';
const FilterBar = ({ const FilterBar = ({
intl, intl,

View File

@@ -1,4 +1,4 @@
import React, { useEffect } from 'react'; import React, { memo, useEffect } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classNames from 'classnames'; import classNames from 'classnames';
@@ -6,43 +6,46 @@ import { useDispatch, useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n'; import { useIntl } from '@edx/frontend-platform/i18n';
import withConditionalInContextRendering from '../../discussions/common/withConditionalInContextRendering';
import { useCourseId } from '../../discussions/data/hooks';
import { fetchTab } from './data/thunks'; import { fetchTab } from './data/thunks';
import Tabs from './tabs/Tabs'; import Tabs from './tabs/Tabs';
import messages from './messages'; import messages from './messages';
import './navBar.scss'; import './navBar.scss';
const CourseTabsNavigation = ({ const CourseTabsNavigation = ({ activeTab, className, rootSlug }) => {
activeTab, className, courseId, rootSlug,
}) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const intl = useIntl(); const intl = useIntl();
const courseId = useCourseId();
const tabs = useSelector(state => state.courseTabs.tabs); const tabs = useSelector(state => state.courseTabs.tabs);
useEffect(() => { useEffect(() => {
dispatch(fetchTab(courseId, rootSlug)); if (courseId) {
dispatch(fetchTab(courseId, rootSlug));
}
}, [courseId]); }, [courseId]);
console.log('CourseTabsNavigation');
return ( return (
<div id="courseTabsNavigation" className={classNames('course-tabs-navigation', className)}> <div id="courseTabsNavigation" tabIndex="-1" className={classNames('course-tabs-navigation px-4', className)}>
<div className="container-xl"> {!!tabs.length && (
{!!tabs.length && ( <Tabs
<Tabs className="nav-underline-tabs"
className="nav-underline-tabs" aria-label={intl.formatMessage(messages.courseMaterial)}
aria-label={intl.formatMessage(messages.courseMaterial)} >
> {tabs.map(({ url, title, slug }) => (
{tabs.map(({ url, title, slug }) => ( <a
<a key={slug}
key={slug} className={classNames('nav-item flex-shrink-0 nav-link', { active: slug === activeTab })}
className={classNames('nav-item flex-shrink-0 nav-link', { active: slug === activeTab })} href={url}
href={url} >
> {title}
{title} </a>
</a> ))}
))} </Tabs>
</Tabs> )}
)}
</div>
</div> </div>
); );
}; };
@@ -51,13 +54,12 @@ CourseTabsNavigation.propTypes = {
activeTab: PropTypes.string, activeTab: PropTypes.string,
className: PropTypes.string, className: PropTypes.string,
rootSlug: PropTypes.string, rootSlug: PropTypes.string,
courseId: PropTypes.string.isRequired,
}; };
CourseTabsNavigation.defaultProps = { CourseTabsNavigation.defaultProps = {
activeTab: undefined, activeTab: 'discussion',
className: null, className: null,
rootSlug: 'outline', rootSlug: 'outline',
}; };
export default React.memo(CourseTabsNavigation); export default memo(withConditionalInContextRendering(CourseTabsNavigation, false));

View File

@@ -1,3 +1,3 @@
/* eslint-disable import/prefer-default-export */ const selectCourseTabs = state => state.courseTabs;
export const selectCourseTabs = state => state.courseTabs; export default selectCourseTabs;

View File

@@ -1,2 +0,0 @@
/* eslint-disable import/prefer-default-export */
export { default as CourseTabsNavigation } from './CourseTabsNavigation';

View File

@@ -1,10 +1,11 @@
@import "@edx/brand/paragon/fonts.scss"; @import "~@edx/brand/paragon/fonts.scss";
@import "@edx/brand/paragon/variables.scss"; @import "~@edx/brand/paragon/variables.scss";
@import "@edx/paragon/scss/core/core.scss"; @import "~@edx/paragon/scss/core/core.scss";
@import "@edx/brand/paragon/overrides.scss"; @import "~@edx/brand/paragon/overrides.scss";
$fa-font-path: "~font-awesome/fonts"; $fa-font-path: "~font-awesome/fonts";
@import "~font-awesome/scss/font-awesome"; @import "~font-awesome/scss/font-awesome";
.course-tabs-navigation { .course-tabs-navigation {
border-bottom: solid 1px #eaeaea; border-bottom: solid 1px #eaeaea;

View File

@@ -1,5 +1,5 @@
import React, { import React, {
useCallback, useContext, useEffect, useRef, useState, useCallback, useEffect, useMemo, useRef, useState,
} from 'react'; } from 'react';
import camelCase from 'lodash/camelCase'; import camelCase from 'lodash/camelCase';
@@ -9,7 +9,7 @@ import { useIntl } from '@edx/frontend-platform/i18n';
import { Icon, SearchField } from '@edx/paragon'; import { Icon, SearchField } from '@edx/paragon';
import { Search as SearchIcon } from '@edx/paragon/icons'; import { Search as SearchIcon } from '@edx/paragon/icons';
import { DiscussionContext } from '../discussions/common/context'; import { useCurrentPage } from '../discussions/data/hooks';
import { setUsernameSearch } from '../discussions/learners/data'; import { setUsernameSearch } from '../discussions/learners/data';
import { setSearchQuery } from '../discussions/posts/data'; import { setSearchQuery } from '../discussions/posts/data';
import postsMessages from '../discussions/posts/post-actions-bar/messages'; import postsMessages from '../discussions/posts/post-actions-bar/messages';
@@ -18,7 +18,7 @@ import { setFilter as setTopicFilter } from '../discussions/topics/data/slices';
const Search = () => { const Search = () => {
const intl = useIntl(); const intl = useIntl();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { page } = useContext(DiscussionContext); const page = useCurrentPage();
const postSearch = useSelector(({ threads }) => threads.filters.search); const postSearch = useSelector(({ threads }) => threads.filters.search);
const topicSearch = useSelector(({ topics }) => topics.filter); const topicSearch = useSelector(({ topics }) => topics.filter);
const learnerSearch = useSelector(({ learners }) => learners.usernameSearch); const learnerSearch = useSelector(({ learners }) => learners.usernameSearch);
@@ -26,15 +26,15 @@ const Search = () => {
const isTopicSearch = 'topics'.includes(page); const isTopicSearch = 'topics'.includes(page);
const [searchValue, setSearchValue] = useState(''); const [searchValue, setSearchValue] = useState('');
const previousSearchValueRef = useRef(''); const previousSearchValueRef = useRef('');
let currentValue = '';
if (isPostSearch) { const currentValue = useMemo(() => {
currentValue = postSearch; if (isPostSearch) {
} else if (isTopicSearch) { return postSearch;
currentValue = topicSearch; } if (isTopicSearch) {
} else { return topicSearch;
currentValue = learnerSearch; }
} return learnerSearch;
}, [postSearch, topicSearch, learnerSearch]);
const onClear = useCallback(() => { const onClear = useCallback(() => {
dispatch(setSearchQuery('')); dispatch(setSearchQuery(''));

View File

@@ -1,7 +1,7 @@
import React, { useCallback, useState } from 'react'; import React, { useCallback, useEffect, useState } from 'react';
import { Editor } from '@tinymce/tinymce-react'; import { Editor } from '@tinymce/tinymce-react';
import { useParams } from 'react-router'; import { useLocation, useParams } from 'react-router';
// TinyMCE so the global var exists // TinyMCE so the global var exists
// eslint-disable-next-line no-unused-vars,import/no-extraneous-dependencies // eslint-disable-next-line no-unused-vars,import/no-extraneous-dependencies
import tinymce from 'tinymce/tinymce'; import tinymce from 'tinymce/tinymce';
@@ -45,10 +45,11 @@ import contentUiCss from '!!raw-loader!tinymce/skins/ui/oxide/content.min.css';
const TinyMCEEditor = (props) => { const TinyMCEEditor = (props) => {
// note that skin and content_css is disabled to avoid the normal // note that skin and content_css is disabled to avoid the normal
// loading process and is instead loaded as a string via content_style // loading process and is instead loaded as a string via content_style
const locationObj = useLocation();
const { courseId, postId } = useParams(); const { courseId, postId } = useParams();
const [showImageWarning, setShowImageWarning] = useState(false); const [showImageWarning, setShowImageWarning] = useState(false);
const intl = useIntl(); const intl = useIntl();
const enableInContextSidebar = Boolean(new URLSearchParams(locationObj.search).get('inContextSidebar') !== null);
/* istanbul ignore next */ /* istanbul ignore next */
const setup = useCallback((editor) => { const setup = useCallback((editor) => {
@@ -99,6 +100,29 @@ const TinyMCEEditor = (props) => {
contentStyle = ''; contentStyle = '';
} }
// eslint-disable-next-line consistent-return
useEffect(() => {
if (enableInContextSidebar) {
const checkToxDialogVisibility = () => {
const toxDialog = document.querySelector('.tox-dialog');
if (toxDialog) {
toxDialog.style.alignSelf = 'start';
toxDialog.style.marginTop = '50px';
}
};
const observer = new MutationObserver(checkToxDialogVisibility);
// Observe changes to the entire document
observer.observe(document, { childList: true, subtree: true });
// Clean up the observer when the component unmounts
return () => {
observer.disconnect();
};
}
}, [enableInContextSidebar]);
return ( return (
<> <>
<Editor <Editor

View File

@@ -137,7 +137,7 @@ export const DiscussionProvider = {
OPEN_EDX: 'openedx', OPEN_EDX: 'openedx',
}; };
const BASE_PATH = `${getConfig().PUBLIC_PATH}:courseId`; export const BASE_PATH = `${getConfig().PUBLIC_PATH}:courseId`;
export const Routes = { export const Routes = {
DISCUSSIONS: { DISCUSSIONS: {

View File

@@ -68,7 +68,7 @@ const ActionsDropdown = ({
disabled={disabled} disabled={disabled}
size={iconSize} size={iconSize}
ref={buttonRef} ref={buttonRef}
iconClassNames={dropDownIconSize ? 'dropdown-icon-dimentions' : ''} iconClassNames={dropDownIconSize ? 'dropdown-icon-dimensions' : ''}
/> />
<div className="actions-dropdown"> <div className="actions-dropdown">
<ModalPopup <ModalPopup

View File

@@ -100,7 +100,7 @@ const AuthorLabel = ({
{postCreatedAt && ( {postCreatedAt && (
<span <span
title={postCreatedAt} title={postCreatedAt}
className={classNames('font-family-inter align-content-center', { className={classNames('align-content-center', {
'text-white': alert, 'text-white': alert,
'text-gray-500': !alert, 'text-gray-500': !alert,
})} })}

View File

@@ -11,8 +11,8 @@ const Confirmation = ({
title, title,
description, description,
onClose, onClose,
comfirmAction, confirmAction,
closeButtonVaraint, closeButtonVariant,
confirmButtonVariant, confirmButtonVariant,
confirmButtonText, confirmButtonText,
}) => { }) => {
@@ -30,10 +30,10 @@ const Confirmation = ({
</ModalDialog.Body> </ModalDialog.Body>
<ModalDialog.Footer> <ModalDialog.Footer>
<ActionRow> <ActionRow>
<ModalDialog.CloseButton variant={closeButtonVaraint}> <ModalDialog.CloseButton variant={closeButtonVariant}>
{intl.formatMessage(messages.confirmationCancel)} {intl.formatMessage(messages.confirmationCancel)}
</ModalDialog.CloseButton> </ModalDialog.CloseButton>
<Button variant={confirmButtonVariant} onClick={comfirmAction}> <Button variant={confirmButtonVariant} onClick={confirmAction}>
{ confirmButtonText || intl.formatMessage(messages.confirmationConfirm)} { confirmButtonText || intl.formatMessage(messages.confirmationConfirm)}
</Button> </Button>
</ActionRow> </ActionRow>
@@ -45,16 +45,16 @@ const Confirmation = ({
Confirmation.propTypes = { Confirmation.propTypes = {
isOpen: PropTypes.bool.isRequired, isOpen: PropTypes.bool.isRequired,
onClose: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired,
comfirmAction: PropTypes.func.isRequired, confirmAction: PropTypes.func.isRequired,
title: PropTypes.string.isRequired, title: PropTypes.string.isRequired,
description: PropTypes.string.isRequired, description: PropTypes.string.isRequired,
closeButtonVaraint: PropTypes.string, closeButtonVariant: PropTypes.string,
confirmButtonVariant: PropTypes.string, confirmButtonVariant: PropTypes.string,
confirmButtonText: PropTypes.string, confirmButtonText: PropTypes.string,
}; };
Confirmation.defaultProps = { Confirmation.defaultProps = {
closeButtonVaraint: 'default', closeButtonVariant: 'default',
confirmButtonVariant: 'primary', confirmButtonVariant: 'primary',
confirmButtonText: '', confirmButtonText: '',
}; };

View File

@@ -43,7 +43,7 @@ const EndorsedAlertBanner = ({
height: '20px', height: '20px',
}} }}
/> />
<strong className="ml-2 font-family-inter"> <strong className="ml-2">
{intl.formatMessage(isQuestion ? messages.answer : messages.endorsed)} {intl.formatMessage(isQuestion ? messages.answer : messages.endorsed)}
</strong> </strong>
</div> </div>

View File

@@ -31,7 +31,7 @@ const HoverCard = ({
const intl = useIntl(); const intl = useIntl();
const { enableInContextSidebar } = useContext(DiscussionContext); const { enableInContextSidebar } = useContext(DiscussionContext);
const { isClosed } = useContext(PostCommentsContext); const { isClosed } = useContext(PostCommentsContext);
const isUserPrivilagedInPostingRestriction = useUserPostingEnabled(); const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
return ( return (
<div <div
@@ -39,7 +39,7 @@ const HoverCard = ({
data-testid={`hover-card-${id}`} data-testid={`hover-card-${id}`}
id={`hover-card-${id}`} id={`hover-card-${id}`}
> >
{isUserPrivilagedInPostingRestriction && ( {isUserPrivilegedInPostingRestriction && (
<div className="d-flex"> <div className="d-flex">
<Button <Button
variant="tertiary" variant="tertiary"
@@ -85,7 +85,7 @@ const HoverCard = ({
iconAs={Icon} iconAs={Icon}
size="sm" size="sm"
alt="Like" alt="Like"
iconClassNames="like-icon-dimentions" iconClassNames="like-icon-dimensions"
onClick={(e) => { onClick={(e) => {
e.preventDefault(); e.preventDefault();
onLike(); onLike();
@@ -99,7 +99,7 @@ const HoverCard = ({
iconAs={Icon} iconAs={Icon}
size="sm" size="sm"
alt="Follow" alt="Follow"
iconClassNames="follow-icon-dimentions" iconClassNames="follow-icon-dimensions"
onClick={(e) => { onClick={(e) => {
e.preventDefault(); e.preventDefault();
onFollow(); onFollow();

View File

@@ -0,0 +1,11 @@
import { useEnableInContextSidebar } from '../data/hooks';
const withConditionalInContextRendering = (WrappedComponent, condition) => (
function SidebarConditionalRenderer(props) {
const enableInContextSidebar = useEnableInContextSidebar();
return enableInContextSidebar === condition && <WrappedComponent {...props} />;
}
);
export default withConditionalInContextRendering;

View File

@@ -11,7 +11,9 @@ import { useIntl } from '@edx/frontend-platform/i18n';
import { AppContext } from '@edx/frontend-platform/react'; import { AppContext } from '@edx/frontend-platform/react';
import { breakpoints, useWindowSize } from '@edx/paragon'; import { breakpoints, useWindowSize } from '@edx/paragon';
import { RequestStatus, Routes } from '../../data/constants'; import {
ALL_ROUTES, BASE_PATH, RequestStatus, Routes,
} from '../../data/constants';
import { selectTopicsUnderCategory } from '../../data/selectors'; import { selectTopicsUnderCategory } from '../../data/selectors';
import { fetchCourseBlocks } from '../../data/thunks'; import { fetchCourseBlocks } from '../../data/thunks';
import { DiscussionContext } from '../common/context'; import { DiscussionContext } from '../common/context';
@@ -20,7 +22,7 @@ import { threadsLoadingStatus } from '../posts/data/selectors';
import { selectTopics } from '../topics/data/selectors'; import { selectTopics } from '../topics/data/selectors';
import tourCheckpoints from '../tours/constants'; import tourCheckpoints from '../tours/constants';
import { selectTours } from '../tours/data/selectors'; import { selectTours } from '../tours/data/selectors';
import { updateTourShowStatus } from '../tours/data/thunks'; import { fetchDiscussionTours, updateTourShowStatus } from '../tours/data/thunks';
import messages from '../tours/messages'; import messages from '../tours/messages';
import { discussionsPath } from '../utils'; import { discussionsPath } from '../utils';
import { import {
@@ -69,44 +71,6 @@ export const useSidebarVisible = () => {
return !hideSidebar; return !hideSidebar;
}; };
export function useCourseDiscussionData(courseId) {
const dispatch = useDispatch();
const { authenticatedUser } = useContext(AppContext);
useEffect(() => {
async function fetchBaseData() {
await dispatch(fetchCourseConfig(courseId));
await dispatch(fetchCourseBlocks(courseId, authenticatedUser.username));
}
fetchBaseData();
}, [courseId]);
}
export function useRedirectToThread(courseId, enableInContextSidebar) {
const dispatch = useDispatch();
const history = useHistory();
const location = useLocation();
const redirectToThread = useSelector(
(state) => state.threads.redirectToThread,
);
useEffect(() => {
// After posting a new thread we'd like to redirect users to it, the topic and post id are temporarily
// stored in redirectToThread
if (redirectToThread) {
dispatch(clearRedirect());
const newLocation = discussionsPath(Routes.COMMENTS.PAGES[enableInContextSidebar ? 'topics' : 'my-posts'], {
courseId,
postId: redirectToThread.threadId,
topicId: redirectToThread.topicId,
})(location);
history.push(newLocation);
}
}, [redirectToThread]);
}
export function useIsOnDesktop() { export function useIsOnDesktop() {
const windowSize = useWindowSize(); const windowSize = useWindowSize();
return windowSize.width >= breakpoints.medium.minWidth; return windowSize.width >= breakpoints.medium.minWidth;
@@ -223,7 +187,7 @@ export const useTourConfiguration = () => {
), []); ), []);
const toursConfig = useMemo(() => ( const toursConfig = useMemo(() => (
tours?.map((tour) => ( tours?.map((tour) => Object.keys(tourCheckpoints(intl)).includes(tour.tourName) && (
{ {
tourId: tour.tourName, tourId: tour.tourName,
advanceButtonText: intl.formatMessage(messages.advanceButtonText), advanceButtonText: intl.formatMessage(messages.advanceButtonText),
@@ -260,3 +224,89 @@ export const useDebounce = (value, delay) => {
); );
return debouncedValue; return debouncedValue;
}; };
export const useEnableInContextSidebar = () => {
const location = useLocation();
return Boolean(new URLSearchParams(location.search).get('inContextSidebar') !== null);
};
export const useCourseId = () => {
const { params: { courseId } } = useRouteMatch(BASE_PATH);
return courseId;
};
export const useCurrentPage = () => {
const { params: { page } } = useRouteMatch(`${Routes.COMMENTS.PAGE}?`);
return page;
};
export const usePostId = () => {
const { params: { postId } } = useRouteMatch(ALL_ROUTES);
return postId;
};
export const useLearnerUsername = () => {
const { params: { learnerUsername } } = useRouteMatch(ALL_ROUTES);
return learnerUsername;
};
export const useTopicId = () => {
const { params: { topicId } } = useRouteMatch(ALL_ROUTES);
return topicId;
};
export const useCategory = () => {
const { params: { category } } = useRouteMatch(ALL_ROUTES);
return category;
};
export function useRedirectToThread() {
const dispatch = useDispatch();
const history = useHistory();
const location = useLocation();
const courseId = useCourseId();
const enableInContextSidebar = useEnableInContextSidebar();
const redirectToThread = useSelector(
(state) => state.threads.redirectToThread,
);
useEffect(() => {
// After posting a new thread we'd like to redirect users to it, the topic and post id are temporarily
// stored in redirectToThread
if (redirectToThread) {
dispatch(clearRedirect());
const newLocation = discussionsPath(Routes.COMMENTS.PAGES[enableInContextSidebar ? 'topics' : 'my-posts'], {
courseId,
postId: redirectToThread.threadId,
topicId: redirectToThread.topicId,
})(location);
history.push(newLocation);
}
}, [redirectToThread]);
}
export function useCourseDiscussionData() {
const dispatch = useDispatch();
const courseId = useCourseId();
const { authenticatedUser } = useContext(AppContext);
useEffect(() => {
async function fetchBaseData() {
await Promise.all([
dispatch(fetchCourseConfig(courseId)),
dispatch(fetchCourseBlocks(courseId, authenticatedUser.username)),
dispatch(fetchDiscussionTours()),
]);
}
fetchBaseData();
}, [courseId]);
}

View File

@@ -104,10 +104,10 @@ describe('Hooks', () => {
describe('useUserPostingEnabled', () => { describe('useUserPostingEnabled', () => {
const ComponentWithHook = () => { const ComponentWithHook = () => {
const isUserPrivilagedInPostingRestriction = useUserPostingEnabled(); const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
return ( return (
<div> <div>
{String(isUserPrivilagedInPostingRestriction)} {String(isUserPrivilegedInPostingRestriction)}
</div> </div>
); );
}; };

View File

@@ -12,7 +12,7 @@ export const selectUserIsStaff = state => state.config.isUserAdmin;
export const selectUserIsGroupTa = state => state.config.isGroupTa; export const selectUserIsGroupTa = state => state.config.isGroupTa;
export const selectconfigLoadingStatus = state => state.config.status; export const selectConfigLoadingStatus = state => state.config.status;
export const selectLearnersTabEnabled = state => state.config.learnersTabEnabled; export const selectLearnersTabEnabled = state => state.config.learnersTabEnabled;

View File

@@ -0,0 +1,20 @@
import React, { memo } from 'react';
import { useSelector } from 'react-redux';
import { LearningHeader } from '@edx/frontend-component-header';
import selectCourseTabs from '../../components/NavigationBar/data/selectors';
import withConditionalInContextRendering from '../common/withConditionalInContextRendering';
const CourseHeader = () => {
const { courseNumber, courseTitle, org } = useSelector(selectCourseTabs);
console.log('CourseHeader', courseNumber, courseTitle, org);
return (courseNumber || courseTitle || org) && (
<LearningHeader courseOrg={org} courseNumber={courseNumber} courseTitle={courseTitle} />
);
};
export default memo(withConditionalInContextRendering(CourseHeader, false));

View File

@@ -0,0 +1,24 @@
import React, { memo } from 'react';
import classNames from 'classnames';
import { useEnableInContextSidebar } from '../data/hooks';
import NavigationBar from '../navigation/navigation-bar/NavigationBar';
import PostActionsBar from '../posts/post-actions-bar/PostActionsBar';
const DiscussionActionBar = () => {
const enableInContextSidebar = useEnableInContextSidebar();
return (
<div
className={classNames('d-flex flex-row justify-content-between navbar fixed-top', {
'pl-4 pr-3 py-0': enableInContextSidebar,
})}
>
<NavigationBar />
<PostActionsBar />
</div>
);
};
export default memo(DiscussionActionBar);

View File

@@ -0,0 +1,9 @@
import React, { memo } from 'react';
import Footer from '@edx/frontend-component-footer';
import withConditionalInContextRendering from '../common/withConditionalInContextRendering';
const DiscussionFooter = () => <Footer />;
export default memo(withConditionalInContextRendering(DiscussionFooter, false));

View File

@@ -0,0 +1,17 @@
import React, { memo } from 'react';
import CourseTabsNavigation from '../../components/NavigationBar/CourseTabsNavigation';
import CourseHeader from './CourseHeader';
const DiscussionHeader = () => {
console.log('DiscussionHeader');
return (
<>
<CourseHeader />
<CourseTabsNavigation />
</>
);
};
export default memo(DiscussionHeader);

View File

@@ -0,0 +1,53 @@
import React, { lazy, useRef } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useEnableInContextSidebar } from '../data/hooks';
import DiscussionsProductTour from '../tours/DiscussionsProductTour';
import DiscussionActionBar from './DiscussionActionBar';
import DiscussionFooter from './DiscussionFooter';
import DiscussionHeader from './DiscussionHeader';
import DiscussionSidebar from './DiscussionSidebar';
import InfoPage from './InfoPage';
import LayoutSwitcher from './LayoutSwitcher';
import LegacyBreadcrumb from './LegacyBreadcrumb';
const DiscussionsRestrictionBanner = lazy(() => import('./DiscussionsRestrictionBanner'));
const DiscussionsLayout = ({ children }) => {
const postActionBarRef = useRef(null);
const enableInContextSidebar = useEnableInContextSidebar();
return (
<>
<DiscussionHeader />
<main className="container-fluid d-flex flex-column p-0 w-100" id="main" tabIndex="-1">
<div
ref={postActionBarRef}
className={classNames('header-action-bar', {
'shadow-none border-light-300 border-bottom': enableInContextSidebar,
})}
>
<DiscussionActionBar />
<DiscussionsRestrictionBanner />
</div>
<LegacyBreadcrumb />
<LayoutSwitcher
sidebar={<DiscussionSidebar postActionBarRef={postActionBarRef} />}
infoPage={<InfoPage />}
>
{children}
</LayoutSwitcher>
<DiscussionsProductTour />
</main>
<DiscussionFooter />
</>
);
};
DiscussionsLayout.propTypes = {
children: PropTypes.node.isRequired,
};
export default React.memo(DiscussionsLayout);

View File

@@ -1,23 +1,16 @@
import React, { import React, { lazy, Suspense } from 'react';
lazy, Suspense, useContext, useEffect, useRef,
} from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { import {
Redirect, Route, Switch, useLocation, Redirect, Route, Switch, useLocation,
} from 'react-router'; } from 'react-router';
import { useWindowSize } from '@edx/paragon';
import Spinner from '../../components/Spinner'; import Spinner from '../../components/Spinner';
import { RequestStatus, Routes } from '../../data/constants'; import { RequestStatus, Routes } from '../../data/constants';
import { DiscussionContext } from '../common/context'; import { useEnableInContextSidebar, useShowLearnersTab } from '../data/hooks';
import { import { selectConfigLoadingStatus, selectEnableInContext } from '../data/selectors';
useContainerSize, useIsOnDesktop, useIsOnXLDesktop, useShowLearnersTab, import ResizableSidebar from './ResizableSidebar';
} from '../data/hooks';
import { selectconfigLoadingStatus, selectEnableInContext } from '../data/selectors';
const TopicPostsView = lazy(() => import('../in-context-topics/TopicPostsView')); const TopicPostsView = lazy(() => import('../in-context-topics/TopicPostsView'));
const InContextTopicsView = lazy(() => import('../in-context-topics/TopicsView')); const InContextTopicsView = lazy(() => import('../in-context-topics/TopicsView'));
@@ -26,51 +19,24 @@ const LearnersView = lazy(() => import('../learners/LearnersView'));
const PostsView = lazy(() => import('../posts/PostsView')); const PostsView = lazy(() => import('../posts/PostsView'));
const LegacyTopicsView = lazy(() => import('../topics/TopicsView')); const LegacyTopicsView = lazy(() => import('../topics/TopicsView'));
const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => { const DiscussionSidebar = ({ postActionBarRef }) => {
const location = useLocation(); const location = useLocation();
const isOnDesktop = useIsOnDesktop(); const enableInContextSidebar = useEnableInContextSidebar();
const isOnXLDesktop = useIsOnXLDesktop();
const { enableInContextSidebar } = useContext(DiscussionContext);
const enableInContext = useSelector(selectEnableInContext); const enableInContext = useSelector(selectEnableInContext);
const configStatus = useSelector(selectconfigLoadingStatus); const configStatus = useSelector(selectConfigLoadingStatus);
const redirectToLearnersTab = useShowLearnersTab(); const redirectToLearnersTab = useShowLearnersTab();
const sidebarRef = useRef(null);
const postActionBarHeight = useContainerSize(postActionBarRef);
const { height: windowHeight } = useWindowSize();
useEffect(() => { const memoizedRedirection = React.useMemo(() => (
if (sidebarRef && postActionBarHeight && !enableInContextSidebar) { <Suspense fallback={(<Spinner />)}>
if (isOnDesktop) { <Switch>
sidebarRef.current.style.maxHeight = `${windowHeight - postActionBarHeight}px`; {enableInContext && !enableInContextSidebar && (
}
sidebarRef.current.style.minHeight = `${windowHeight - postActionBarHeight}px`;
sidebarRef.current.style.top = `${postActionBarHeight}px`;
}
}, [sidebarRef, postActionBarHeight, enableInContextSidebar]);
return (
<div
ref={sidebarRef}
className={classNames('flex-column position-sticky', {
'd-none': !displaySidebar,
'd-flex overflow-auto box-shadow-centered-1': displaySidebar,
'w-100': !isOnDesktop,
'sidebar-desktop-width': isOnDesktop && !isOnXLDesktop,
'w-25 sidebar-XL-width': isOnXLDesktop,
'min-content-height': !enableInContextSidebar,
})}
data-testid="sidebar"
>
<Suspense fallback={(<Spinner />)}>
<Switch>
{enableInContext && !enableInContextSidebar && (
<Route <Route
path={Routes.TOPICS.ALL} path={Routes.TOPICS.ALL}
component={InContextTopicsView} component={InContextTopicsView}
exact exact
/> />
)} )}
{enableInContext && !enableInContextSidebar && ( {enableInContext && !enableInContextSidebar && (
<Route <Route
path={[ path={[
Routes.TOPICS.TOPIC, Routes.TOPICS.TOPIC,
@@ -81,19 +47,19 @@ const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => {
component={TopicPostsView} component={TopicPostsView}
exact exact
/> />
)} )}
<Route <Route
path={[Routes.POSTS.ALL_POSTS, Routes.POSTS.MY_POSTS, Routes.POSTS.PATH, Routes.TOPICS.CATEGORY]} path={[Routes.POSTS.ALL_POSTS, Routes.POSTS.MY_POSTS, Routes.POSTS.PATH, Routes.TOPICS.CATEGORY]}
component={PostsView} component={PostsView}
/> />
<Route path={Routes.TOPICS.PATH} component={LegacyTopicsView} /> <Route path={Routes.TOPICS.PATH} component={LegacyTopicsView} />
{redirectToLearnersTab && ( {redirectToLearnersTab && (
<Route path={Routes.LEARNERS.POSTS} component={LearnerPostsView} /> <Route path={Routes.LEARNERS.POSTS} component={LearnerPostsView} />
)} )}
{redirectToLearnersTab && ( {redirectToLearnersTab && (
<Route path={Routes.LEARNERS.PATH} component={LearnersView} /> <Route path={Routes.LEARNERS.PATH} component={LearnersView} />
)} )}
{configStatus === RequestStatus.SUCCESSFUL && ( {configStatus === RequestStatus.SUCCESSFUL && (
<Redirect <Redirect
from={Routes.DISCUSSIONS.PATH} from={Routes.DISCUSSIONS.PATH}
to={{ to={{
@@ -101,24 +67,23 @@ const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => {
pathname: Routes.POSTS.ALL_POSTS, pathname: Routes.POSTS.ALL_POSTS,
}} }}
/> />
)} )}
</Switch> </Switch>
</Suspense> </Suspense>
</div> ), [enableInContext, enableInContextSidebar, configStatus, location, redirectToLearnersTab]);
return (
<ResizableSidebar postActionBarRef={postActionBarRef}>
{memoizedRedirection}
</ResizableSidebar>
); );
}; };
DiscussionSidebar.propTypes = { DiscussionSidebar.propTypes = {
displaySidebar: PropTypes.bool,
postActionBarRef: PropTypes.oneOfType([ postActionBarRef: PropTypes.oneOfType([
PropTypes.func, PropTypes.func,
PropTypes.shape({ current: PropTypes.instanceOf(Element) }), PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
]), ]).isRequired,
};
DiscussionSidebar.defaultProps = {
displaySidebar: false,
postActionBarRef: null,
}; };
export default React.memo(DiscussionSidebar); export default React.memo(DiscussionSidebar);

View File

@@ -1,144 +1,47 @@
/* eslint-disable react/jsx-no-constructed-context-values */ import React, { lazy, Suspense, useMemo } from 'react';
import React, { lazy, Suspense, useRef } from 'react';
import classNames from 'classnames'; import { useRouteMatch } from 'react-router';
import { useSelector } from 'react-redux';
import {
Route, Switch, useLocation, useRouteMatch,
} from 'react-router';
import { LearningHeader as Header } from '@edx/frontend-component-header';
import { getConfig } from '@edx/frontend-platform';
import { Spinner } from '../../components'; import { Spinner } from '../../components';
import { selectCourseTabs } from '../../components/NavigationBar/data/selectors'; import { ALL_ROUTES } from '../../data/constants';
import { ALL_ROUTES, DiscussionProvider, Routes } from '../../data/constants';
import { DiscussionContext } from '../common/context'; import { DiscussionContext } from '../common/context';
import { import {
useCourseDiscussionData, useIsOnDesktop, useRedirectToThread, useShowLearnersTab, useSidebarVisible, useCourseDiscussionData, useCurrentPage, useEnableInContextSidebar, useRedirectToThread,
} from '../data/hooks'; } from '../data/hooks';
import { selectDiscussionProvider, selectEnableInContext } from '../data/selectors'; import DiscussionLayout from './DiscussionLayout';
import { EmptyLearners, EmptyPosts, EmptyTopics } from '../empty-posts';
import { EmptyTopic as InContextEmptyTopics } from '../in-context-topics/components';
import messages from '../messages';
import { selectPostEditorVisible } from '../posts/data/selectors';
import useFeedbackWrapper from './FeedbackWrapper'; import useFeedbackWrapper from './FeedbackWrapper';
const Footer = lazy(() => import('@edx/frontend-component-footer'));
const PostActionsBar = lazy(() => import('../posts/post-actions-bar/PostActionsBar'));
const CourseTabsNavigation = lazy(() => import('../../components/NavigationBar/CourseTabsNavigation'));
const LegacyBreadcrumbMenu = lazy(() => import('../navigation/breadcrumb-menu/LegacyBreadcrumbMenu'));
const NavigationBar = lazy(() => import('../navigation/navigation-bar/NavigationBar'));
const DiscussionsProductTour = lazy(() => import('../tours/DiscussionsProductTour'));
const DiscussionsRestrictionBanner = lazy(() => import('./DiscussionsRestrictionBanner'));
const DiscussionContent = lazy(() => import('./DiscussionContent')); const DiscussionContent = lazy(() => import('./DiscussionContent'));
const DiscussionSidebar = lazy(() => import('./DiscussionSidebar'));
const InformationBanner = lazy(() => import('./InformationBanner'));
const DiscussionsHome = () => { const DiscussionsHome = () => {
const location = useLocation(); useCourseDiscussionData();
const postActionBarRef = useRef(null); useRedirectToThread();
const postEditorVisible = useSelector(selectPostEditorVisible);
const provider = useSelector(selectDiscussionProvider);
const enableInContext = useSelector(selectEnableInContext);
const { courseNumber, courseTitle, org } = useSelector(selectCourseTabs);
const { params: { page } } = useRouteMatch(`${Routes.COMMENTS.PAGE}?`);
const { params } = useRouteMatch(ALL_ROUTES);
const isRedirectToLearners = useShowLearnersTab();
const isOnDesktop = useIsOnDesktop();
let displaySidebar = useSidebarVisible();
const enableInContextSidebar = Boolean(new URLSearchParams(location.search).get('inContextSidebar') !== null);
const isFeedbackBannerVisible = getConfig().DISPLAY_FEEDBACK_BANNER === 'true';
const {
courseId, postId, topicId, category, learnerUsername,
} = params;
useCourseDiscussionData(courseId);
useRedirectToThread(courseId, enableInContextSidebar);
useFeedbackWrapper(); useFeedbackWrapper();
/* Display the content area if we are currently viewing/editing a post or creating one. const page = useCurrentPage();
If the window is larger than a particular size, show the sidebar for navigating between posts/topics. const enableInContextSidebar = useEnableInContextSidebar();
However, for smaller screens or embeds, onlyshow the sidebar if the content area isn't displayed. */ const {
const displayContentArea = (postId || postEditorVisible || (learnerUsername && postId)); params: {
if (displayContentArea) { displaySidebar = isOnDesktop; } courseId, postId, topicId, category, learnerUsername,
},
} = useRouteMatch(ALL_ROUTES);
const contextValues = useMemo(() => ({
page,
courseId,
postId,
topicId,
enableInContextSidebar,
category,
learnerUsername,
}), [page, courseId, postId, topicId, enableInContextSidebar, category, learnerUsername]);
return ( return (
<Suspense fallback={(<Spinner />)}> <Suspense fallback={(<Spinner />)}>
<DiscussionContext.Provider value={{ <DiscussionLayout>
page, <DiscussionContext.Provider value={contextValues}>
courseId, <DiscussionContent />
postId, </DiscussionContext.Provider>
topicId, </DiscussionLayout>
enableInContextSidebar,
category,
learnerUsername,
}}
>
{!enableInContextSidebar && (
<Header courseOrg={org} courseNumber={courseNumber} courseTitle={courseTitle} />
)}
<main className="container-fluid d-flex flex-column p-0 w-100" id="main" tabIndex="-1">
{!enableInContextSidebar && <CourseTabsNavigation activeTab="discussion" courseId={courseId} />}
<div
className={classNames('header-action-bar', {
'shadow-none border-light-300 border-bottom': enableInContextSidebar,
})}
ref={postActionBarRef}
>
<div
className={classNames('d-flex flex-row justify-content-between navbar fixed-top', {
'pl-4 pr-3 py-0': enableInContextSidebar,
})}
>
{!enableInContextSidebar && (
<NavigationBar />
)}
<PostActionsBar />
</div>
{isFeedbackBannerVisible && <InformationBanner />}
<DiscussionsRestrictionBanner />
</div>
{provider === DiscussionProvider.LEGACY && (
<Suspense fallback={(<Spinner />)}>
<Route
path={[Routes.POSTS.PATH, Routes.TOPICS.CATEGORY]}
component={LegacyBreadcrumbMenu}
/>
</Suspense>
)}
<div className="d-flex flex-row position-relative">
<Suspense fallback={(<Spinner />)}>
<DiscussionSidebar displaySidebar={displaySidebar} postActionBarRef={postActionBarRef} />
</Suspense>
{displayContentArea && (
<Suspense fallback={(<Spinner />)}>
<DiscussionContent />
</Suspense>
)}
{!displayContentArea && (
<Switch>
<Route
path={Routes.TOPICS.PATH}
component={(enableInContext || enableInContextSidebar) ? InContextEmptyTopics : EmptyTopics}
/>
<Route
path={Routes.POSTS.MY_POSTS}
render={routeProps => <EmptyPosts {...routeProps} subTitleMessage={messages.emptyMyPosts} />}
/>
<Route
path={[Routes.POSTS.PATH, Routes.POSTS.ALL_POSTS, Routes.LEARNERS.POSTS]}
render={routeProps => <EmptyPosts {...routeProps} subTitleMessage={messages.emptyAllPosts} />}
/>
{isRedirectToLearners && <Route path={Routes.LEARNERS.PATH} component={EmptyLearners} />}
</Switch>
)}
</div>
{!enableInContextSidebar && (
<DiscussionsProductTour />
)}
</main>
{!enableInContextSidebar && <Footer />}
</DiscussionContext.Provider>
</Suspense> </Suspense>
); );
}; };

View File

@@ -6,13 +6,13 @@ import { useIntl } from '@edx/frontend-platform/i18n';
import { PageBanner } from '@edx/paragon'; import { PageBanner } from '@edx/paragon';
import { RequestStatus } from '../../data/constants'; import { RequestStatus } from '../../data/constants';
import { selectconfigLoadingStatus, selectIsPostingEnabled } from '../data/selectors'; import { selectConfigLoadingStatus, selectIsPostingEnabled } from '../data/selectors';
import messages from '../messages'; import messages from '../messages';
const DiscussionsRestrictionBanner = () => { const DiscussionsRestrictionBanner = () => {
const intl = useIntl(); const intl = useIntl();
const isPostingEnabled = useSelector(selectIsPostingEnabled); const isPostingEnabled = useSelector(selectIsPostingEnabled);
const configLoadingStatus = useSelector(selectconfigLoadingStatus); const configLoadingStatus = useSelector(selectConfigLoadingStatus);
const [showBanner, setShowBanner] = useState(true); const [showBanner, setShowBanner] = useState(true);
const handleDismiss = useCallback(() => { const handleDismiss = useCallback(() => {

View File

@@ -2,11 +2,12 @@ import { useEffect } from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { getConfig } from '@edx/frontend-platform';
import { logError } from '@edx/frontend-platform/logging'; import { logError } from '@edx/frontend-platform/logging';
import { RequestStatus } from '../../data/constants'; import { RequestStatus } from '../../data/constants';
import { import {
selectconfigLoadingStatus, selectConfigLoadingStatus,
selectIsCourseAdmin, selectIsCourseAdmin,
selectIsCourseStaff, selectIsCourseStaff,
selectUserIsGroupTa, selectUserIsGroupTa,
@@ -18,13 +19,13 @@ export default function useFeedbackWrapper() {
const isUserGroupTA = useSelector(selectUserIsGroupTa); const isUserGroupTA = useSelector(selectUserIsGroupTa);
const isCourseAdmin = useSelector(selectIsCourseAdmin); const isCourseAdmin = useSelector(selectIsCourseAdmin);
const isCourseStaff = useSelector(selectIsCourseStaff); const isCourseStaff = useSelector(selectIsCourseStaff);
const configStatus = useSelector(selectconfigLoadingStatus); const configStatus = useSelector(selectConfigLoadingStatus);
useEffect(() => { useEffect(() => {
if (configStatus === RequestStatus.SUCCESSFUL) { if (configStatus === RequestStatus.SUCCESSFUL) {
let url = '//w.usabilla.com/9e6036348fa1.js'; let url = getConfig().LEARNER_FEEDBACK_URL;
if (isStaff || isUserGroupTA || isCourseAdmin || isCourseStaff) { if (isStaff || isUserGroupTA || isCourseAdmin || isCourseStaff) {
url = '//w.usabilla.com/767740a06856.js'; url = getConfig().STAFF_FEEDBACK_URL;
} }
try { try {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef

View File

@@ -0,0 +1,37 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { Route, Switch } from 'react-router';
import { Routes } from '../../data/constants';
import { useEnableInContextSidebar, useShowLearnersTab } from '../data/hooks';
import { selectEnableInContext } from '../data/selectors';
import { EmptyLearners, EmptyPosts, EmptyTopics } from '../empty-posts';
import { EmptyTopic as InContextEmptyTopics } from '../in-context-topics/components';
import messages from '../messages';
const InfoPage = () => {
const enableInContext = useSelector(selectEnableInContext);
const isRedirectToLearners = useShowLearnersTab();
const enableInContextSidebar = useEnableInContextSidebar();
return (
<Switch>
<Route
path={Routes.TOPICS.PATH}
component={(enableInContext || enableInContextSidebar) ? InContextEmptyTopics : EmptyTopics}
/>
<Route
path={Routes.POSTS.MY_POSTS}
render={routeProps => <EmptyPosts {...routeProps} subTitleMessage={messages.emptyMyPosts} />}
/>
<Route
path={[Routes.POSTS.PATH, Routes.POSTS.ALL_POSTS, Routes.LEARNERS.POSTS]}
render={routeProps => <EmptyPosts {...routeProps} subTitleMessage={messages.emptyAllPosts} />}
/>
{isRedirectToLearners && <Route path={Routes.LEARNERS.PATH} component={EmptyLearners} />}
</Switch>
);
};
export default React.memo(InfoPage);

View File

@@ -1,63 +0,0 @@
import React, { useCallback, useState } from 'react';
import { useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, PageBanner } from '@edx/paragon';
import { selectUserIsStaff, selectUserRoles } from '../data/selectors';
import messages from '../messages';
const InformationBanner = () => {
const intl = useIntl();
const [showBanner, setShowBanner] = useState(true);
const userRoles = useSelector(selectUserRoles);
const isAdmin = useSelector(selectUserIsStaff);
const learnMoreLink = 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3509551260/Overview+New+discussions+experience';
const TAFeedbackLink = process.env.TA_FEEDBACK_FORM;
const staffFeedbackLink = process.env.STAFF_FEEDBACK_FORM;
const hideLearnMoreButton = ((userRoles.includes('Student') && userRoles.length === 1) || !userRoles.length) && !isAdmin;
const showStaffLink = isAdmin || userRoles.includes('Moderator') || userRoles.includes('Administrator');
const handleDismiss = useCallback(() => {
setShowBanner(false);
}, []);
return (
<PageBanner
variant="light"
show={showBanner}
dismissible
onDismiss={handleDismiss}
>
<div className="font-weight-500">
{intl.formatMessage(messages.bannerMessage)}
{!hideLearnMoreButton
&& (
<Hyperlink
destination={learnMoreLink}
target="_blank"
showLaunchIcon={false}
className="pl-2.5"
variant="muted"
isInline
>
{intl.formatMessage(messages.learnMoreBannerLink)}
</Hyperlink>
)}
<Hyperlink
destination={showStaffLink ? staffFeedbackLink : TAFeedbackLink}
target="_blank"
showLaunchIcon={false}
variant="muted"
className="pl-2.5"
isInline
>
{intl.formatMessage(messages.shareFeedback)}
</Hyperlink>
</div>
</PageBanner>
);
};
export default InformationBanner;

View File

@@ -1,136 +0,0 @@
import { render, screen } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { initializeMockApp } from '@edx/frontend-platform';
import { AppProvider } from '@edx/frontend-platform/react';
import { initializeStore } from '../../store';
import { DiscussionContext } from '../common/context';
import { fetchConfigSuccess } from '../data/slices';
import messages from '../messages';
import InformationBanner from './InformationBanner';
import '../posts/data/__factories__';
let store;
let container;
const courseId = 'course-v1:edX+DemoX+Demo_Course';
const getConfigData = (isAdmin = true, roles = []) => ({
id: 'course-v1:edX+DemoX+Demo_Course',
userRoles: roles,
hasModerationPrivileges: false,
isGroupTa: false,
isUserAdmin: isAdmin,
});
function renderComponent() {
const wrapper = render(
<IntlProvider locale="en">
<AppProvider store={store}>
<DiscussionContext.Provider value={{ courseId }}>
<InformationBanner />
</DiscussionContext.Provider>
</AppProvider>
</IntlProvider>,
);
container = wrapper.container;
return container;
}
describe('Information Banner learner view', () => {
let element;
beforeEach(async () => {
initializeMockApp({
authenticatedUser: {
userId: 3,
username: 'abc123',
administrator: false,
roles: ['Student'],
},
});
store = initializeStore();
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student'])));
renderComponent(true);
element = await screen.findByRole('alert');
});
test('Test Banner is visible on app load', async () => {
expect(element).toHaveTextContent(messages.bannerMessage.defaultMessage);
});
test('Test Banner do not have learn more button', async () => {
expect(element).not.toHaveTextContent(messages.learnMoreBannerLink.defaultMessage);
});
test('Test Banner has share feedback button', async () => {
expect(element).toHaveTextContent(messages.shareFeedback.defaultMessage);
});
});
describe('Information Banner moderators/staff/admin view', () => {
let element;
beforeEach(async () => {
initializeMockApp({
authenticatedUser: {
userId: 3,
username: 'abc123',
administrator: true,
roles: [],
},
});
store = initializeStore();
store.dispatch(fetchConfigSuccess(getConfigData(true, ['Student', 'Moderator'])));
renderComponent(true);
element = await screen.findByRole('alert');
});
test('Test Banner is visible on app load', async () => {
expect(element).toHaveTextContent(messages.bannerMessage.defaultMessage);
});
test('Test Banner has learn more button', async () => {
expect(element).toHaveTextContent(messages.learnMoreBannerLink.defaultMessage);
});
test('Test Banner has share feedback button', async () => {
expect(element).toHaveTextContent(messages.shareFeedback.defaultMessage);
});
});
describe('User is redirected according to url according to role', () => {
beforeEach(async () => {
initializeMockApp({
authenticatedUser: {
userId: 3,
username: 'abc123',
administrator: true,
roles: [],
},
});
store = initializeStore();
});
test('TAs are redirected to learners feedback form', async () => {
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student', 'Community TA'])));
renderComponent(true);
expect(screen.getByText(messages.shareFeedback.defaultMessage)
.closest('a'))
.toHaveAttribute('href', process.env.TA_FEEDBACK_FORM);
});
test('moderators/administrators are redirected to moderators feedback form', async () => {
store.dispatch(fetchConfigSuccess(getConfigData(false, ['Student', 'Moderator', 'Administrator'])));
renderComponent(true);
expect(screen.getByText(messages.shareFeedback.defaultMessage)
.closest('a'))
.toHaveAttribute('href', process.env.STAFF_FEEDBACK_FORM);
});
test('user with only isAdmin true are redirected to moderators feedback form', async () => {
store.dispatch(fetchConfigSuccess(getConfigData(true, ['Student'])));
renderComponent(true);
expect(screen.getByText(messages.shareFeedback.defaultMessage)
.closest('a'))
.toHaveAttribute('href', process.env.STAFF_FEEDBACK_FORM);
});
});

View File

@@ -0,0 +1,40 @@
import React, { useMemo } from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import {
useIsOnDesktop, useLearnerUsername, usePostId, useSidebarVisible,
} from '../data/hooks';
import { selectPostEditorVisible } from '../posts/data/selectors';
const LayoutSwitcher = ({ children, sidebar, infoPage }) => {
const postId = usePostId();
const learnerUsername = useLearnerUsername();
const isOnDesktop = useIsOnDesktop();
let displaySidebar = useSidebarVisible();
const postEditorVisible = useSelector(selectPostEditorVisible);
const displayContentArea = useMemo(() => {
const isContentVisible = postId || postEditorVisible || (learnerUsername && postId);
if (isContentVisible) {
displaySidebar = isOnDesktop;
}
return isContentVisible;
}, [postId, postEditorVisible, learnerUsername, isOnDesktop]);
return (
<div className="d-flex flex-row position-relative">
{displaySidebar && sidebar }
{displayContentArea ? children : infoPage }
</div>
);
};
LayoutSwitcher.propTypes = {
children: PropTypes.node.isRequired,
sidebar: PropTypes.node.isRequired,
infoPage: PropTypes.node.isRequired,
};
export default React.memo(LayoutSwitcher);

View File

@@ -0,0 +1,23 @@
import React, { memo } from 'react';
import { useSelector } from 'react-redux';
import { Route } from 'react-router-dom';
import { DiscussionProvider, Routes } from '../../data/constants';
import { selectDiscussionProvider } from '../data/selectors';
import LegacyBreadcrumbMenu from '../navigation/breadcrumb-menu/LegacyBreadcrumbMenu';
const LegacyBreadcrumb = () => {
const provider = useSelector(selectDiscussionProvider);
return (
provider === DiscussionProvider.LEGACY && (
<Route
path={[Routes.POSTS.PATH, Routes.TOPICS.CATEGORY]}
component={LegacyBreadcrumbMenu}
/>
)
);
};
export default memo(LegacyBreadcrumb);

View File

@@ -0,0 +1,54 @@
import React, { useEffect, useRef } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useWindowSize } from '@edx/paragon';
import {
useContainerSize, useEnableInContextSidebar, useIsOnDesktop, useIsOnXLDesktop,
} from '../data/hooks';
const ResizableSidebar = ({ children, postActionBarRef }) => {
const sidebarRef = useRef(null);
const isOnDesktop = useIsOnDesktop();
const isOnXLDesktop = useIsOnXLDesktop();
const enableInContextSidebar = useEnableInContextSidebar();
const postActionBarHeight = useContainerSize(postActionBarRef);
const { height: windowHeight } = useWindowSize();
useEffect(() => {
if (sidebarRef && postActionBarHeight && !enableInContextSidebar) {
if (isOnDesktop) {
sidebarRef.current.style.maxHeight = `${windowHeight - postActionBarHeight}px`;
}
sidebarRef.current.style.minHeight = `${windowHeight - postActionBarHeight}px`;
sidebarRef.current.style.top = `${postActionBarHeight}px`;
}
}, [sidebarRef, postActionBarHeight, enableInContextSidebar]);
return (
<div
data-testid="sidebar"
ref={sidebarRef}
className={classNames('flex-column position-sticky d-flex overflow-auto box-shadow-centered-1', {
'w-100': !isOnDesktop,
'sidebar-desktop-width': isOnDesktop && !isOnXLDesktop,
'w-25 sidebar-XL-width': isOnXLDesktop,
'min-content-height': !enableInContextSidebar,
})}
>
{children}
</div>
);
};
ResizableSidebar.propTypes = {
children: PropTypes.node.isRequired,
postActionBarRef: PropTypes.oneOfType([
PropTypes.func,
PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
]).isRequired,
};
export default React.memo(ResizableSidebar);

View File

@@ -57,7 +57,7 @@ describe('EmptyPage', () => {
store = initializeStore(); store = initializeStore();
}); });
test('"posts youve interacted with" message shown when no posts in system', async () => { test('"posts you\'ve interacted with" message shown when no posts in system', async () => {
renderComponent(`/${courseId}/my-posts/`); renderComponent(`/${courseId}/my-posts/`);
expect( expect(
screen.queryByText(messages.emptyMyPosts.defaultMessage), screen.queryByText(messages.emptyMyPosts.defaultMessage),

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useContext, useEffect } from 'react'; import React, { memo, useCallback, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
@@ -6,14 +6,15 @@ import { useIntl } from '@edx/frontend-platform/i18n';
import { Icon, SearchField } from '@edx/paragon'; import { Icon, SearchField } from '@edx/paragon';
import { Search as SearchIcon } from '@edx/paragon/icons'; import { Search as SearchIcon } from '@edx/paragon/icons';
import { DiscussionContext } from '../../common/context'; import { useCurrentPage } from '../../data/hooks';
import postsMessages from '../../posts/post-actions-bar/messages'; import postsMessages from '../../posts/post-actions-bar/messages';
import { setFilter as setTopicFilter } from '../data/slices'; import { setFilter as setTopicFilter } from '../data/slices';
const TopicSearchBar = () => { const TopicSearchBar = () => {
const intl = useIntl(); const intl = useIntl();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { page } = useContext(DiscussionContext); const page = useCurrentPage();
const topicSearch = useSelector(({ inContextTopics }) => inContextTopics.filter); const topicSearch = useSelector(({ inContextTopics }) => inContextTopics.filter);
let searchValue = ''; let searchValue = '';
@@ -57,4 +58,4 @@ const TopicSearchBar = () => {
); );
}; };
export default TopicSearchBar; export default memo(TopicSearchBar);

View File

@@ -10,7 +10,7 @@ import { Button, Spinner } from '@edx/paragon';
import SearchInfo from '../../components/SearchInfo'; import SearchInfo from '../../components/SearchInfo';
import { RequestStatus, Routes } from '../../data/constants'; import { RequestStatus, Routes } from '../../data/constants';
import { selectconfigLoadingStatus, selectLearnersTabEnabled } from '../data/selectors'; import { selectConfigLoadingStatus, selectLearnersTabEnabled } from '../data/selectors';
import NoResults from '../posts/NoResults'; import NoResults from '../posts/NoResults';
import { import {
learnersLoadingStatus, learnersLoadingStatus,
@@ -33,7 +33,7 @@ const LearnersView = () => {
const nextPage = useSelector(selectLearnerNextPage()); const nextPage = useSelector(selectLearnerNextPage());
const loadingStatus = useSelector(learnersLoadingStatus()); const loadingStatus = useSelector(learnersLoadingStatus());
const usernameSearch = useSelector(selectUsernameSearch()); const usernameSearch = useSelector(selectUsernameSearch());
const courseConfigLoadingStatus = useSelector(selectconfigLoadingStatus); const courseConfigLoadingStatus = useSelector(selectConfigLoadingStatus);
const learnersTabEnabled = useSelector(selectLearnersTabEnabled); const learnersTabEnabled = useSelector(selectLearnersTabEnabled);
const learners = useSelector(selectAllLearners); const learners = useSelector(selectAllLearners);

View File

@@ -168,21 +168,6 @@ const messages = defineMessages({
defaultMessage: 'anonymous', defaultMessage: 'anonymous',
description: 'Author name displayed when a post is anonymous', description: 'Author name displayed when a post is anonymous',
}, },
bannerMessage: {
id: 'discussion.banner.welcomeMessage',
defaultMessage: '🎉 Welcome to the new and improved discussions experience!',
description: 'Information banner welcome text',
},
learnMoreBannerLink: {
id: 'discussion.banner.learnMore',
defaultMessage: 'Learn more',
description: 'learn more button to redirect users to know more about new discussion experience ',
},
shareFeedback: {
id: 'discussion.banner.shareFeedback',
defaultMessage: 'Share feedback',
description: 'Share feedback button to open feedback forms',
},
blackoutDiscussionInformation: { blackoutDiscussionInformation: {
id: 'discussion.blackoutBanner.information', id: 'discussion.blackoutBanner.information',
defaultMessage: 'Posting in discussions is disabled by the course team', defaultMessage: 'Posting in discussions is disabled by the course team',

View File

@@ -1,4 +1,4 @@
import React, { useContext, useMemo } from 'react'; import React, { memo, useMemo } from 'react';
import { matchPath } from 'react-router'; import { matchPath } from 'react-router';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
@@ -7,14 +7,14 @@ import { useIntl } from '@edx/frontend-platform/i18n';
import { Nav } from '@edx/paragon'; import { Nav } from '@edx/paragon';
import { Routes } from '../../../data/constants'; import { Routes } from '../../../data/constants';
import { DiscussionContext } from '../../common/context'; import withConditionalInContextRendering from '../../common/withConditionalInContextRendering';
import { useShowLearnersTab } from '../../data/hooks'; import { useCourseId, useShowLearnersTab } from '../../data/hooks';
import { discussionsPath } from '../../utils'; import { discussionsPath } from '../../utils';
import messages from './messages'; import messages from './messages';
const NavigationBar = () => { const NavigationBar = () => {
const intl = useIntl(); const intl = useIntl();
const { courseId } = useContext(DiscussionContext); const courseId = useCourseId();
const showLearnersTab = useShowLearnersTab(); const showLearnersTab = useShowLearnersTab();
const navLinks = useMemo(() => ([ const navLinks = useMemo(() => ([
@@ -41,23 +41,28 @@ const NavigationBar = () => {
}); });
} }
}, [showLearnersTab]); }, [showLearnersTab]);
console.log('NavigationBar');
const navLinksList = useMemo(() => (
navLinks.map(link => (
<Nav.Item key={link.route}>
<Nav.Link
key={link.route}
as={NavLink}
to={discussionsPath(link.route, { courseId })}
isActive={link.isActive}
>
{intl.formatMessage(link.labelMessage)}
</Nav.Link>
</Nav.Item>
))
), [navLinks]);
return ( return (
<Nav variant="pills" className="py-2 nav-button-group"> <Nav variant="pills" className="py-2 nav-button-group">
{navLinks.map(link => ( {navLinksList}
<Nav.Item key={link.route}>
<Nav.Link
key={link.route}
as={NavLink}
to={discussionsPath(link.route, { courseId })}
isActive={link.isActive}
>
{intl.formatMessage(link.labelMessage)}
</Nav.Link>
</Nav.Item>
))}
</Nav> </Nav>
); );
}; };
export default React.memo(NavigationBar); export default memo(withConditionalInContextRendering(NavigationBar, false));

View File

@@ -16,7 +16,7 @@ const CommentsView = ({ endorsed }) => {
const intl = useIntl(); const intl = useIntl();
const [addingResponse, setAddingResponse] = useState(false); const [addingResponse, setAddingResponse] = useState(false);
const { isClosed } = useContext(PostCommentsContext); const { isClosed } = useContext(PostCommentsContext);
const isUserPrivilagedInPostingRestriction = useUserPostingEnabled(); const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
const { const {
endorsedCommentsIds, endorsedCommentsIds,
@@ -66,7 +66,7 @@ const CommentsView = ({ endorsed }) => {
)} )}
{isLoading && !showLoadMoreResponses && ( {isLoading && !showLoadMoreResponses && (
<div className="mb-2 mt-3 d-flex justify-content-center"> <div className="mb-2 mt-3 d-flex justify-content-center">
<Spinner animation="border" variant="primary" className="spinner-dimentions" /> <Spinner animation="border" variant="primary" className="spinner-dimensions" />
</div> </div>
)} )}
</div> </div>
@@ -90,7 +90,7 @@ const CommentsView = ({ endorsed }) => {
{handleDefinition(messages.responseCount, unEndorsedCommentsIds.length)} {handleDefinition(messages.responseCount, unEndorsedCommentsIds.length)}
{unEndorsedCommentsIds.length === 0 && <br />} {unEndorsedCommentsIds.length === 0 && <br />}
{handleComments(unEndorsedCommentsIds, false)} {handleComments(unEndorsedCommentsIds, false)}
{(isUserPrivilagedInPostingRestriction && !!unEndorsedCommentsIds.length && !isClosed) && ( {(isUserPrivilegedInPostingRestriction && !!unEndorsedCommentsIds.length && !isClosed) && (
<div className="mx-4"> <div className="mx-4">
{!addingResponse && ( {!addingResponse && (
<Button <Button

View File

@@ -61,7 +61,7 @@ const Comment = ({
const currentPage = useSelector(selectCommentCurrentPage(id)); const currentPage = useSelector(selectCommentCurrentPage(id));
const sortedOrder = useSelector(selectCommentSortOrder); const sortedOrder = useSelector(selectCommentSortOrder);
const actions = useActions(ContentTypes.COMMENT, id); const actions = useActions(ContentTypes.COMMENT, id);
const isUserPrivilagedInPostingRestriction = useUserPostingEnabled(); const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
useEffect(() => { useEffect(() => {
// If the comment has a parent comment, it won't have any children, so don't fetch them. // If the comment has a parent comment, it won't have any children, so don't fetch them.
@@ -119,10 +119,10 @@ const Comment = ({
), [id, currentPage, sortedOrder]); ), [id, currentPage, sortedOrder]);
const handleAddCommentButton = useCallback(() => { const handleAddCommentButton = useCallback(() => {
if (isUserPrivilagedInPostingRestriction) { if (isUserPrivilegedInPostingRestriction) {
setReplying(true); setReplying(true);
} }
}, [isUserPrivilagedInPostingRestriction]); }, [isUserPrivilegedInPostingRestriction]);
const handleCommentLike = useCallback(async () => { const handleCommentLike = useCallback(async () => {
await dispatch(editComment(id, { voted: !voted })); await dispatch(editComment(id, { voted: !voted }));
@@ -154,8 +154,8 @@ const Comment = ({
title={intl.formatMessage(messages.deleteResponseTitle)} title={intl.formatMessage(messages.deleteResponseTitle)}
description={intl.formatMessage(messages.deleteResponseDescription)} description={intl.formatMessage(messages.deleteResponseDescription)}
onClose={hideDeleteConfirmation} onClose={hideDeleteConfirmation}
comfirmAction={handleDeleteConfirmation} confirmAction={handleDeleteConfirmation}
closeButtonVaraint="tertiary" closeButtonVariant="tertiary"
confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)} confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)}
/> />
{!abuseFlagged && ( {!abuseFlagged && (
@@ -164,7 +164,7 @@ const Comment = ({
title={intl.formatMessage(messages.reportResponseTitle)} title={intl.formatMessage(messages.reportResponseTitle)}
description={intl.formatMessage(messages.reportResponseDescription)} description={intl.formatMessage(messages.reportResponseDescription)}
onClose={hideReportConfirmation} onClose={hideReportConfirmation}
comfirmAction={handleReportConfirmation} confirmAction={handleReportConfirmation}
confirmButtonVariant="danger" confirmButtonVariant="danger"
/> />
)} )}
@@ -265,7 +265,7 @@ const Comment = ({
/> />
</div> </div>
) : ( ) : (
!isClosed && isUserPrivilagedInPostingRestriction && (inlineReplies.length >= 5) && ( !isClosed && isUserPrivilegedInPostingRestriction && (inlineReplies.length >= 5) && (
<Button <Button
className="d-flex flex-grow mt-2 font-size-14 font-style font-weight-500 text-primary-500" className="d-flex flex-grow mt-2 font-size-14 font-style font-weight-500 text-primary-500"
variant="plain" variant="plain"

View File

@@ -83,8 +83,8 @@ const Reply = ({ responseId }) => {
title={intl.formatMessage(messages.deleteCommentTitle)} title={intl.formatMessage(messages.deleteCommentTitle)}
description={intl.formatMessage(messages.deleteCommentDescription)} description={intl.formatMessage(messages.deleteCommentDescription)}
onClose={hideDeleteConfirmation} onClose={hideDeleteConfirmation}
comfirmAction={handleDeleteConfirmation} confirmAction={handleDeleteConfirmation}
closeButtonVaraint="tertiary" closeButtonVariant="tertiary"
confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)} confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)}
/> />
{!abuseFlagged && ( {!abuseFlagged && (
@@ -93,7 +93,7 @@ const Reply = ({ responseId }) => {
title={intl.formatMessage(messages.reportCommentTitle)} title={intl.formatMessage(messages.reportCommentTitle)}
description={intl.formatMessage(messages.reportCommentDescription)} description={intl.formatMessage(messages.reportCommentDescription)}
onClose={hideReportConfirmation} onClose={hideReportConfirmation}
comfirmAction={handleReportConfirmation} confirmAction={handleReportConfirmation}
confirmButtonVariant="danger" confirmButtonVariant="danger"
/> />
)} )}

View File

@@ -0,0 +1,14 @@
import React, { memo } from 'react';
import { useSelector } from 'react-redux';
import { selectAllThreadsIds } from './data/selectors';
import PostsList from './PostsList';
const AllPostsList = () => {
const postsIds = useSelector(selectAllThreadsIds);
return <PostsList postsIds={postsIds} topicsIds={null} />;
};
export default memo(AllPostsList);

View File

@@ -0,0 +1,22 @@
import React, { memo } from 'react';
import { useSelector } from 'react-redux';
import { selectCurrentCategoryGrouping, selectTopicsUnderCategory } from '../../data/selectors';
import { useCategory, useEnableInContextSidebar } from '../data/hooks';
import { selectAllThreadsIds, selectTopicThreadsIds } from './data/selectors';
import PostsList from './PostsList';
const PostsView = () => {
const category = useCategory();
const enableInContextSidebar = useEnableInContextSidebar();
const groupedCategory = useSelector(selectCurrentCategoryGrouping)(category);
// If grouping at subsection is enabled, only apply it when browsing discussions in context in the learning MFE.
const topicIds = useSelector(selectTopicsUnderCategory)(enableInContextSidebar ? groupedCategory : category);
const postsIds = useSelector(enableInContextSidebar ? selectAllThreadsIds : selectTopicThreadsIds(topicIds));
return <PostsList postsIds={postsIds} topicsIds={topicIds} />;
};
export default memo(PostsView);

View File

@@ -0,0 +1,90 @@
import React, {
useCallback, useContext, useEffect, useMemo,
} from 'react';
import PropTypes from 'prop-types';
import { useDispatch, useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { AppContext } from '@edx/frontend-platform/react';
import { Button, Spinner } from '@edx/paragon';
import { RequestStatus } from '../../data/constants';
import { useCourseId, useCurrentPage } from '../data/hooks';
import { selectConfigLoadingStatus, selectUserHasModerationPrivileges, selectUserIsStaff } from '../data/selectors';
import { fetchUserPosts } from '../learners/data/thunks';
import messages from '../messages';
import { usePostList } from './data/hooks';
import {
selectThreadFilters, selectThreadNextPage, selectThreadSorting, threadsLoadingStatus,
} from './data/selectors';
import { fetchThreads } from './data/thunks';
import NoResults from './NoResults';
import { PostLink } from './post';
const PostsList = ({
postsIds, topicsIds, isTopicTab, parentIsLoading,
}) => {
const intl = useIntl();
const dispatch = useDispatch();
const { authenticatedUser } = useContext(AppContext);
const page = useCurrentPage();
const courseId = useCourseId();
const loadingStatus = useSelector(threadsLoadingStatus());
const orderBy = useSelector(selectThreadSorting());
const filters = useSelector(selectThreadFilters());
const nextPage = useSelector(selectThreadNextPage());
const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges);
const userIsStaff = useSelector(selectUserIsStaff);
const configStatus = useSelector(selectConfigLoadingStatus);
const sortedPostsIds = usePostList(postsIds);
const showOwnPosts = page === 'my-posts';
const loadThreads = useCallback((topicIds, pageNum = undefined, isFilterChanged = false) => {
const params = {
orderBy,
filters,
page: pageNum,
author: showOwnPosts ? authenticatedUser.username : null,
countFlagged: (userHasModerationPrivileges || userIsStaff) || undefined,
topicIds,
isFilterChanged,
};
if (showOwnPosts && filters.search === '') {
dispatch(fetchUserPosts(courseId, params));
} else {
dispatch(fetchThreads(courseId, params));
}
}, [courseId, orderBy, filters, showOwnPosts, authenticatedUser.username, userHasModerationPrivileges, userIsStaff]);
return (
loadingStatus === RequestStatus.IN_PROGRESS || parentIsLoading ? (
<div className="d-flex justify-content-center p-4 mx-auto my-auto">
<Spinner animation="border" variant="primary" size="lg" />
</div>
) : (
nextPage && loadingStatus === RequestStatus.SUCCESSFUL && (
<Button onClick={() => loadThreads(topicsIds, nextPage)} variant="primary" size="md">
{intl.formatMessage(messages.loadMorePosts)}
</Button>
)
)
);
};
PostsList.propTypes = {
postsIds: PropTypes.arrayOf(PropTypes.string),
topicsIds: PropTypes.arrayOf(PropTypes.string),
isTopicTab: PropTypes.bool,
parentIsLoading: PropTypes.bool,
};
PostsList.defaultProps = {
postsIds: [],
topicsIds: undefined,
isTopicTab: false,
parentIsLoading: undefined,
};
export default React.memo(PostsList);

View File

@@ -10,8 +10,8 @@ import { AppContext } from '@edx/frontend-platform/react';
import { Button, Spinner } from '@edx/paragon'; import { Button, Spinner } from '@edx/paragon';
import { RequestStatus } from '../../data/constants'; import { RequestStatus } from '../../data/constants';
import { DiscussionContext } from '../common/context'; import { useCourseId, useCurrentPage } from '../data/hooks';
import { selectconfigLoadingStatus, selectUserHasModerationPrivileges, selectUserIsStaff } from '../data/selectors'; import { selectConfigLoadingStatus, selectUserHasModerationPrivileges, selectUserIsStaff } from '../data/selectors';
import { fetchUserPosts } from '../learners/data/thunks'; import { fetchUserPosts } from '../learners/data/thunks';
import messages from '../messages'; import messages from '../messages';
import { usePostList } from './data/hooks'; import { usePostList } from './data/hooks';
@@ -28,14 +28,15 @@ const PostsList = ({
const intl = useIntl(); const intl = useIntl();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { authenticatedUser } = useContext(AppContext); const { authenticatedUser } = useContext(AppContext);
const { courseId, page } = useContext(DiscussionContext); const page = useCurrentPage();
const courseId = useCourseId();
const loadingStatus = useSelector(threadsLoadingStatus()); const loadingStatus = useSelector(threadsLoadingStatus());
const orderBy = useSelector(selectThreadSorting()); const orderBy = useSelector(selectThreadSorting());
const filters = useSelector(selectThreadFilters()); const filters = useSelector(selectThreadFilters());
const nextPage = useSelector(selectThreadNextPage()); const nextPage = useSelector(selectThreadNextPage());
const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges); const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges);
const userIsStaff = useSelector(selectUserIsStaff); const userIsStaff = useSelector(selectUserIsStaff);
const configStatus = useSelector(selectconfigLoadingStatus); const configStatus = useSelector(selectConfigLoadingStatus);
const sortedPostsIds = usePostList(postsIds); const sortedPostsIds = usePostList(postsIds);
const showOwnPosts = page === 'my-posts'; const showOwnPosts = page === 'my-posts';
@@ -80,6 +81,8 @@ const PostsList = ({
)) ))
), [sortedPostsIds]); ), [sortedPostsIds]);
console.log('sortedPostsIds', sortedPostsIds, loadingStatus === RequestStatus.IN_PROGRESS || parentIsLoading);
return ( return (
<> <>
{!parentIsLoading && postInstances} {!parentIsLoading && postInstances}

View File

@@ -0,0 +1,32 @@
import React, { memo, useCallback } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import SearchInfo from '../../components/SearchInfo';
import { setSearchQuery } from './data/slices';
const PostsSearchInfo = () => {
const dispatch = useDispatch();
const searchString = useSelector(({ threads }) => threads.filters.search);
const resultsFound = useSelector(({ threads }) => threads.totalThreads);
const textSearchRewrite = useSelector(({ threads }) => threads.textSearchRewrite);
const loadingStatus = useSelector(({ threads }) => threads.status);
const handleOnClear = useCallback(() => {
dispatch(setSearchQuery(''));
}, []);
return (
searchString && (
<SearchInfo
count={resultsFound}
text={searchString}
loadingStatus={loadingStatus}
onClear={handleOnClear}
textSearchRewrite={textSearchRewrite}
/>
)
);
};
export default memo(PostsSearchInfo);

View File

@@ -1,103 +1,30 @@
import React, { import React, { memo, useMemo } from 'react';
useCallback, useContext, useEffect, useMemo,
} from 'react';
import PropTypes from 'prop-types';
import isEmpty from 'lodash/isEmpty'; import { useCategory, useTopicId } from '../data/hooks';
import { useDispatch, useSelector } from 'react-redux';
import SearchInfo from '../../components/SearchInfo';
import { selectCurrentCategoryGrouping, selectTopicsUnderCategory } from '../../data/selectors';
import { DiscussionContext } from '../common/context';
import { selectEnableInContext } from '../data/selectors';
import { selectTopics as selectInContextTopics } from '../in-context-topics/data/selectors';
import { fetchCourseTopicsV3 } from '../in-context-topics/data/thunks';
import { selectTopics } from '../topics/data/selectors';
import { fetchCourseTopics } from '../topics/data/thunks';
import { handleKeyDown } from '../utils'; import { handleKeyDown } from '../utils';
import { selectAllThreadsIds, selectTopicThreadsIds } from './data/selectors';
import { setSearchQuery } from './data/slices';
import PostFilterBar from './post-filter-bar/PostFilterBar'; import PostFilterBar from './post-filter-bar/PostFilterBar';
import PostsList from './PostsList'; import AllPostsList from './AllPostsList';
import CategoryPostsList from './CategoryPostsList';
const AllPostsList = () => { import PostsSearchInfo from './PostsSearchInfo';
const postsIds = useSelector(selectAllThreadsIds); import TopicPostsList from './TopicPostsList';
return <PostsList postsIds={postsIds} topicsIds={null} />;
};
const TopicPostsList = React.memo(({ topicId }) => {
const postsIds = useSelector(selectTopicThreadsIds([topicId]));
return <PostsList postsIds={postsIds} topicsIds={[topicId]} isTopicTab />;
});
TopicPostsList.propTypes = {
topicId: PropTypes.string.isRequired,
};
const CategoryPostsList = React.memo(({ category }) => {
const { enableInContextSidebar } = useContext(DiscussionContext);
const groupedCategory = useSelector(selectCurrentCategoryGrouping)(category);
// If grouping at subsection is enabled, only apply it when browsing discussions in context in the learning MFE.
const topicIds = useSelector(selectTopicsUnderCategory)(enableInContextSidebar ? groupedCategory : category);
const postsIds = useSelector(enableInContextSidebar ? selectAllThreadsIds : selectTopicThreadsIds(topicIds));
return <PostsList postsIds={postsIds} topicsIds={topicIds} />;
});
CategoryPostsList.propTypes = {
category: PropTypes.string.isRequired,
};
const PostsView = () => { const PostsView = () => {
const { const topicId = useTopicId();
topicId, const category = useCategory();
category,
courseId,
enableInContextSidebar,
} = useContext(DiscussionContext);
const dispatch = useDispatch();
const enableInContext = useSelector(selectEnableInContext);
const searchString = useSelector(({ threads }) => threads.filters.search);
const resultsFound = useSelector(({ threads }) => threads.totalThreads);
const textSearchRewrite = useSelector(({ threads }) => threads.textSearchRewrite);
const loadingStatus = useSelector(({ threads }) => threads.status);
const topics = useSelector(enableInContext ? selectInContextTopics : selectTopics);
useEffect(() => {
if (isEmpty(topics)) {
dispatch((enableInContext || enableInContextSidebar)
? fetchCourseTopicsV3(courseId)
: fetchCourseTopics(courseId));
}
}, [topics]);
const handleOnClear = useCallback(() => {
dispatch(setSearchQuery(''));
}, []);
const postsListComponent = useMemo(() => { const postsListComponent = useMemo(() => {
if (topicId) { if (topicId) {
return <TopicPostsList topicId={topicId} />; return <TopicPostsList />;
} }
if (category) { if (category) {
return <CategoryPostsList category={category} />; return <CategoryPostsList />;
} }
return <AllPostsList />; return <AllPostsList />;
}, [topicId, category]); }, [topicId, category]);
return ( return (
<div className="discussion-posts d-flex flex-column h-100"> <div className="discussion-posts d-flex flex-column h-100">
{searchString && ( <PostsSearchInfo />
<SearchInfo
count={resultsFound}
text={searchString}
loadingStatus={loadingStatus}
onClear={handleOnClear}
textSearchRewrite={textSearchRewrite}
/>
)}
<PostFilterBar /> <PostFilterBar />
<div className="border-bottom border-light-400" /> <div className="border-bottom border-light-400" />
<div className="list-group list-group-flush flex-fill" role="list" onKeyDown={e => handleKeyDown(e)}> <div className="list-group list-group-flush flex-fill" role="list" onKeyDown={e => handleKeyDown(e)}>
@@ -107,4 +34,4 @@ const PostsView = () => {
); );
}; };
export default PostsView; export default memo(PostsView);

View File

@@ -0,0 +1,35 @@
import React, { memo, useEffect } from 'react';
import isEmpty from 'lodash/isEmpty';
import { useDispatch, useSelector } from 'react-redux';
import { useCourseId, useEnableInContextSidebar, useTopicId } from '../data/hooks';
import { selectEnableInContext } from '../data/selectors';
import { selectTopics as selectInContextTopics } from '../in-context-topics/data/selectors';
import { fetchCourseTopicsV3 } from '../in-context-topics/data/thunks';
import { selectTopics } from '../topics/data/selectors';
import { fetchCourseTopics } from '../topics/data/thunks';
import { selectTopicThreadsIds } from './data/selectors';
import PostsList from './PostsList';
const TopicPostsList = () => {
const dispatch = useDispatch();
const topicId = useTopicId();
const courseId = useCourseId();
const enableInContextSidebar = useEnableInContextSidebar();
const enableInContext = useSelector(selectEnableInContext);
const postsIds = useSelector(selectTopicThreadsIds([topicId]));
const topics = useSelector(enableInContext ? selectInContextTopics : selectTopics);
useEffect(() => {
if (isEmpty(topics)) {
dispatch((enableInContext || enableInContextSidebar)
? fetchCourseTopicsV3(courseId)
: fetchCourseTopics(courseId));
}
}, [courseId, topics]);
return <PostsList postsIds={postsIds} topicsIds={[topicId]} isTopicTab />;
};
export default memo(TopicPostsList);

View File

@@ -7,20 +7,10 @@ import { selectThreadsByIds } from './selectors';
export const usePostList = (ids) => { export const usePostList = (ids) => {
const posts = useSelector(selectThreadsByIds(ids)); const posts = useSelector(selectThreadsByIds(ids));
const pinnedPostsIds = [];
const unpinnedPostsIds = [];
const sortedIds = useMemo(() => { const sortedIds = useMemo(() => (
posts.forEach((post) => { [...posts].sort((a, b) => (b.pinned - a.pinned)).map((post) => post.id)
if (post.pinned) { ), [posts]);
pinnedPostsIds.push(post.id);
} else {
unpinnedPostsIds.push(post.id);
}
});
return [...pinnedPostsIds, ...unpinnedPostsIds];
}, [posts]);
return sortedIds; return sortedIds;
}; };

View File

@@ -0,0 +1,46 @@
import React, { useCallback } from 'react';
import classNames from 'classnames';
import { useDispatch, useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Button } from '@edx/paragon';
import { RequestStatus } from '../../../data/constants';
import { useEnableInContextSidebar, useUserPostingEnabled } from '../../data/hooks';
import { selectConfigLoadingStatus } from '../../data/selectors';
import { showPostEditor } from '../data';
import messages from './messages';
const AddPostButton = () => {
const intl = useIntl();
const dispatch = useDispatch();
const loadingStatus = useSelector(selectConfigLoadingStatus);
const enableInContextSidebar = useEnableInContextSidebar();
const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
const handleAddPost = useCallback(() => {
dispatch(showPostEditor());
}, []);
return (
loadingStatus === RequestStatus.SUCCESSFUL && isUserPrivilegedInPostingRestriction && (
<>
{!enableInContextSidebar && <div className="border-right border-light-400 mx-3" />}
<Button
variant={enableInContextSidebar ? 'plain' : 'brand'}
className={classNames(
'my-0 font-style border-0 line-height-24',
{ 'px-3 py-10px border-0': enableInContextSidebar },
)}
onClick={handleAddPost}
size={enableInContextSidebar ? 'md' : 'sm'}
>
{intl.formatMessage(messages.addAPost)}
</Button>
</>
)
);
};
export default AddPostButton;

View File

@@ -1,70 +1,36 @@
import React, { useCallback, useContext } from 'react'; import React, { memo, useCallback } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { useDispatch, useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n'; import { useIntl } from '@edx/frontend-platform/i18n';
import { import { Icon, IconButton } from '@edx/paragon';
Button, Icon, IconButton,
} from '@edx/paragon';
import { Close } from '@edx/paragon/icons'; import { Close } from '@edx/paragon/icons';
import Search from '../../../components/Search'; import { useEnableInContextSidebar } from '../../data/hooks';
import { RequestStatus } from '../../../data/constants';
import { DiscussionContext } from '../../common/context';
import { useUserPostingEnabled } from '../../data/hooks';
import { selectconfigLoadingStatus, selectEnableInContext } from '../../data/selectors';
import { TopicSearchBar as IncontextSearch } from '../../in-context-topics/topic-search';
import { postMessageToParent } from '../../utils'; import { postMessageToParent } from '../../utils';
import { showPostEditor } from '../data'; import AddPostButton from './AddPostButton';
import messages from './messages'; import messages from './messages';
import SearchField from './SearchField';
import './actionBar.scss'; import './actionBar.scss';
const PostActionsBar = () => { const PostActionsBar = () => {
const intl = useIntl(); const intl = useIntl();
const dispatch = useDispatch(); const enableInContextSidebar = useEnableInContextSidebar();
const loadingStatus = useSelector(selectconfigLoadingStatus);
const enableInContext = useSelector(selectEnableInContext);
const isUserPrivilagedInPostingRestriction = useUserPostingEnabled();
const { enableInContextSidebar, page } = useContext(DiscussionContext);
const handleCloseInContext = useCallback(() => { const handleCloseInContext = useCallback(() => {
postMessageToParent('learning.events.sidebar.close'); postMessageToParent('learning.events.sidebar.close');
}, []); }, []);
const handleAddPost = useCallback(() => {
dispatch(showPostEditor());
}, []);
return ( return (
<div className={classNames('d-flex justify-content-end flex-grow-1', { 'py-1': !enableInContextSidebar })}> <div className={classNames('d-flex justify-content-end flex-grow-1', { 'py-1': !enableInContextSidebar })}>
{!enableInContextSidebar && ( <SearchField />
(enableInContext && ['topics', 'category'].includes(page))
? <IncontextSearch />
: <Search />
)}
{enableInContextSidebar && ( {enableInContextSidebar && (
<h4 className="d-flex flex-grow-1 font-weight-bold font-style my-0 py-10px align-self-center"> <h4 className="d-flex flex-grow-1 font-weight-bold font-style my-0 py-10px align-self-center">
{intl.formatMessage(messages.title)} {intl.formatMessage(messages.title)}
</h4> </h4>
)} )}
{loadingStatus === RequestStatus.SUCCESSFUL && isUserPrivilagedInPostingRestriction && ( <AddPostButton />
<>
{!enableInContextSidebar && <div className="border-right border-light-400 mx-3" />}
<Button
variant={enableInContextSidebar ? 'plain' : 'brand'}
className={classNames(
'my-0 font-style border-0 line-height-24',
{ 'px-3 py-10px border-0': enableInContextSidebar },
)}
onClick={handleAddPost}
size={enableInContextSidebar ? 'md' : 'sm'}
>
{intl.formatMessage(messages.addAPost)}
</Button>
</>
)}
{enableInContextSidebar && ( {enableInContextSidebar && (
<> <>
<div className="border-right border-light-300 mr-3 ml-1.5 my-10px" /> <div className="border-right border-light-300 mr-3 ml-1.5 my-10px" />
@@ -74,8 +40,8 @@ const PostActionsBar = () => {
iconAs={Icon} iconAs={Icon}
onClick={handleCloseInContext} onClick={handleCloseInContext}
alt={intl.formatMessage(messages.close)} alt={intl.formatMessage(messages.close)}
iconClassNames="spinner-dimentions" iconClassNames="spinner-dimensions"
className="spinner-dimentions" className="spinner-dimensions"
/> />
</div> </div>
</> </>
@@ -84,4 +50,4 @@ const PostActionsBar = () => {
); );
}; };
export default PostActionsBar; export default memo(PostActionsBar);

View File

@@ -0,0 +1,20 @@
import React, { memo } from 'react';
import { useSelector } from 'react-redux';
import Search from '../../../components/Search';
import withConditionalInContextRendering from '../../common/withConditionalInContextRendering';
import { useCurrentPage } from '../../data/hooks';
import { selectEnableInContext } from '../../data/selectors';
import { TopicSearchBar as IncontextSearch } from '../../in-context-topics/topic-search';
const SearchField = () => {
const enableInContext = useSelector(selectEnableInContext);
const page = useCurrentPage();
return (
enableInContext && ['topics', 'category'].includes(page) ? <IncontextSearch /> : <Search />
);
};
export default memo(withConditionalInContextRendering(SearchField, false));

View File

@@ -118,7 +118,7 @@ describe('PostEditor', () => {
expect(screen.queryAllByRole('radio')).toHaveLength(2); expect(screen.queryAllByRole('radio')).toHaveLength(2);
// 2 categories with 4 subcategories each // 2 categories with 4 subcategories each
expect(screen.queryAllByText(/category-\d-topic \d/)).toHaveLength(8); expect(screen.queryAllByText(/category-\d-topic \d/)).toHaveLength(8);
// 3 non courseare topics // 3 non courseware topics
expect(screen.queryAllByText(/ncw-topic \d/)).toHaveLength(3); expect(screen.queryAllByText(/ncw-topic \d/)).toHaveLength(3);
expect(screen.queryByText('cohort', { exact: false })).not.toBeInTheDocument(); expect(screen.queryByText('cohort', { exact: false })).not.toBeInTheDocument();
expect(screen.queryByText('Post anonymously')).not.toBeInTheDocument(); expect(screen.queryByText('Post anonymously')).not.toBeInTheDocument();
@@ -199,7 +199,7 @@ describe('PostEditor', () => {
await renderComponent(); await renderComponent();
// Initially the user can't select a cohort // Initially the user can't select a cohort
expect(screen.queryByRole('combobox', { name: /cohort visibility/i })).not.toBeInTheDocument(); expect(screen.queryByRole('combobox', { name: /cohort visibility/i })).not.toBeInTheDocument();
// All coursweare topics are divided // All courseware topics are divided
[1, 2].forEach(catId => { [1, 2].forEach(catId => {
[1, 2, 3, 4].forEach((topicId) => { [1, 2, 3, 4].forEach((topicId) => {
act(() => { act(() => {

View File

@@ -0,0 +1,37 @@
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { Form, Icon } from '@edx/paragon';
import { Check } from '@edx/paragon/icons';
const ActionItem = ({
id, label, value, selected,
}) => (
<label
htmlFor={id}
style={{ cursor: 'pointer' }}
className="focus border-bottom-0 d-flex align-items-center w-100 py-2 m-0 font-weight-500 filter-menu"
data-testid={value === selected ? 'selected' : null}
aria-checked={value === selected}
tabIndex={value === selected ? '0' : '-1'}
>
<Icon src={Check} className={classNames('text-success mr-2', { invisible: value !== selected })} />
<Form.Radio id={id} className="sr-only sr-only-focusable" value={value} tabIndex="0">
{label}
</Form.Radio>
<span aria-hidden className="text-truncate">
{label}
</span>
</label>
);
ActionItem.propTypes = {
id: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
selected: PropTypes.string.isRequired,
};
export default React.memo(ActionItem);

View File

@@ -0,0 +1,81 @@
import React, { useEffect, useMemo } from 'react';
import PropTypes from 'prop-types';
import { capitalize, isEmpty, toString } from 'lodash';
import { useDispatch, useSelector } from 'react-redux';
import { Form, Spinner } from '@edx/paragon';
import { RequestStatus } from '../../../data/constants';
import { selectCourseCohorts } from '../../cohorts/data/selectors';
import { fetchCourseCohorts } from '../../cohorts/data/thunks';
import { useCourseId } from '../../data/hooks';
import { selectUserHasModerationPrivileges } from '../../data/selectors';
import { selectThreadFilters } from '../data/selectors';
import ActionItem from './ActionItem';
import withFilterHandleChange from './withFilterHandleChange';
const CohortFilters = ({ handleSortFilterChange }) => {
const dispatch = useDispatch();
const courseId = useCourseId();
const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges);
const currentFilters = useSelector(selectThreadFilters());
const { status } = useSelector(state => state.cohorts);
const cohorts = useSelector(selectCourseCohorts);
useEffect(() => {
if (userHasModerationPrivileges && isEmpty(cohorts)) {
dispatch(fetchCourseCohorts(courseId));
}
}, [userHasModerationPrivileges]);
const cohortsMenu = useMemo(() => (
<>
<ActionItem
id="all-groups"
label="All groups"
value=""
selected={currentFilters.cohort}
/>
{cohorts.map(cohort => (
<ActionItem
key={cohort.id}
id={toString(cohort.id)}
label={capitalize(cohort.name)}
value={toString(cohort.id)}
selected={currentFilters.cohort}
/>
))}
</>
), [cohorts, currentFilters.cohort]);
return (
userHasModerationPrivileges && (
<>
<div className="border-bottom my-2" />
{status === RequestStatus.IN_PROGRESS ? (
<div className="d-flex justify-content-center p-4">
<Spinner animation="border" variant="primary" size="lg" />
</div>
) : (
<div className="d-flex flex-row pt-2">
<Form.RadioSet
name="cohort"
className="d-flex flex-column list-group list-group-flush w-100"
value={currentFilters.cohort}
onChange={handleSortFilterChange}
>
{cohortsMenu}
</Form.RadioSet>
</div>
)}
</>
)
);
};
CohortFilters.propTypes = {
handleSortFilterChange: PropTypes.func.isRequired,
};
export default React.memo(withFilterHandleChange(CohortFilters));

View File

@@ -0,0 +1,69 @@
import React, { useCallback, useMemo, useState } from 'react';
import PropTypes from 'prop-types';
import { capitalize, toString } from 'lodash';
import { useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Collapsible, Icon } from '@edx/paragon';
import { Tune } from '@edx/paragon/icons';
import { selectCourseCohorts } from '../../cohorts/data/selectors';
import { selectThreadFilters, selectThreadSorting } from '../data/selectors';
import messages from './messages';
const CollapsibleFilter = ({ children }) => {
const intl = useIntl();
const currentSorting = useSelector(selectThreadSorting());
const currentFilters = useSelector(selectThreadFilters());
const cohorts = useSelector(selectCourseCohorts);
const [isOpen, setOpen] = useState(false);
const selectedCohort = useMemo(() => (
cohorts.find(cohort => (
toString(cohort.id) === currentFilters.cohort
))
), [cohorts, currentFilters.cohort]);
const handleToggle = useCallback(() => {
setOpen(!isOpen);
}, [isOpen]);
return (
<Collapsible.Advanced
open={isOpen}
onToggle={handleToggle}
className="filter-bar collapsible-card-lg border-0"
>
<Collapsible.Trigger className="collapsible-trigger border-0">
<span className="text-primary-500 pr-4 font-style">
{intl.formatMessage(messages.sortFilterStatus, {
own: false,
type: currentFilters.postType,
sort: currentSorting,
status: currentFilters.status,
cohortType: selectedCohort?.name ? 'group' : 'all',
cohort: capitalize(selectedCohort?.name),
})}
</span>
<span id="icon-tune">
<Collapsible.Visible whenClosed>
<Icon src={Tune} />
</Collapsible.Visible>
<Collapsible.Visible whenOpen>
<Icon src={Tune} />
</Collapsible.Visible>
</span>
</Collapsible.Trigger>
<Collapsible.Body className="collapsible-body px-4 pb-3 pt-0">
{children}
</Collapsible.Body>
</Collapsible.Advanced>
);
};
CollapsibleFilter.propTypes = {
children: PropTypes.node.isRequired,
};
export default React.memo(CollapsibleFilter);

View File

@@ -1,317 +1,24 @@
import React, { import React from 'react';
useCallback, useContext, useEffect, useMemo, useState,
} from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames'; import { Form } from '@edx/paragon';
import { capitalize, isEmpty, toString } from 'lodash';
import { useDispatch, useSelector } from 'react-redux';
import { useParams } from 'react-router-dom';
import { sendTrackEvent } from '@edx/frontend-platform/analytics'; import CohortFilters from './CohortFilters';
import { useIntl } from '@edx/frontend-platform/i18n'; import CollapsibleFilter from './CollapsibleFilter';
import { import PostSortFilters from './PostSortFilters';
Collapsible, Form, Icon, Spinner, import PostStatusFilters from './PostStatusFilters';
} from '@edx/paragon'; import PostTypeFilters from './PostTypeFilters';
import { Check, Tune } from '@edx/paragon/icons';
import { const PostFilterBar = () => (
PostsStatusFilter, RequestStatus, <CollapsibleFilter>
ThreadOrdering, ThreadType, <Form>
} from '../../../data/constants'; <div className="d-flex flex-row py-2 justify-content-between">
import { selectCourseCohorts } from '../../cohorts/data/selectors'; <PostTypeFilters />
import { fetchCourseCohorts } from '../../cohorts/data/thunks'; <PostStatusFilters />
import { DiscussionContext } from '../../common/context'; <PostSortFilters />
import { selectUserHasModerationPrivileges, selectUserIsGroupTa } from '../../data/selectors'; </div>
import { <CohortFilters />
setCohortFilter, setPostsTypeFilter, setSortedBy, setStatusFilter, </Form>
} from '../data'; </CollapsibleFilter>
import { selectThreadFilters, selectThreadSorting } from '../data/selectors'; );
import messages from './messages';
export const ActionItem = React.memo(({
id,
label,
value,
selected,
}) => (
<label
htmlFor={id}
className="focus border-bottom-0 d-flex align-items-center w-100 py-2 m-0 font-weight-500 filter-menu"
data-testid={value === selected ? 'selected' : null}
style={{ cursor: 'pointer' }}
aria-checked={value === selected}
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
tabIndex={value === selected ? '0' : '-1'}
>
<Icon src={Check} className={classNames('text-success mr-2', { invisible: value !== selected })} />
<Form.Radio id={id} className="sr-only sr-only-focusable" value={value} tabIndex="0">
{label}
</Form.Radio>
<span aria-hidden className="text-truncate">
{label}
</span>
</label>
));
ActionItem.propTypes = {
id: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
selected: PropTypes.string.isRequired,
};
const PostFilterBar = () => {
const intl = useIntl();
const dispatch = useDispatch();
const { courseId } = useParams();
const { page } = useContext(DiscussionContext);
const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges);
const userIsGroupTa = useSelector(selectUserIsGroupTa);
const currentSorting = useSelector(selectThreadSorting());
const currentFilters = useSelector(selectThreadFilters());
const { status } = useSelector(state => state.cohorts);
const cohorts = useSelector(selectCourseCohorts);
const [isOpen, setOpen] = useState(false);
const selectedCohort = useMemo(() => (
cohorts.find(cohort => (
toString(cohort.id) === currentFilters.cohort
))
), [cohorts, currentFilters.cohort]);
const handleSortFilterChange = useCallback((event) => {
const currentType = currentFilters.postType;
const currentStatus = currentFilters.status;
const {
name,
value,
} = event.currentTarget;
const filterContentEventProperties = {
statusFilter: currentStatus,
threadTypeFilter: currentType,
sortFilter: currentSorting,
cohortFilter: selectedCohort,
triggeredBy: name,
};
if (name === 'type') {
dispatch(setPostsTypeFilter(value));
if (
value === ThreadType.DISCUSSION && currentStatus === PostsStatusFilter.UNANSWERED
) {
// You can't filter discussions by unanswered
dispatch(setStatusFilter(PostsStatusFilter.ALL));
}
filterContentEventProperties.threadTypeFilter = value;
}
if (name === 'status') {
dispatch(setStatusFilter(value));
if (value === PostsStatusFilter.UNANSWERED && currentType !== ThreadType.QUESTION) {
// You can't filter discussions by unanswered so switch type to questions
dispatch(setPostsTypeFilter(ThreadType.QUESTION));
}
if (value === PostsStatusFilter.UNRESPONDED && currentType !== ThreadType.DISCUSSION) {
// You can't filter questions by not responded so switch type to discussion
dispatch(setPostsTypeFilter(ThreadType.DISCUSSION));
}
filterContentEventProperties.statusFilter = value;
}
if (name === 'sort') {
dispatch(setSortedBy(value));
filterContentEventProperties.sortFilter = value;
}
if (name === 'cohort') {
dispatch(setCohortFilter(value));
filterContentEventProperties.cohortFilter = value;
}
sendTrackEvent('edx.forum.filter.content', filterContentEventProperties);
}, [currentFilters, currentSorting, dispatch, selectedCohort]);
const handleToggle = useCallback(() => {
setOpen(!isOpen);
}, [isOpen]);
useEffect(() => {
if (userHasModerationPrivileges && isEmpty(cohorts)) {
dispatch(fetchCourseCohorts(courseId));
}
}, [courseId, userHasModerationPrivileges]);
const renderCohortFilter = useMemo(() => (
userHasModerationPrivileges && (
<>
<div className="border-bottom my-2" />
{status === RequestStatus.IN_PROGRESS ? (
<div className="d-flex justify-content-center p-4">
<Spinner animation="border" variant="primary" size="lg" />
</div>
) : (
<div className="d-flex flex-row pt-2">
<Form.RadioSet
name="cohort"
className="d-flex flex-column list-group list-group-flush w-100"
value={currentFilters.cohort}
onChange={handleSortFilterChange}
>
<ActionItem
id="all-groups"
label="All groups"
value=""
selected={currentFilters.cohort}
/>
{cohorts.map(cohort => (
<ActionItem
key={cohort.id}
id={toString(cohort.id)}
label={capitalize(cohort.name)}
value={toString(cohort.id)}
selected={currentFilters.cohort}
/>
))}
</Form.RadioSet>
</div>
)}
</>
)
), [cohorts, currentFilters.cohort, handleSortFilterChange, status, userHasModerationPrivileges]);
return (
<Collapsible.Advanced
open={isOpen}
onToggle={handleToggle}
className="filter-bar collapsible-card-lg border-0"
>
<Collapsible.Trigger className="collapsible-trigger border-0">
<span className="text-primary-500 pr-4 font-style">
{intl.formatMessage(messages.sortFilterStatus, {
own: false,
type: currentFilters.postType,
sort: currentSorting,
status: currentFilters.status,
cohortType: selectedCohort?.name ? 'group' : 'all',
cohort: capitalize(selectedCohort?.name),
})}
</span>
<span id="icon-tune">
<Collapsible.Visible whenClosed>
<Icon src={Tune} />
</Collapsible.Visible>
<Collapsible.Visible whenOpen>
<Icon src={Tune} />
</Collapsible.Visible>
</span>
</Collapsible.Trigger>
<Collapsible.Body className="collapsible-body px-4 pb-3 pt-0">
<Form>
<div className="d-flex flex-row py-2 justify-content-between">
<Form.RadioSet
name="type"
className="d-flex flex-column list-group list-group-flush"
value={currentFilters.postType}
onChange={handleSortFilterChange}
>
<ActionItem
id="type-all"
label={intl.formatMessage(messages.allPosts)}
value={ThreadType.ALL}
selected={currentFilters.postType}
/>
<ActionItem
id="type-discussions"
label={intl.formatMessage(messages.filterDiscussions)}
value={ThreadType.DISCUSSION}
selected={currentFilters.postType}
/>
<ActionItem
id="type-questions"
label={intl.formatMessage(messages.filterQuestions)}
value={ThreadType.QUESTION}
selected={currentFilters.postType}
/>
</Form.RadioSet>
<Form.RadioSet
name="status"
className="d-flex flex-column list-group list-group-flush"
value={currentFilters.status}
onChange={handleSortFilterChange}
>
<ActionItem
id="status-any"
label={intl.formatMessage(messages.filterAnyStatus)}
value={PostsStatusFilter.ALL}
selected={currentFilters.status}
/>
<ActionItem
id="status-unread"
label={intl.formatMessage(messages.filterUnread)}
value={PostsStatusFilter.UNREAD}
selected={currentFilters.status}
/>
{page !== 'my-posts' && (
<ActionItem
id="status-following"
label={intl.formatMessage(messages.filterFollowing)}
value={PostsStatusFilter.FOLLOWING}
selected={currentFilters.status}
/>
)}
{(userHasModerationPrivileges || userIsGroupTa) && (
<ActionItem
id="status-reported"
label={intl.formatMessage(messages.filterReported)}
value={PostsStatusFilter.REPORTED}
selected={currentFilters.status}
/>
)}
<ActionItem
id="status-unanswered"
label={intl.formatMessage(messages.filterUnanswered)}
value={PostsStatusFilter.UNANSWERED}
selected={currentFilters.status}
/>
<ActionItem
id="status-unresponded"
label={intl.formatMessage(messages.filterUnresponded)}
value={PostsStatusFilter.UNRESPONDED}
selected={currentFilters.status}
/>
</Form.RadioSet>
<Form.RadioSet
name="sort"
className="d-flex flex-column list-group list-group-flush"
value={currentSorting}
onChange={handleSortFilterChange}
>
<ActionItem
id="sort-activity"
label={intl.formatMessage(messages.lastActivityAt)}
value={ThreadOrdering.BY_LAST_ACTIVITY}
selected={currentSorting}
/>
<ActionItem
id="sort-comments"
label={intl.formatMessage(messages.commentCount)}
value={ThreadOrdering.BY_COMMENT_COUNT}
selected={currentSorting}
/>
<ActionItem
id="sort-votes"
label={intl.formatMessage(messages.voteCount)}
value={ThreadOrdering.BY_VOTE_COUNT}
selected={currentSorting}
/>
</Form.RadioSet>
</div>
{renderCohortFilter}
</Form>
</Collapsible.Body>
</Collapsible.Advanced>
);
};
export default React.memo(PostFilterBar); export default React.memo(PostFilterBar);

View File

@@ -0,0 +1,52 @@
import React from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Form } from '@edx/paragon';
import { ThreadOrdering } from '../../../data/constants';
import { selectThreadSorting } from '../data/selectors';
import ActionItem from './ActionItem';
import messages from './messages';
import withFilterHandleChange from './withFilterHandleChange';
const PostSortFilters = ({ handleSortFilterChange }) => {
const intl = useIntl();
const currentSorting = useSelector(selectThreadSorting());
return (
<Form.RadioSet
name="sort"
className="d-flex flex-column list-group list-group-flush"
value={currentSorting}
onChange={handleSortFilterChange}
>
<ActionItem
id="sort-activity"
label={intl.formatMessage(messages.lastActivityAt)}
value={ThreadOrdering.BY_LAST_ACTIVITY}
selected={currentSorting}
/>
<ActionItem
id="sort-comments"
label={intl.formatMessage(messages.commentCount)}
value={ThreadOrdering.BY_COMMENT_COUNT}
selected={currentSorting}
/>
<ActionItem
id="sort-votes"
label={intl.formatMessage(messages.voteCount)}
value={ThreadOrdering.BY_VOTE_COUNT}
selected={currentSorting}
/>
</Form.RadioSet>
);
};
PostSortFilters.propTypes = {
handleSortFilterChange: PropTypes.func.isRequired,
};
export default React.memo(withFilterHandleChange(PostSortFilters));

View File

@@ -0,0 +1,79 @@
import React from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Form } from '@edx/paragon';
import { PostsStatusFilter } from '../../../data/constants';
import { useCurrentPage } from '../../data/hooks';
import { selectUserHasModerationPrivileges, selectUserIsGroupTa } from '../../data/selectors';
import { selectThreadFilters } from '../data/selectors';
import ActionItem from './ActionItem';
import messages from './messages';
import withFilterHandleChange from './withFilterHandleChange';
const PostStatusFilters = ({ handleSortFilterChange }) => {
const intl = useIntl();
const page = useCurrentPage();
const userHasModerationPrivileges = useSelector(selectUserHasModerationPrivileges);
const userIsGroupTa = useSelector(selectUserIsGroupTa);
const { status } = useSelector(selectThreadFilters());
return (
<Form.RadioSet
name="status"
className="d-flex flex-column list-group list-group-flush"
value={status}
onChange={handleSortFilterChange}
>
<ActionItem
id="status-any"
label={intl.formatMessage(messages.filterAnyStatus)}
value={PostsStatusFilter.ALL}
selected={status}
/>
<ActionItem
id="status-unread"
label={intl.formatMessage(messages.filterUnread)}
value={PostsStatusFilter.UNREAD}
selected={status}
/>
{page !== 'my-posts' && (
<ActionItem
id="status-following"
label={intl.formatMessage(messages.filterFollowing)}
value={PostsStatusFilter.FOLLOWING}
selected={status}
/>
)}
{(userHasModerationPrivileges || userIsGroupTa) && (
<ActionItem
id="status-reported"
label={intl.formatMessage(messages.filterReported)}
value={PostsStatusFilter.REPORTED}
selected={status}
/>
)}
<ActionItem
id="status-unanswered"
label={intl.formatMessage(messages.filterUnanswered)}
value={PostsStatusFilter.UNANSWERED}
selected={status}
/>
<ActionItem
id="status-unresponded"
label={intl.formatMessage(messages.filterUnresponded)}
value={PostsStatusFilter.UNRESPONDED}
selected={status}
/>
</Form.RadioSet>
);
};
PostStatusFilters.propTypes = {
handleSortFilterChange: PropTypes.func.isRequired,
};
export default React.memo(withFilterHandleChange(PostStatusFilters));

View File

@@ -0,0 +1,52 @@
import React from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Form } from '@edx/paragon';
import { ThreadType } from '../../../data/constants';
import { selectThreadFilters } from '../data/selectors';
import ActionItem from './ActionItem';
import messages from './messages';
import withFilterHandleChange from './withFilterHandleChange';
const PostTypeFilters = ({ handleSortFilterChange }) => {
const intl = useIntl();
const currentFilters = useSelector(selectThreadFilters());
return (
<Form.RadioSet
name="type"
className="d-flex flex-column list-group list-group-flush"
value={currentFilters.postType}
onChange={handleSortFilterChange}
>
<ActionItem
id="type-all"
label={intl.formatMessage(messages.allPosts)}
value={ThreadType.ALL}
selected={currentFilters.postType}
/>
<ActionItem
id="type-discussions"
label={intl.formatMessage(messages.filterDiscussions)}
value={ThreadType.DISCUSSION}
selected={currentFilters.postType}
/>
<ActionItem
id="type-questions"
label={intl.formatMessage(messages.filterQuestions)}
value={ThreadType.QUESTION}
selected={currentFilters.postType}
/>
</Form.RadioSet>
);
};
PostTypeFilters.propTypes = {
handleSortFilterChange: PropTypes.func.isRequired,
};
export default React.memo(withFilterHandleChange(PostTypeFilters));

View File

@@ -0,0 +1,84 @@
import React, { useCallback, useMemo } from 'react';
import { toString } from 'lodash';
import { useDispatch, useSelector } from 'react-redux';
import { sendTrackEvent } from '@edx/frontend-platform/analytics';
import { PostsStatusFilter, ThreadType } from '../../../data/constants';
import { selectCourseCohorts } from '../../cohorts/data/selectors';
import {
setCohortFilter, setPostsTypeFilter, setSortedBy, setStatusFilter,
} from '../data';
import { selectThreadFilters, selectThreadSorting } from '../data/selectors';
const withFilterHandleChange = WrappedComponent => (
function FilterHandleChange(props) {
const dispatch = useDispatch();
const currentSorting = useSelector(selectThreadSorting());
const currentFilters = useSelector(selectThreadFilters());
const cohorts = useSelector(selectCourseCohorts);
const selectedCohort = useMemo(() => (
cohorts?.find(cohort => (
toString(cohort.id) === currentFilters.cohort
))
), [cohorts, currentFilters.cohort]);
const handleSortFilterChange = useCallback((event) => {
const currentType = currentFilters.postType;
const currentStatus = currentFilters.status;
const {
name,
value,
} = event.currentTarget;
const filterContentEventProperties = {
statusFilter: currentStatus,
threadTypeFilter: currentType,
sortFilter: currentSorting,
cohortFilter: selectedCohort,
triggeredBy: name,
};
if (name === 'type') {
dispatch(setPostsTypeFilter(value));
if (
value === ThreadType.DISCUSSION && currentStatus === PostsStatusFilter.UNANSWERED
) {
// You can't filter discussions by unanswered
dispatch(setStatusFilter(PostsStatusFilter.ALL));
}
filterContentEventProperties.threadTypeFilter = value;
}
if (name === 'status') {
dispatch(setStatusFilter(value));
if (value === PostsStatusFilter.UNANSWERED && currentType !== ThreadType.QUESTION) {
// You can't filter discussions by unanswered so switch type to questions
dispatch(setPostsTypeFilter(ThreadType.QUESTION));
}
if (value === PostsStatusFilter.UNRESPONDED && currentType !== ThreadType.DISCUSSION) {
// You can't filter questions by not responded so switch type to discussion
dispatch(setPostsTypeFilter(ThreadType.DISCUSSION));
}
filterContentEventProperties.statusFilter = value;
}
if (name === 'sort') {
dispatch(setSortedBy(value));
filterContentEventProperties.sortFilter = value;
}
if (name === 'cohort') {
dispatch(setCohortFilter(value));
filterContentEventProperties.cohortFilter = value;
}
sendTrackEvent('edx.forum.filter.content', filterContentEventProperties);
}, [currentFilters, currentSorting, selectedCohort]);
return <WrappedComponent {...props} handleSortFilterChange={handleSortFilterChange} />;
}
);
export default withFilterHandleChange;

View File

@@ -31,10 +31,10 @@ const LikeButton = ({ count, onClick, voted }) => {
<IconButton <IconButton
src={voted ? ThumbUpFilled : ThumbUpOutline} src={voted ? ThumbUpFilled : ThumbUpOutline}
onClick={handleClick} onClick={handleClick}
className="post-footer-icon-dimentions" className="post-footer-icon-dimensions"
alt="Like" alt="Like"
iconAs={Icon} iconAs={Icon}
iconClassNames="like-icon-dimentions" iconClassNames="like-icon-dimensions"
/> />
</OverlayTrigger> </OverlayTrigger>
<div className="font-style"> <div className="font-style">

View File

@@ -138,8 +138,8 @@ const Post = ({ handleAddResponseButton }) => {
title={intl.formatMessage(messages.deletePostTitle)} title={intl.formatMessage(messages.deletePostTitle)}
description={intl.formatMessage(messages.deletePostDescription)} description={intl.formatMessage(messages.deletePostDescription)}
onClose={hideDeleteConfirmation} onClose={hideDeleteConfirmation}
comfirmAction={handleDeleteConfirmation} confirmAction={handleDeleteConfirmation}
closeButtonVaraint="tertiary" closeButtonVariant="tertiary"
confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)} confirmButtonText={intl.formatMessage(messages.deleteConfirmationDelete)}
/> />
{!abuseFlagged && ( {!abuseFlagged && (
@@ -148,7 +148,7 @@ const Post = ({ handleAddResponseButton }) => {
title={intl.formatMessage(messages.reportPostTitle)} title={intl.formatMessage(messages.reportPostTitle)}
description={intl.formatMessage(messages.reportPostDescription)} description={intl.formatMessage(messages.reportPostDescription)}
onClose={hideReportConfirmation} onClose={hideReportConfirmation}
comfirmAction={handleReportConfirmation} confirmAction={handleReportConfirmation}
confirmButtonVariant="danger" confirmButtonVariant="danger"
/> />
)} )}

View File

@@ -56,8 +56,8 @@ const PostFooter = ({
return true; return true;
}} }}
iconAs={Icon} iconAs={Icon}
iconClassNames="follow-icon-dimentions" iconClassNames="follow-icon-dimensions"
className="post-footer-icon-dimentions" className="post-footer-icon-dimensions"
alt="Follow" alt="Follow"
/> />
</OverlayTrigger> </OverlayTrigger>

View File

@@ -1,5 +1,4 @@
/* eslint-disable react/no-unknown-property */ import React, { useMemo } from 'react';
import React, { useContext, useMemo } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classNames from 'classnames'; import classNames from 'classnames';
@@ -7,13 +6,15 @@ import { useSelector } from 'react-redux';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { useIntl } from '@edx/frontend-platform/i18n'; import { useIntl } from '@edx/frontend-platform/i18n';
import { Badge, Icon, Truncate } from '@edx/paragon'; import { Badge, Icon } from '@edx/paragon';
import { CheckCircle } from '@edx/paragon/icons'; import { CheckCircle } from '@edx/paragon/icons';
import { PushPin } from '../../../components/icons'; import { PushPin } from '../../../components/icons';
import { AvatarOutlineAndLabelColors, Routes, ThreadType } from '../../../data/constants'; import { AvatarOutlineAndLabelColors, Routes, ThreadType } from '../../../data/constants';
import AuthorLabel from '../../common/AuthorLabel'; import AuthorLabel from '../../common/AuthorLabel';
import { DiscussionContext } from '../../common/context'; import {
useCategory, useCourseId, useCurrentPage, useEnableInContextSidebar, useLearnerUsername, usePostId,
} from '../../data/hooks';
import { discussionsPath, isPostPreviewAvailable } from '../../utils'; import { discussionsPath, isPostPreviewAvailable } from '../../utils';
import { selectThread } from '../data/selectors'; import { selectThread } from '../data/selectors';
import messages from './messages'; import messages from './messages';
@@ -26,18 +27,18 @@ const PostLink = ({
showDivider, showDivider,
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const { const courseId = useCourseId();
courseId, const selectedPostId = usePostId();
postId: selectedPostId, const page = useCurrentPage();
page, const enableInContextSidebar = useEnableInContextSidebar();
enableInContextSidebar, const category = useCategory();
category, const learnerUsername = useLearnerUsername();
learnerUsername,
} = useContext(DiscussionContext);
const { const {
topicId, hasEndorsed, type, author, authorLabel, abuseFlagged, abuseFlaggedCount, read, commentCount, topicId, hasEndorsed, type, author, authorLabel, abuseFlagged, abuseFlaggedCount, read, commentCount,
unreadCommentCount, id, pinned, previewBody, title, voted, voteCount, following, groupId, groupName, createdAt, unreadCommentCount, id, pinned, previewBody, title, voted, voteCount, following, groupId, groupName, createdAt,
} = useSelector(selectThread(postId)); } = useSelector(selectThread(postId));
const linkUrl = discussionsPath(Routes.COMMENTS.PAGES[page], { const linkUrl = discussionsPath(Routes.COMMENTS.PAGES[page], {
0: enableInContextSidebar ? 'in-context' : undefined, 0: enableInContextSidebar ? 'in-context' : undefined,
courseId, courseId,
@@ -46,6 +47,7 @@ const PostLink = ({
category, category,
learnerUsername, learnerUsername,
}); });
const showAnsweredBadge = hasEndorsed && type === ThreadType.QUESTION; const showAnsweredBadge = hasEndorsed && type === ThreadType.QUESTION;
const authorLabelColor = AvatarOutlineAndLabelColors[authorLabel]; const authorLabelColor = AvatarOutlineAndLabelColors[authorLabel];
const canSeeReportedBadge = abuseFlagged || abuseFlaggedCount; const canSeeReportedBadge = abuseFlagged || abuseFlaggedCount;
@@ -87,48 +89,46 @@ const PostLink = ({
/> />
<div className="d-flex flex-column flex-fill" style={{ minWidth: 0 }}> <div className="d-flex flex-column flex-fill" style={{ minWidth: 0 }}>
<div className="d-flex flex-column justify-content-start mw-100 flex-fill" style={{ marginBottom: '-3px' }}> <div className="d-flex flex-column justify-content-start mw-100 flex-fill" style={{ marginBottom: '-3px' }}>
<div className="d-flex align-items-center pb-0 mb-0 flex-fill font-weight-500"> <div className="d-flex align-items-center pb-0 mb-0 flex-fill">
<Truncate lines={1} className="mr-1.5" whiteSpace> <div className="text-truncate mr-1">
<span <span className={classNames(
class={ 'font-weight-500 font-size-14 text-primary-500 font-style align-bottom mr-1',
classNames( { 'font-weight-bolder': !read },
'font-weight-500 font-size-14 text-primary-500 font-style align-bottom', )}
{ 'font-weight-bolder': !read },
)
}
> >
{title} {title}
</span> </span>
<span class="align-bottom"> </span> <span className="text-gray-700 font-weight-normal font-size-14 font-style align-bottom">
<span {isPostPreviewAvailable(previewBody) ? previewBody : intl.formatMessage(messages.postWithoutPreview)}
class="text-gray-700 font-weight-normal font-size-14 font-style align-bottom"
>
{isPostPreviewAvailable(previewBody)
? previewBody
: intl.formatMessage(messages.postWithoutPreview)}
</span> </span>
</Truncate> </div>
{showAnsweredBadge && ( {showAnsweredBadge && (
<Icon src={CheckCircle} className="text-success font-weight-500 ml-auto badge-padding" data-testid="check-icon"> <Icon
<span className="sr-only">{' '}answered</span> data-testid="check-icon"
</Icon> src={CheckCircle}
className="text-success font-weight-500 ml-auto badge-padding"
>
<span className="sr-only">{' '}answered</span>
</Icon>
)} )}
{canSeeReportedBadge && ( {canSeeReportedBadge && (
<Badge <Badge
variant="danger" variant="danger"
data-testid="reported-post" data-testid="reported-post"
className={`font-weight-500 badge-padding ${showAnsweredBadge ? 'ml-2' : 'ml-auto'}`} className={`font-weight-500 badge-padding ${showAnsweredBadge ? 'ml-2' : 'ml-auto'}`}
> >
{intl.formatMessage(messages.contentReported)} {intl.formatMessage(messages.contentReported)}
<span className="sr-only">{' '}reported</span> <span className="sr-only">{' '}reported</span>
</Badge> </Badge>
)} )}
{pinned && ( {pinned && (
<Icon <Icon
src={PushPin} src={PushPin}
className={`post-summary-icons-dimensions text-gray-700 className={classNames('post-summary-icons-dimensions text-gray-700', {
${canSeeReportedBadge || showAnsweredBadge ? 'ml-2' : 'ml-auto'}`} 'ml-2': canSeeReportedBadge || showAnsweredBadge,
/> 'ml-auto': !canSeeReportedBadge && !showAnsweredBadge,
})}
/>
)} )}
</div> </div>
</div> </div>

View File

@@ -1,31 +1,23 @@
import React, { useEffect } from 'react'; import React, { memo } from 'react';
import isEmpty from 'lodash/isEmpty'; import isEmpty from 'lodash/isEmpty';
import { useDispatch } from 'react-redux';
import { ProductTour } from '@edx/paragon'; import { ProductTour } from '@edx/paragon';
import withConditionalInContextRendering from '../common/withConditionalInContextRendering';
import { useTourConfiguration } from '../data/hooks'; import { useTourConfiguration } from '../data/hooks';
import { fetchDiscussionTours } from './data/thunks';
const DiscussionsProductTour = () => { const DiscussionsProductTour = () => {
const dispatch = useDispatch();
const config = useTourConfiguration(); const config = useTourConfiguration();
console.log('DiscussionsProductTour');
useEffect(() => {
dispatch(fetchDiscussionTours());
}, []);
return ( return (
// eslint-disable-next-line react/jsx-no-useless-fragment !isEmpty(config) && (
<> <ProductTour
{!isEmpty(config) && ( tours={config}
<ProductTour />
tours={config} )
/>
)}
</>
); );
}; };
export default DiscussionsProductTour; export default memo(withConditionalInContextRendering(DiscussionsProductTour, false));

View File

@@ -9,7 +9,7 @@ export const getDiscussionTourUrl = () => `${getConfig().LMS_BASE_URL}/api/user_
* This function makes an HTTP GET request to the API to retrieve a list of tours for the authenticated user. * This function makes an HTTP GET request to the API to retrieve a list of tours for the authenticated user.
* @returns {Promise} - A promise that resolves to the API response data. * @returns {Promise} - A promise that resolves to the API response data.
*/ */
export async function getDiscssionTours() { export async function getDiscussionTours() {
const { data } = await getAuthenticatedHttpClient() const { data } = await getAuthenticatedHttpClient()
.get(getDiscussionTourUrl()); .get(getDiscussionTourUrl());
return data; return data;

View File

@@ -1,7 +1,7 @@
import { camelCaseObject } from '@edx/frontend-platform'; import { camelCaseObject } from '@edx/frontend-platform';
import { logError } from '@edx/frontend-platform/logging'; import { logError } from '@edx/frontend-platform/logging';
import { getDiscssionTours, updateDiscussionTour } from './api'; import { getDiscussionTours, updateDiscussionTour } from './api';
import { import {
discussionsTourRequest, discussionsTourRequest,
discussionsToursRequestError, discussionsToursRequestError,
@@ -21,7 +21,7 @@ export function fetchDiscussionTours() {
return async (dispatch) => { return async (dispatch) => {
try { try {
dispatch(discussionsTourRequest()); dispatch(discussionsTourRequest());
const data = await getDiscssionTours(); const data = await getDiscussionTours();
dispatch(fetchUserDiscussionsToursSuccess(camelCaseObject(normaliseTourData(data)))); dispatch(fetchUserDiscussionsToursSuccess(camelCaseObject(normaliseTourData(data))));
} catch (error) { } catch (error) {
dispatch(discussionsToursRequestError()); dispatch(discussionsToursRequestError());

View File

@@ -3,9 +3,8 @@ import { messages as headerMessages } from '@edx/frontend-component-header';
import { messages as paragonMessages } from '@edx/paragon'; import { messages as paragonMessages } from '@edx/paragon';
import arMessages from './messages/ar.json'; import arMessages from './messages/ar.json';
// no need to import en messages-- they are in the defaultMessage field
import csMessages from './messages/cs.json'; import csMessages from './messages/cs.json';
import deMessages from './messages/de_DE.json'; import deDEMessages from './messages/de_DE.json';
import es419Messages from './messages/es_419.json'; import es419Messages from './messages/es_419.json';
import esARMessages from './messages/es_AR.json'; import esARMessages from './messages/es_AR.json';
import esESMessages from './messages/es_ES.json'; import esESMessages from './messages/es_ES.json';
@@ -20,27 +19,28 @@ import ptPTMessages from './messages/pt_PT.json';
import ruMessages from './messages/ru.json'; import ruMessages from './messages/ru.json';
import trTRMessages from './messages/tr_TR.json'; import trTRMessages from './messages/tr_TR.json';
import ukMessages from './messages/uk.json'; import ukMessages from './messages/uk.json';
import zhcnMessages from './messages/zh_CN.json'; import zhCNMessages from './messages/zh_CN.json';
// no need to import en messages-- they are in the defaultMessage field
const appMessages = { const appMessages = {
ar: arMessages, ar: arMessages,
de: deMessages, cs: csMessages,
'de-de': deDEMessages,
'es-419': es419Messages, 'es-419': es419Messages,
'es-ar': esARMessages,
'es-es': esESMessages,
'fa-ir': faIRMessages,
fr: frMessages, fr: frMessages,
'fr-ca': frCAMessages, 'fr-ca': frCAMessages,
'fr-fr': frFRMessages, 'fr-fr': frFRMessages,
hi: hiMessages,
'it-it': itITMessages, 'it-it': itITMessages,
pl: plMessages, pl: plMessages,
'tr-tr': trTRMessages,
'zh-cn': zhcnMessages,
'pt-pt': ptPTMessages, 'pt-pt': ptPTMessages,
'tr-tr': trTRMessages,
uk: ukMessages, uk: ukMessages,
ru: ruMessages, ru: ruMessages,
hi: hiMessages, 'zh-cn': zhCNMessages,
cs: csMessages,
'es-AR': esARMessages,
'es-ES': esESMessages,
'fa-IR': faIRMessages,
}; };
export default [ export default [

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "مواد المساق",
"learn.course.tabs.navigation.overflow.menu": "المزيد...",
"discussions.topics.backAlt": "العودة إلى قائمة المواضيع",
"discussions.topics.discussions": "{count، plural, =0 {لا مناقشات} one {مناقشة واحدة} two {مناقشتان} few {# مناقشات} many {# مناقشة} other {# مناقشات}",
"discussions.topics.questions": "{count، plural, =0 {لا مناقشات} one {سؤال واحد} two {سؤالان} few {# اسئلة} many {# سؤالًا} other {# أسئلة}",
"discussions.topics.reported": "تم الإبلاغ عن {reported}",
"discussions.topics.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل",
"discussions.topics.find.label": "البحث في المواضيع",
"discussions.topics.unnamed.section.label": "قسم بدون اسم",
"discussions.topics.unnamed.subsection.label": "قسم فرعي بدون اسم",
"discussions.subtopics.unnamed.topic.label": "موضوع لم يذكر اسمه",
"discussions.topics.title": "لا يوجد موضوع",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "لا شيء هنا حتى الان",
"discussions.topics.archived.label": "مؤرشف",
"discussions.learner.reported": "تم الإبلاغ عن {reported}",
"discussions.learner.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل",
"discussions.learner.lastLogin": "آخر نشاط {lastActiveTime}",
"discussions.learner.loadMostLearners": "تحميل المزيد",
"discussions.learner.back": "عودة",
"discussions.learner.activityForLearner": "نشاط {username}",
"discussions.learner.mostActivity": "الأكثر نشاطًا",
"discussions.learner.reportedActivity": "النشاطات المبلغ عنها",
"discussions.learner.recentActivity": "الأحدث نشاطًا",
"discussions.learner.sortFilterStatus": "جميع المتعلمين مرتبين حسب {sort, select,\n flagged {النشاطات المبلّغ غنها}\n activity {الأكثر نشاطًا}\n other {{sort}}\n }",
"discussion.learner.allActivity": "كل النشاط",
"discussion.learner.posts": "المنشورات",
"discussions.actions.button.alt": "قائمة الإجراءات", "discussions.actions.button.alt": "قائمة الإجراءات",
"discussions.actions.copylink": "نسخ الرابط", "discussions.actions.copylink": "نسخ الرابط",
"discussions.actions.edit": "تعديل", "discussions.actions.edit": "تعديل",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "أستاذ مساعد", "discussions.authors.label.ta": "أستاذ مساعد",
"discussions.learner.loadMostPosts": "تواريخ تعطيل نشطة حاليا. لا يمكن النشر في المناقشات خلال هذه الفترة.", "discussions.learner.loadMostPosts": "تواريخ تعطيل نشطة حاليا. لا يمكن النشر في المناقشات خلال هذه الفترة.",
"discussions.post.anonymous.author": "مجهول", "discussions.post.anonymous.author": "مجهول",
"discussion.banner.welcomeMessage": "🎉 مرحبًا بك في تجربة المناقشات الجديدة والمحسّنة!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "معرفة المزيد",
"discussion.banner.shareFeedback": "شاركنا رأيك",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "لن تظهر الصور التي يزيد عرضها أو ارتفاعها عن 999 بكسل عند عرض المنشور أو الرد او التعليق باستخدام مناقشات المساق المضمّنة", "discussions.editor.image.warning.message": "لن تظهر الصور التي يزيد عرضها أو ارتفاعها عن 999 بكسل عند عرض المنشور أو الرد او التعليق باستخدام مناقشات المساق المضمّنة",
"discussions.editor.image.warning.title": "تحذير!", "discussions.editor.image.warning.title": "تحذير!",
"discussions.editor.image.warning.dismiss": "حسنًا", "discussions.editor.image.warning.dismiss": "حسنًا",
"discussions.navigation.breadcrumbMenu.allTopics": "المواضيع", "navigation.course.tabs.label": "مواد المساق",
"discussions.navigation.breadcrumbMenu.showAll": "عرض الكل", "discussions.topics.backAlt": "العودة إلى قائمة المواضيع",
"discussions.navigation.navigationBar.allPosts": "جميع المنشورات", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "المواضيع", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "منشوراتي", "discussions.topics.reported": "تم الإبلاغ عن {reported}",
"discussions.navigation.navigationBar.learners": "المتعلمون", "discussions.topics.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل",
"discussions.topics.find.label": "البحث في المواضيع",
"discussions.topics.unnamed.section.label": "قسم بدون اسم",
"discussions.topics.unnamed.subsection.label": "قسم فرعي بدون اسم",
"discussions.subtopics.unnamed.topic.label": "موضوع لم يذكر اسمه",
"discussions.topics.title": "لا يوجد موضوع",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "لا شيء هنا حتى الان",
"discussions.topics.archived.label": "مؤرشف",
"discussions.learner.reported": "تم الإبلاغ عن {reported}",
"discussions.learner.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل",
"discussions.learner.lastLogin": "آخر نشاط {lastActiveTime}",
"discussions.learner.loadMostLearners": "تحميل المزيد",
"discussions.learner.back": "عودة",
"discussions.learner.activityForLearner": "نشاط {username}",
"discussions.learner.mostActivity": "الأكثر نشاطًا",
"discussions.learner.reportedActivity": "النشاطات المبلغ عنها",
"discussions.learner.recentActivity": "الأحدث نشاطًا",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "كل النشاط",
"discussion.learner.posts": "المنشورات",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "إضافة رد", "discussions.comments.comment.addResponse": "إضافة رد",
"discussions.comments.comment.abuseFlaggedMessage": "تم إبلاغ الطاقم عن هذا المحتوى لمراجعته.", "discussions.comments.comment.abuseFlaggedMessage": "تم إبلاغ الطاقم عن هذا المحتوى لمراجعته.",
"discussions.actions.back.alt": "العودة إلى القائمة", "discussions.actions.back.alt": "العودة إلى القائمة",
"discussions.comments.comment.responseCount": "{num، plural, =0 {دون رد} one {تم إظهار ردّ واحد} two {تم إظهار ردّين} few {تم إظهار # ردود} many {تم إظهار # ردًا} other {تم إظهار # ردود}}", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num، plural, =0 {لا ردود معتمدة} one {تم إظهار ردّ واحد معتمد} two {تم إظهار ردّين معتمدين} few {تم إظهار # ردود معتمدة} many {تم إظهار # ردًا معتمدًا} other {تم إظهار # ردود معتمدة}}", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "تحميل المزيد من التعليقات", "discussions.comments.comment.loadMoreComments": "تحميل المزيد من التعليقات",
"discussions.comments.comment.loadMoreResponses": "تحميل المزيد من الردود", "discussions.comments.comment.loadMoreResponses": "تحميل المزيد من الردود",
"discussions.comments.comment.visibility": "هذه المشاركة تظهر {group، select، null {للجميع} other {لـ {group}}.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "تم نشر {postType، select، discussion {المناقشة} question {المنشور} other {{postType}} {relativeTime} من طرف", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "تم النشر {relativeTime}", "discussions.comments.comment.commentTime": "تم النشر {relativeTime}",
"discussions.comments.comment.answer": "الإجابة", "discussions.comments.comment.answer": "الإجابة",
"discussions.comments.comment.answeredlabel": "تم تعليمها كمُجابة من طرف", "discussions.comments.comment.answeredlabel": "تم تعليمها كمُجابة من طرف",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "تم إقفال المنشور من طرف", "discussions.post.closedBy": "تم إقفال المنشور من طرف",
"discussion.comment.time": "منذ {time}", "discussion.comment.time": "منذ {time}",
"discussion.thread.notFound": "المناقشة غير موجودة", "discussion.thread.notFound": "المناقشة غير موجودة",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "مرتبة حسب {sortBy}",
"discussions.topics.sort.lastActivity": "الأحدث نشاطًا",
"discussions.topics.sort.commentCount": "الاكثر نشاطًا",
"discussions.topics.sort.courseStructure": "هيكل المساق",
"discussions.topics.unnamed.label": "فئة بدون اسم",
"discussions.subtopics.unnamed.label": "فئة فرعية بدون اسم",
"tour.action.advance": "التالي",
"tour.action.dismiss": "تجاهل",
"tour.action.end": "حسنًا",
"tour.body.notRespondedFilter": "يمكنك الآن تصفية المناقشات للعثور على مشاركات بدون رد.",
"tour.title.notRespondedFilter": "خيار تصفية جديد!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "فرز الردود!",
"learn.course.tabs.navigation.overflow.menu": "المزيد...",
"discussions.navigation.breadcrumbMenu.allTopics": "المواضيع",
"discussions.navigation.breadcrumbMenu.showAll": "عرض الكل",
"discussions.navigation.navigationBar.allPosts": "جميع المنشورات",
"discussions.navigation.navigationBar.allTopics": "المواضيع",
"discussions.navigation.navigationBar.myPosts": "منشوراتي",
"discussions.navigation.navigationBar.learners": "المتعلمون",
"discussions.post.author.anonymous": "مجهول",
"discussions.post.addResponse": "أضف الرد",
"discussions.post.lastResponse": "آخر رد {time}",
"discussions.post.postedOn": "منشور في {time} من طرف {author} {authorLabel}",
"discussions.post.contentReported": "تم الإبلاغ",
"discussions.post.following": "جاري المتابعة",
"discussions.post.follow": "متابعة",
"discussions.post.followed": "تابع",
"discussions.post.notFollowed": "ليس متابع",
"discussions.post.answered": "تمّت الإجابة",
"discussions.post.unFollow": "إلغاء المتابعة",
"discussions.post.like": "أعجبني",
"discussions.post.removeLike": "إلغاء الإغجاب",
"discussions.post.liked": "اعحبني",
"discussions.post.likes": "الإعجابات",
"discussions.post.viewActivity": "عرض النشاط",
"discussions.post.activity": "النشاط",
"discussions.post.closed": "منشور مقفل أمام الردود والتعليقات",
"discussions.post.relatedTo": "متعلق بـ",
"discussions.editor.delete.post.title": "حذف المنشور",
"discussions.editor.delete.post.description": "هل أنت متأكد من رغبتك في حذف هذا المنشور نهائيًا؟",
"discussions.post.delete.confirmation.button.delete": "حذف",
"discussions.editor.report.post.title": "أتريد الإبلاغ عن محتوى غير لائق؟",
"discussions.editor.report.post.description": "سيراجع فريق الإشراف على المناقشة هذا المحتوى و يتخذ الإجراء المناسب.",
"discussions.post.closePostModal.title": "إقفال المنشور",
"discussions.post.closePostModal.text": "أدخل سبب إقفال هذه المنشور. سيظهر هذا فقط لبقية المشرفين.",
"discussions.post.closePostModal.reasonCodeInput": "السبب",
"discussions.post.closePostModal.cancel": "إلغاء",
"discussions.post.closePostModal.confirm": "إقفال المنشور",
"discussions.post.label.new": "{count} جديدة",
"discussions.post.editedBy": "عدّله",
"discussions.post.editReason": "السبب",
"discussions.post.postWithoutPreview": "المعاينة غير متاحة",
"discussions.post.follow.description": "أنت تتابع هذا المنشور/الرد",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "المناقشات", "discussions.app.title": "المناقشات",
"discussions.posts.actionBar.searchAllPosts": "البحث في كافّة المنشورات", "discussions.posts.actionBar.searchAllPosts": "البحث في كافّة المنشورات",
"discussions.posts.actionBar.search": "{page، select، topics {مواضيع البحث} posts {بحث في كل المشاركات} learners {بحث عن المتعلمين} myPosts} {بحث في كل المشاركات", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "{num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{text}\"", "discussions.actionBar.searchInfo": "{num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{text}\"",
"discussions.actionBar.searchRewriteInfo": "لم يعثر على نتائج لـ \"{searchString}\". {num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{textSearchRewrite}\" ", "discussions.actionBar.searchRewriteInfo": "لم يعثر على نتائج لـ \"{searchString}\". {num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{textSearchRewrite}\" ",
"discussions.actionBar.searchInfoSearching": "البحث جارٍ...", "discussions.actionBar.searchInfoSearching": "البحث جارٍ...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "الأحدث نشاطًا", "discussions.posts.sort.lastActivity": "الأحدث نشاطًا",
"discussions.posts.sort.commentCount": "الأكثر نشاطًا", "discussions.posts.sort.commentCount": "الأكثر نشاطًا",
"discussions.posts.sort.voteCount": "الأكثر إعجابًا", "discussions.posts.sort.voteCount": "الأكثر إعجابًا",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {جميع}\n true {ما كتبته من}\n other {{own}}\n } \n {type, select,\ndiscussion {المناقشات}\nquestion {الأسئلة}\nall {المنشورات}\nother {{type}}\n}\n {status, select,\n statusAll {}\n statusUnread {غير المقروءة}\n statusFollowing {التي تتابعها}\n statusReported {المُبلّغ عنها}\n statusUnanswered {دون إجابة}\n statusUnresponded {دون رد}\n other {{status}}\n } و المنشورة {cohortType, select,\n all {}\n group {ضمن {cohort}}\n other {{cohortType}}\n }، مرتبة حسب {sort, select,\n lastActivityAt {أحدث نشاط}\n commentCount {أكثر نشاط}\n voteCount {أكثر إعجاب}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "مجهول",
"discussions.post.addResponse": "أضف الرد",
"discussions.post.lastResponse": "آخر رد {time}",
"discussions.post.postedOn": "منشور في {time} من طرف {author} {authorLabel}",
"discussions.post.contentReported": "تم الإبلاغ",
"discussions.post.following": "جاري المتابعة",
"discussions.post.follow": "متابعة",
"discussions.post.followed": "تابع",
"discussions.post.notFollowed": "ليس متابع",
"discussions.post.answered": "تمّت الإجابة",
"discussions.post.unFollow": "إلغاء المتابعة",
"discussions.post.like": "أعجبني",
"discussions.post.removeLike": "إلغاء الإغجاب",
"discussions.post.liked": "اعحبني",
"discussions.post.likes": "الإعجابات",
"discussions.post.viewActivity": "عرض النشاط",
"discussions.post.activity": "النشاط",
"discussions.post.closed": "منشور مقفل أمام الردود والتعليقات",
"discussions.post.relatedTo": "متعلق بـ",
"discussions.editor.delete.post.title": "حذف المنشور",
"discussions.editor.delete.post.description": "هل أنت متأكد من رغبتك في حذف هذا المنشور نهائيًا؟",
"discussions.post.delete.confirmation.button.delete": "حذف",
"discussions.editor.report.post.title": "أتريد الإبلاغ عن محتوى غير لائق؟",
"discussions.editor.report.post.description": "سيراجع فريق الإشراف على المناقشة هذا المحتوى و يتخذ الإجراء المناسب.",
"discussions.post.closePostModal.title": "إقفال المنشور",
"discussions.post.closePostModal.text": "أدخل سبب إقفال هذه المنشور. سيظهر هذا فقط لبقية المشرفين.",
"discussions.post.closePostModal.reasonCodeInput": "السبب",
"discussions.post.closePostModal.cancel": "إلغاء",
"discussions.post.closePostModal.confirm": "إقفال المنشور",
"discussions.post.label.new": "{count} جديدة",
"discussions.post.editedBy": "عدّله",
"discussions.post.editReason": "السبب",
"discussions.post.postWithoutPreview": "المعاينة غير متاحة",
"discussions.post.follow.description": "أنت تتابع هذا المنشور/الرد",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "مرتبة حسب {sortBy}",
"discussions.topics.sort.lastActivity": "الأحدث نشاطًا",
"discussions.topics.sort.commentCount": "الاكثر نشاطًا",
"discussions.topics.sort.courseStructure": "هيكل المساق",
"discussions.topics.unnamed.label": "فئة بدون اسم",
"discussions.subtopics.unnamed.label": "فئة فرعية بدون اسم",
"tour.action.advance": "التالي",
"tour.action.dismiss": "تجاهل",
"tour.action.end": "حسنًا",
"tour.body.notRespondedFilter": "يمكنك الآن تصفية المناقشات للعثور على مشاركات بدون رد.",
"tour.title.notRespondedFilter": "خيار تصفية جديد!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "فرز الردود!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Materiály ke kurzu",
"learn.course.tabs.navigation.overflow.menu": "Více...",
"discussions.topics.backAlt": "Zpět na seznam témat",
"discussions.topics.discussions": "{count, plural,\n =0 {Diskuzí}\n one {# Diskuze}\n other {# Diskuzí}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Otázek}\n one {# Otázka}\n other {# Otázky}\n }",
"discussions.topics.reported": "{reported} nahlášeno",
"discussions.topics.previouslyReported": "{previouslyReported} minule nahlášeno",
"discussions.topics.find.label": "Hledat témata",
"discussions.topics.unnamed.section.label": "Nejmenovaná sekce",
"discussions.topics.unnamed.subsection.label": "Nepojmenovaná podsekce",
"discussions.subtopics.unnamed.topic.label": "Nepojmenované téma",
"discussions.topics.title": "Žádné téma neexistuje",
"discussions.topics.createTopic": "Chcete-li vytvořit téma, kontaktujte svého správce",
"discussions.topics.nothing": "Ještě tu nic není",
"discussions.topics.archived.label": "Archivováno",
"discussions.learner.reported": "{reported} nahlášeno",
"discussions.learner.previouslyReported": "{previouslyReported} minule nahlášeno",
"discussions.learner.lastLogin": "Poslední aktivita {lastActiveTime}",
"discussions.learner.loadMostLearners": "Načíst více",
"discussions.learner.back": "Zpět",
"discussions.learner.activityForLearner": "Aktivita pro {username}",
"discussions.learner.mostActivity": "Nejvíce aktivity",
"discussions.learner.reportedActivity": "Nahlášené aktivity",
"discussions.learner.recentActivity": "Nedávné aktivity",
"discussions.learner.sortFilterStatus": "Všichni studenti seřazení podle {sort, select,\n flagged {nahlášené aktivity}\n activity {nejvíce aktivity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "Všechna aktivita",
"discussion.learner.posts": "Příspěvky",
"discussions.actions.button.alt": "Nabídka akcí", "discussions.actions.button.alt": "Nabídka akcí",
"discussions.actions.copylink": "Kopírovat odkaz", "discussions.actions.copylink": "Kopírovat odkaz",
"discussions.actions.edit": "Editovat", "discussions.actions.edit": "Editovat",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Načíst další příspěvky", "discussions.learner.loadMostPosts": "Načíst další příspěvky",
"discussions.post.anonymous.author": "anonymní", "discussions.post.anonymous.author": "anonymní",
"discussion.banner.welcomeMessage": "🎉 Vítejte v novém a vylepšeném prostředí diskuzí!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Zjistěte více",
"discussion.banner.shareFeedback": "Sdílejte zpětnou vazbu",
"discussion.blackoutBanner.information": "Zasílání příspěvků v diskuzích je dočasně zakázáno týmem kurzu",
"discussions.editor.image.warning.message": "Obrázky mající šířku nebo výšku větší než 999px nebudou viditelné, když příspěvek, odpověď nebo komentář zobrazíte pomocí diskuzí v rámci kurzu", "discussions.editor.image.warning.message": "Obrázky mající šířku nebo výšku větší než 999px nebudou viditelné, když příspěvek, odpověď nebo komentář zobrazíte pomocí diskuzí v rámci kurzu",
"discussions.editor.image.warning.title": "Varování!", "discussions.editor.image.warning.title": "Varování!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Témata", "navigation.course.tabs.label": "Materiály ke kurzu",
"discussions.navigation.breadcrumbMenu.showAll": "Zobrazit vše", "discussions.topics.backAlt": "Zpět na seznam témat",
"discussions.navigation.navigationBar.allPosts": "Všechny příspěvky", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Témata", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "Moje příspěvky", "discussions.topics.reported": "{reported} nahlášeno",
"discussions.navigation.navigationBar.learners": "Studenti", "discussions.topics.previouslyReported": "{previouslyReported} minule nahlášeno",
"discussions.topics.find.label": "Hledat témata",
"discussions.topics.unnamed.section.label": "Nejmenovaná sekce",
"discussions.topics.unnamed.subsection.label": "Nepojmenovaná podsekce",
"discussions.subtopics.unnamed.topic.label": "Nepojmenované téma",
"discussions.topics.title": "Žádné téma neexistuje",
"discussions.topics.createTopic": "Chcete-li vytvořit téma, kontaktujte svého správce",
"discussions.topics.nothing": "Ještě tu nic není",
"discussions.topics.archived.label": "Archivováno",
"discussions.learner.reported": "{reported} nahlášeno",
"discussions.learner.previouslyReported": "{previouslyReported} minule nahlášeno",
"discussions.learner.lastLogin": "Poslední aktivita {lastActiveTime}",
"discussions.learner.loadMostLearners": "Načíst více",
"discussions.learner.back": "Zpět",
"discussions.learner.activityForLearner": "Aktivita pro {username}",
"discussions.learner.mostActivity": "Nejvíce aktivity",
"discussions.learner.reportedActivity": "Nahlášené aktivity",
"discussions.learner.recentActivity": "Nedávné aktivity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "Všechna aktivita",
"discussion.learner.posts": "Příspěvky",
"discussions.comments.comment.addComment": "Přidat komentář", "discussions.comments.comment.addComment": "Přidat komentář",
"discussions.comments.comment.addResponse": "Přidat odpověď", "discussions.comments.comment.addResponse": "Přidat odpověď",
"discussions.comments.comment.abuseFlaggedMessage": "Obsah byl nahlášen učiteli ke kontrole", "discussions.comments.comment.abuseFlaggedMessage": "Obsah byl nahlášen učiteli ke kontrole",
"discussions.actions.back.alt": "Zpět na seznam", "discussions.actions.back.alt": "Zpět na seznam",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {Žádné odpovědi}\n one {Zobrazení # odpovědi}\n other {Zobrazení # odpovědí}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {Žádné schválené odpovědi}\n one {Zobrazení # schválené odpovědi}\n other {Zobrazení # schválených odpovědí}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Načíst další komentáře", "discussions.comments.comment.loadMoreComments": "Načíst další komentáře",
"discussions.comments.comment.loadMoreResponses": "Načíst další odpovědi", "discussions.comments.comment.loadMoreResponses": "Načíst další odpovědi",
"discussions.comments.comment.visibility": "Tento příspěvek je viditelný pro {group, select,\n null {Všichni}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } odesláno {relativeTime} uživatelem", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Odesláno {relativeTime}", "discussions.comments.comment.commentTime": "Odesláno {relativeTime}",
"discussions.comments.comment.answer": "Odpověď", "discussions.comments.comment.answer": "Odpověď",
"discussions.comments.comment.answeredlabel": "Označit jako zodpovězené", "discussions.comments.comment.answeredlabel": "Označit jako zodpovězené",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Příspěvek zavřen uživatelem", "discussions.post.closedBy": "Příspěvek zavřen uživatelem",
"discussion.comment.time": "Před {time}", "discussion.comment.time": "Před {time}",
"discussion.thread.notFound": "Vlákno nebylo nelezeno", "discussion.thread.notFound": "Vlákno nebylo nelezeno",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Nejstarší první}\n true {Nejnovější první}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Seřazeno podle {sortBy}",
"discussions.topics.sort.lastActivity": "Nedávná aktivita",
"discussions.topics.sort.commentCount": "Nejvíce aktivity",
"discussions.topics.sort.courseStructure": "Struktura kurzu",
"discussions.topics.unnamed.label": "Nepojmenovaná kategorie",
"discussions.subtopics.unnamed.label": "Nepojmenovaná podkategorie",
"tour.action.advance": "Další",
"tour.action.dismiss": "Zamítnout",
"tour.action.end": "Dobře",
"tour.body.notRespondedFilter": "Nyní můžete filtrovat diskuse a najít příspěvky bez odpovědi.",
"tour.title.notRespondedFilter": "Nová možnost filtrování!",
"tour.body.responseSortTour": "Odpovědi a komentáře jsou nyní seřazeny podle nejnovějších. Tuto možnost použijte ke změně pořadí řazení",
"tour.title.responseSortTour": "Seřadit odpovědi!",
"learn.course.tabs.navigation.overflow.menu": "Více...",
"discussions.navigation.breadcrumbMenu.allTopics": "Témata",
"discussions.navigation.breadcrumbMenu.showAll": "Zobrazit vše",
"discussions.navigation.navigationBar.allPosts": "Všechny příspěvky",
"discussions.navigation.navigationBar.allTopics": "Témata",
"discussions.navigation.navigationBar.myPosts": "Moje příspěvky",
"discussions.navigation.navigationBar.learners": "Studenti",
"discussions.post.author.anonymous": "anonymní",
"discussions.post.addResponse": "Přidat odpověď",
"discussions.post.lastResponse": "Poslední odpověď {time}",
"discussions.post.postedOn": "Odesláno {time} uživatelem {author} {authorLabel}",
"discussions.post.contentReported": "Nahlášeno",
"discussions.post.following": "Sledováno",
"discussions.post.follow": "Sledovat",
"discussions.post.followed": "Sledoval",
"discussions.post.notFollowed": "Nesledoval",
"discussions.post.answered": "Zodpovězeno",
"discussions.post.unFollow": "Zrušit sledování",
"discussions.post.like": "Lajk",
"discussions.post.removeLike": "Zrušit lajk",
"discussions.post.liked": "Lajknul",
"discussions.post.likes": "Lajky",
"discussions.post.viewActivity": "Zobrazit aktivitu",
"discussions.post.activity": "Aktivita",
"discussions.post.closed": "Příspěvek uzavřen pro odpovědi a komentáře",
"discussions.post.relatedTo": "Související s",
"discussions.editor.delete.post.title": "Odstranit příspěvek",
"discussions.editor.delete.post.description": "Opravdu chcete smazat tento příspěvek?",
"discussions.post.delete.confirmation.button.delete": "Smazat",
"discussions.editor.report.post.title": "Nahlásit nevhodný obsah?",
"discussions.editor.report.post.description": "Tým pro moderování diskuze zkontroluje tento obsah a podnikne příslušné kroky.",
"discussions.post.closePostModal.title": "Zavřít příspěvek",
"discussions.post.closePostModal.text": "Zadejte důvod pro uzavření tohoto příspěvku. Toto se zobrazí pouze ostatním moderátorům.",
"discussions.post.closePostModal.reasonCodeInput": "Důvod",
"discussions.post.closePostModal.cancel": "Zrušit",
"discussions.post.closePostModal.confirm": "Zavřít příspěvek",
"discussions.post.label.new": "{count} nových",
"discussions.post.editedBy": "Úprava od",
"discussions.post.editReason": "Důvod",
"discussions.post.postWithoutPreview": "Není k dispozici žádný náhled",
"discussions.post.follow.description": "sledujete tento příspěvek",
"discussions.post.unfollow.description": "nesledujete tento příspěvek",
"discussions.app.title": "Diskuze", "discussions.app.title": "Diskuze",
"discussions.posts.actionBar.searchAllPosts": "Prohledejte příspěvky", "discussions.posts.actionBar.searchAllPosts": "Prohledejte příspěvky",
"discussions.posts.actionBar.search": "{page, select,\n topics {Hledat témata}\n posts {Hledat všechny příspěvky}\n learners {Hledat studenty}\n myPosts {Hledat všechny příspěvky}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Zobrazuji {count} výsledků pro \"{text}\"", "discussions.actionBar.searchInfo": "Zobrazuji {count} výsledků pro \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "Nenylezeny žádné výsledky pro \"{searchString}\". Zobrazuji {count} výsledků pro \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "Nenylezeny žádné výsledky pro \"{searchString}\". Zobrazuji {count} výsledků pro \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Vyhledávám...", "discussions.actionBar.searchInfoSearching": "Vyhledávám...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Nedávné aktivity", "discussions.posts.sort.lastActivity": "Nedávné aktivity",
"discussions.posts.sort.commentCount": "Největší aktivity", "discussions.posts.sort.commentCount": "Největší aktivity",
"discussions.posts.sort.voteCount": "Nejvíce lajků", "discussions.posts.sort.voteCount": "Nejvíce lajků",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {Vše}\n true {Vlastní}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {nepřečtené}\n statusFollowing {sledované}\n statusReported {nahlášené}\n statusUnanswered {nezodpovězené}\n statusUnresponded {nereagované}\n other {{status}}\n } {type, select,\n discussion {diskuze}\n question {otázky}\n all {příspěvky}\n other {{type}}\n } {cohortType, select,\n all {}\n group {v {cohort}}\n other {{cohortType}}\n } seřazeno podle {sort, select,\n lastActivityAt {nedávné aktivity}\n commentCount {nejvíce aktivity}\n voteCount {nejvíce lajků}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymní",
"discussions.post.addResponse": "Přidat odpověď",
"discussions.post.lastResponse": "Poslední odpověď {time}",
"discussions.post.postedOn": "Odesláno {time} uživatelem {author} {authorLabel}",
"discussions.post.contentReported": "Nahlášeno",
"discussions.post.following": "Sledováno",
"discussions.post.follow": "Sledovat",
"discussions.post.followed": "Sledoval",
"discussions.post.notFollowed": "Nesledoval",
"discussions.post.answered": "Zodpovězeno",
"discussions.post.unFollow": "Zrušit sledování",
"discussions.post.like": "Lajk",
"discussions.post.removeLike": "Zrušit lajk",
"discussions.post.liked": "Lajknul",
"discussions.post.likes": "Lajky",
"discussions.post.viewActivity": "Zobrazit aktivitu",
"discussions.post.activity": "Aktivita",
"discussions.post.closed": "Příspěvek uzavřen pro odpovědi a komentáře",
"discussions.post.relatedTo": "Související s",
"discussions.editor.delete.post.title": "Odstranit příspěvek",
"discussions.editor.delete.post.description": "Opravdu chcete smazat tento příspěvek?",
"discussions.post.delete.confirmation.button.delete": "Smazat",
"discussions.editor.report.post.title": "Nahlásit nevhodný obsah?",
"discussions.editor.report.post.description": "Tým pro moderování diskuze zkontroluje tento obsah a podnikne příslušné kroky.",
"discussions.post.closePostModal.title": "Zavřít příspěvek",
"discussions.post.closePostModal.text": "Zadejte důvod pro uzavření tohoto příspěvku. Toto se zobrazí pouze ostatním moderátorům.",
"discussions.post.closePostModal.reasonCodeInput": "Důvod",
"discussions.post.closePostModal.cancel": "Zrušit",
"discussions.post.closePostModal.confirm": "Zavřít příspěvek",
"discussions.post.label.new": "{count} nových",
"discussions.post.editedBy": "Úprava od",
"discussions.post.editReason": "Důvod",
"discussions.post.postWithoutPreview": "Není k dispozici žádný náhled",
"discussions.post.follow.description": "sledujete tento příspěvek",
"discussions.post.unfollow.description": "nesledujete tento příspěvek",
"discussions.topics.sort.message": "Seřazeno podle {sortBy}",
"discussions.topics.sort.lastActivity": "Nedávná aktivita",
"discussions.topics.sort.commentCount": "Nejvíce aktivity",
"discussions.topics.sort.courseStructure": "Struktura kurzu",
"discussions.topics.unnamed.label": "Nepojmenovaná kategorie",
"discussions.subtopics.unnamed.label": "Nepojmenovaná podkategorie",
"tour.action.advance": "Další",
"tour.action.dismiss": "Zamítnout",
"tour.action.end": "Dobře",
"tour.body.notRespondedFilter": "Nyní můžete filtrovat diskuse a najít příspěvky bez odpovědi.",
"tour.title.notRespondedFilter": "Nová možnost filtrování!",
"tour.body.responseSortTour": "Odpovědi a komentáře jsou nyní seřazeny podle nejnovějších. Tuto možnost použijte ke změně pořadí řazení",
"tour.title.responseSortTour": "Seřadit odpovědi!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Kursmaterial",
"learn.course.tabs.navigation.overflow.menu": "Mehr...",
"discussions.topics.backAlt": "Zurück zur Themenliste",
"discussions.topics.discussions": "{count, plural, =0 {Diskussion} one {# Diskussion} other {# Diskussionen} }",
"discussions.topics.questions": "{count, plural, =0 {Frage} one {# Frage} other {# Fragen} }",
"discussions.topics.reported": "{reported} gemeldet",
"discussions.topics.previouslyReported": "{previouslyReported} zuvor gemeldet",
"discussions.topics.find.label": "Themen suchen",
"discussions.topics.unnamed.section.label": "Unbenannter Abschnitt",
"discussions.topics.unnamed.subsection.label": "Unbenannter Unterabschnitt",
"discussions.subtopics.unnamed.topic.label": "Unbenanntes Thema",
"discussions.topics.title": "Kein Thema vorhanden",
"discussions.topics.createTopic": "Bitte kontaktieren Sie Ihren Administrator, um ein Thema zu erstellen",
"discussions.topics.nothing": "Hier noch nichts",
"discussions.topics.archived.label": "Archiviert",
"discussions.learner.reported": "{reported} gemeldet",
"discussions.learner.previouslyReported": "{previouslyReported} zuvor gemeldet",
"discussions.learner.lastLogin": "Zuletzt aktiv {lastActiveTime}",
"discussions.learner.loadMostLearners": "Lade weiteres",
"discussions.learner.back": "Zurück",
"discussions.learner.activityForLearner": "Aktivität für {username}",
"discussions.learner.mostActivity": "Die meisten Aktivitäten",
"discussions.learner.reportedActivity": "Gemeldete Aktivität",
"discussions.learner.recentActivity": "Letzte Aktivität",
"discussions.learner.sortFilterStatus": "Alle Lernenden sortiert nach {sort, select, flagged {gemeldete Aktivität} activity {höchste Aktivität} other {{sort}} }",
"discussion.learner.allActivity": "Alle Aktivitäten",
"discussion.learner.posts": "Beiträge",
"discussions.actions.button.alt": "Aktionsmenü", "discussions.actions.button.alt": "Aktionsmenü",
"discussions.actions.copylink": "Link kopieren", "discussions.actions.copylink": "Link kopieren",
"discussions.actions.edit": "Bearbeiten", "discussions.actions.edit": "Bearbeiten",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Mehr Beiträge laden", "discussions.learner.loadMostPosts": "Mehr Beiträge laden",
"discussions.post.anonymous.author": "Anonym", "discussions.post.anonymous.author": "Anonym",
"discussion.banner.welcomeMessage": "🎉 Willkommen beim neuen und verbesserten Diskussionserlebnis!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Lernen Sie mehr",
"discussion.banner.shareFeedback": "Feedback teilen",
"discussion.blackoutBanner.information": "Das Posten in Diskussionen wird vom Kursteam vorübergehend deaktiviert",
"discussions.editor.image.warning.message": "Bilder mit einer Breite oder Höhe von mehr als 999 Pixel sind nicht sichtbar, wenn der Beitrag, die Antwort oder der Kommentar über Inline-Kursdiskussionen angezeigt werden", "discussions.editor.image.warning.message": "Bilder mit einer Breite oder Höhe von mehr als 999 Pixel sind nicht sichtbar, wenn der Beitrag, die Antwort oder der Kommentar über Inline-Kursdiskussionen angezeigt werden",
"discussions.editor.image.warning.title": "Warnung!", "discussions.editor.image.warning.title": "Warnung!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Themen", "navigation.course.tabs.label": "Kursmaterial",
"discussions.navigation.breadcrumbMenu.showAll": "Alles anzeigen", "discussions.topics.backAlt": "Zurück zur Themenliste",
"discussions.navigation.navigationBar.allPosts": "Alle Artikel", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Themen", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "Meine Posts", "discussions.topics.reported": "{reported} gemeldet",
"discussions.navigation.navigationBar.learners": "Lernende", "discussions.topics.previouslyReported": "{previouslyReported} zuvor gemeldet",
"discussions.topics.find.label": "Themen suchen",
"discussions.topics.unnamed.section.label": "Unbenannter Abschnitt",
"discussions.topics.unnamed.subsection.label": "Unbenannter Unterabschnitt",
"discussions.subtopics.unnamed.topic.label": "Unbenanntes Thema",
"discussions.topics.title": "Kein Thema vorhanden",
"discussions.topics.createTopic": "Bitte kontaktieren Sie Ihren Administrator, um ein Thema zu erstellen",
"discussions.topics.nothing": "Hier noch nichts",
"discussions.topics.archived.label": "Archiviert",
"discussions.learner.reported": "{reported} gemeldet",
"discussions.learner.previouslyReported": "{previouslyReported} zuvor gemeldet",
"discussions.learner.lastLogin": "Zuletzt aktiv {lastActiveTime}",
"discussions.learner.loadMostLearners": "Lade weiteres",
"discussions.learner.back": "Zurück",
"discussions.learner.activityForLearner": "Aktivität für {username}",
"discussions.learner.mostActivity": "Die meisten Aktivitäten",
"discussions.learner.reportedActivity": "Gemeldete Aktivität",
"discussions.learner.recentActivity": "Letzte Aktivität",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "Alle Aktivitäten",
"discussion.learner.posts": "Beiträge",
"discussions.comments.comment.addComment": "Kommentar hinzufügen", "discussions.comments.comment.addComment": "Kommentar hinzufügen",
"discussions.comments.comment.addResponse": "Fügen Sie eine Antwort hinzu", "discussions.comments.comment.addResponse": "Fügen Sie eine Antwort hinzu",
"discussions.comments.comment.abuseFlaggedMessage": "Inhalte, die den Kursmitarbeitern zur Überprüfung gemeldet wurden", "discussions.comments.comment.abuseFlaggedMessage": "Inhalte, die den Kursmitarbeitern zur Überprüfung gemeldet wurden",
"discussions.actions.back.alt": "Zurück zur Liste", "discussions.actions.back.alt": "Zurück zur Liste",
"discussions.comments.comment.responseCount": "{num, plural, =0 {Keine Antworten} one {# Antwort wird angezeigt} other {# Antworten werden angezeigt} }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Keine empfohlenen Antworten} one {# empfohlene Antworten werden angezeigt} other {# empfohlene Antworten werden angezeigt} }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Weitere Kommentare laden", "discussions.comments.comment.loadMoreComments": "Weitere Kommentare laden",
"discussions.comments.comment.loadMoreResponses": "Weitere Antworten laden", "discussions.comments.comment.loadMoreResponses": "Weitere Antworten laden",
"discussions.comments.comment.visibility": "Dieser Beitrag ist sichtbar für {group, select, null {Jeder} other {{group}} }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select, discussion {Diskussion} question {Frage} other {{postType}} } gepostet {a0917e9bee14} von.c5z0", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Gepostet {relativeTime}", "discussions.comments.comment.commentTime": "Gepostet {relativeTime}",
"discussions.comments.comment.answer": "Antwort", "discussions.comments.comment.answer": "Antwort",
"discussions.comments.comment.answeredlabel": "Als beantwortet von markiert", "discussions.comments.comment.answeredlabel": "Als beantwortet von markiert",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post geschlossen von", "discussions.post.closedBy": "Post geschlossen von",
"discussion.comment.time": "{time} vor", "discussion.comment.time": "{time} vor",
"discussion.thread.notFound": "Thema nicht gefunden", "discussion.thread.notFound": "Thema nicht gefunden",
"discussions.comment.sortFilterStatus": "{sort, select, false {Älteste zuerst} true {Neueste zuerst} other {{sort}} }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sortiert nach {sortBy}",
"discussions.topics.sort.lastActivity": "Letzte Aktivität",
"discussions.topics.sort.commentCount": "Die meisten Aktivitäten",
"discussions.topics.sort.courseStructure": "Kursstruktur",
"discussions.topics.unnamed.label": "Unbenannte Kategorie",
"discussions.subtopics.unnamed.label": "Unbenannte Unterkategorie",
"tour.action.advance": "Weiter",
"tour.action.dismiss": "Abgewiesen",
"tour.action.end": "okay",
"tour.body.notRespondedFilter": "Jetzt können Sie Diskussionen filtern, um Beiträge ohne Antwort zu finden.",
"tour.title.notRespondedFilter": "Neue Filteroption!",
"tour.body.responseSortTour": "Antworten und Kommentare werden jetzt nach Datum sortiert. Bitte verwenden Sie diese Option, um die Sortierreihenfolge zu ändern.",
"tour.title.responseSortTour": "Antworten sortieren!",
"learn.course.tabs.navigation.overflow.menu": "Mehr...",
"discussions.navigation.breadcrumbMenu.allTopics": "Themen",
"discussions.navigation.breadcrumbMenu.showAll": "Alles anzeigen",
"discussions.navigation.navigationBar.allPosts": "Alle Artikel",
"discussions.navigation.navigationBar.allTopics": "Themen",
"discussions.navigation.navigationBar.myPosts": "Meine Posts",
"discussions.navigation.navigationBar.learners": "Lernende",
"discussions.post.author.anonymous": "Anonym",
"discussions.post.addResponse": "Antwort hinzufügen",
"discussions.post.lastResponse": "Letzte Antwort {time}",
"discussions.post.postedOn": "Gepostet {time} von {author} {authorLabel}",
"discussions.post.contentReported": "Gemeldet",
"discussions.post.following": "Folge",
"discussions.post.follow": "Folgen",
"discussions.post.followed": "Gefolgt",
"discussions.post.notFollowed": "Nicht gefolgt",
"discussions.post.answered": "Beantwortet",
"discussions.post.unFollow": "Verlassen",
"discussions.post.like": "Wie",
"discussions.post.removeLike": "nicht wie",
"discussions.post.liked": "gefallen",
"discussions.post.likes": "Likes",
"discussions.post.viewActivity": "Aktivität anzeigen",
"discussions.post.activity": "Aktivität",
"discussions.post.closed": "Beitrag für Antworten und Kommentare geschlossen",
"discussions.post.relatedTo": "Im Zusammenhang mit",
"discussions.editor.delete.post.title": "Beitrag entfernen",
"discussions.editor.delete.post.description": "Möchten Sie diesen Beitrag wirklich dauerhaft löschen?",
"discussions.post.delete.confirmation.button.delete": "Löschen",
"discussions.editor.report.post.title": "Unangemessene Inhalte melden?",
"discussions.editor.report.post.description": "Das Diskussionsmoderationsteam überprüft diesen Inhalt und ergreift entsprechende Maßnahmen.",
"discussions.post.closePostModal.title": "Beitrag schließen",
"discussions.post.closePostModal.text": "Geben Sie einen Grund für das Schließen dieses Beitrags ein. Dies wird nur anderen Moderatoren angezeigt.",
"discussions.post.closePostModal.reasonCodeInput": "Grund",
"discussions.post.closePostModal.cancel": "Löschen",
"discussions.post.closePostModal.confirm": "Beitrag schließen",
"discussions.post.label.new": "{count} Neu",
"discussions.post.editedBy": "Bearbeitet von",
"discussions.post.editReason": "Grund",
"discussions.post.postWithoutPreview": "Keine Vorschau vorhanden",
"discussions.post.follow.description": "Sie folgen diesem Beitrag",
"discussions.post.unfollow.description": "Sie folgen diesem Beitrag nicht",
"discussions.app.title": "Diskussionen", "discussions.app.title": "Diskussionen",
"discussions.posts.actionBar.searchAllPosts": "Einträge durchsuchen", "discussions.posts.actionBar.searchAllPosts": "Einträge durchsuchen",
"discussions.posts.actionBar.search": "{page, select, topics {Suchthemen} posts {Alle Beiträge durchsuchen} learners {Lernende suchen} myPosts {Alle Beiträge durchsuchen} a00a14c5d87{d9fz}09 {d9fz}09 {d9fz}09 {d9fz}", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "{count} Ergebnisse für &quot;{text}&quot; werden angezeigt", "discussions.actionBar.searchInfo": "{count} Ergebnisse für &quot;{text}&quot; werden angezeigt",
"discussions.actionBar.searchRewriteInfo": "Keine Ergebnisse gefunden für &quot;{searchString}&quot;. {count} Ergebnisse für &quot;{textSearchRewrite}&quot; werden angezeigt.", "discussions.actionBar.searchRewriteInfo": "Keine Ergebnisse gefunden für &quot;{searchString}&quot;. {count} Ergebnisse für &quot;{textSearchRewrite}&quot; werden angezeigt.",
"discussions.actionBar.searchInfoSearching": "Suche...", "discussions.actionBar.searchInfoSearching": "Suche...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Letzte Aktivität", "discussions.posts.sort.lastActivity": "Letzte Aktivität",
"discussions.posts.sort.commentCount": "Die meisten Aktivitäten", "discussions.posts.sort.commentCount": "Die meisten Aktivitäten",
"discussions.posts.sort.voteCount": "Die meisten Likes", "discussions.posts.sort.voteCount": "Die meisten Likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other { {status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sortiert nach {sort, select, lastActivityAt {neueste Aktivität} commentCount {meiste Aktivität} voteCount {meiste Likes} other {{a0fc8413bba} 10cz", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "Anonym",
"discussions.post.addResponse": "Antwort hinzufügen",
"discussions.post.lastResponse": "Letzte Antwort {time}",
"discussions.post.postedOn": "Gepostet {time} von {author} {authorLabel}",
"discussions.post.contentReported": "Gemeldet",
"discussions.post.following": "Folge",
"discussions.post.follow": "Folgen",
"discussions.post.followed": "Gefolgt",
"discussions.post.notFollowed": "Nicht gefolgt",
"discussions.post.answered": "Beantwortet",
"discussions.post.unFollow": "Verlassen",
"discussions.post.like": "Wie",
"discussions.post.removeLike": "nicht wie",
"discussions.post.liked": "gefallen",
"discussions.post.likes": "Likes",
"discussions.post.viewActivity": "Aktivität anzeigen",
"discussions.post.activity": "Aktivität",
"discussions.post.closed": "Beitrag für Antworten und Kommentare geschlossen",
"discussions.post.relatedTo": "Im Zusammenhang mit",
"discussions.editor.delete.post.title": "Beitrag entfernen",
"discussions.editor.delete.post.description": "Möchten Sie diesen Beitrag wirklich dauerhaft löschen?",
"discussions.post.delete.confirmation.button.delete": "Löschen",
"discussions.editor.report.post.title": "Unangemessene Inhalte melden?",
"discussions.editor.report.post.description": "Das Diskussionsmoderationsteam überprüft diesen Inhalt und ergreift entsprechende Maßnahmen.",
"discussions.post.closePostModal.title": "Beitrag schließen",
"discussions.post.closePostModal.text": "Geben Sie einen Grund für das Schließen dieses Beitrags ein. Dies wird nur anderen Moderatoren angezeigt.",
"discussions.post.closePostModal.reasonCodeInput": "Grund",
"discussions.post.closePostModal.cancel": "Löschen",
"discussions.post.closePostModal.confirm": "Beitrag schließen",
"discussions.post.label.new": "{count} Neu",
"discussions.post.editedBy": "Bearbeitet von",
"discussions.post.editReason": "Grund",
"discussions.post.postWithoutPreview": "Keine Vorschau vorhanden",
"discussions.post.follow.description": "Sie folgen diesem Beitrag",
"discussions.post.unfollow.description": "Sie folgen diesem Beitrag nicht",
"discussions.topics.sort.message": "Sortiert nach {sortBy}",
"discussions.topics.sort.lastActivity": "Letzte Aktivität",
"discussions.topics.sort.commentCount": "Die meisten Aktivitäten",
"discussions.topics.sort.courseStructure": "Kursstruktur",
"discussions.topics.unnamed.label": "Unbenannte Kategorie",
"discussions.subtopics.unnamed.label": "Unbenannte Unterkategorie",
"tour.action.advance": "Weiter",
"tour.action.dismiss": "Abgewiesen",
"tour.action.end": "okay",
"tour.body.notRespondedFilter": "Jetzt können Sie Diskussionen filtern, um Beiträge ohne Antwort zu finden.",
"tour.title.notRespondedFilter": "Neue Filteroption!",
"tour.body.responseSortTour": "Antworten und Kommentare werden jetzt nach Datum sortiert. Bitte verwenden Sie diese Option, um die Sortierreihenfolge zu ändern.",
"tour.title.responseSortTour": "Antworten sortieren!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Material del Curso",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} informado",
"discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} informado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "Volver atrás",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos ordenados por {sort, select, flagged {actividad notificada} activity {mayor actividad} other {{sort}} }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicaciones",
"discussions.actions.button.alt": "Menú de acciones", "discussions.actions.button.alt": "Menú de acciones",
"discussions.actions.copylink": "Copiar link", "discussions.actions.copylink": "Copiar link",
"discussions.actions.edit": "Editar", "discussions.actions.edit": "Editar",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "ejército de reserva", "discussions.authors.label.ta": "ejército de reserva",
"discussions.learner.loadMostPosts": "Cargar más mensajes\n", "discussions.learner.loadMostPosts": "Cargar más mensajes\n",
"discussions.post.anonymous.author": "anónimo", "discussions.post.anonymous.author": "anónimo",
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!", "discussion.blackoutBanner.information": "El equipo del curso ha desactivado la publicación en los debates.",
"discussion.banner.learnMore": "Aprender más",
"discussion.banner.shareFeedback": "Compartir comentarios",
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.", "discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
"discussions.editor.image.warning.title": "¡Advertencia!", "discussions.editor.image.warning.title": "¡Advertencia!",
"discussions.editor.image.warning.dismiss": "Aceptar", "discussions.editor.image.warning.dismiss": "Aceptar",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas", "navigation.course.tabs.label": "Material del Curso",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo", "discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes", "discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.navigation.navigationBar.allTopics": "Temas", "discussions.topics.questions": "{count, plural, =0 {Pregunta} una {# Pregunta} otra {# Preguntas} }",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones", "discussions.topics.reported": "{reported} informado",
"discussions.navigation.navigationBar.learners": "Estudiantes", "discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} informado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "Volver atrás",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos ordenados por {sort, Seleccionar , actividad {actividad reportada} {más actividad} otra {{sort}} }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicaciones",
"discussions.comments.comment.addComment": "Añadir comentario", "discussions.comments.comment.addComment": "Añadir comentario",
"discussions.comments.comment.addResponse": "Agregar una respuesta", "discussions.comments.comment.addResponse": "Agregar una respuesta",
"discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise", "discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise",
"discussions.actions.back.alt": "Volver a la lista", "discussions.actions.back.alt": "Volver a la lista",
"discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }", "discussions.comments.comment.responseCount": "{num, plural, =0 {Sin respuestas} uno {Mostrando # respuesta} otro {Mostrando # respuestas} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Sin respuestas respaldadas} one {Mostrando # respuesta respaldada} other {Mostrando # respuestas respaldadas} }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Sin respuestas respaldadas} one {Mostrando # respuesta respaldada} other {Mostrando # respuestas respaldadas} }",
"discussions.comments.comment.loadMoreComments": "Cargar más comentarios", "discussions.comments.comment.loadMoreComments": "Cargar más comentarios",
"discussions.comments.comment.loadMoreResponses": "Cargar más respuestas", "discussions.comments.comment.loadMoreResponses": "Cargar más respuestas",
"discussions.comments.comment.visibility": "Esta publicación es visible para {group, select, null {Everyone} other {{group}} }.", "discussions.comments.comment.visibility": "Esta publicación es visible para { grupo , Seleccionar , null {Todos} otros {{ grupo }} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } publicado {relativeTime} por", "discussions.comments.comment.postedTime": "{postType, Seleccionar , discusn { discusión } pregunta {Question} otro {{postType}} } publicado {relativeTime} por",
"discussions.comments.comment.commentTime": "Publicado {relativeTime}", "discussions.comments.comment.commentTime": "Publicado {relativeTime}",
"discussions.comments.comment.answer": "Respuesta", "discussions.comments.comment.answer": "Respuesta",
"discussions.comments.comment.answeredlabel": "Marcado como respondido por", "discussions.comments.comment.answeredlabel": "Marcado como respondido por",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Publicación cerrada por", "discussions.post.closedBy": "Publicación cerrada por",
"discussion.comment.time": "hace {time}", "discussion.comment.time": "hace {time}",
"discussion.thread.notFound": "Hilo no encontrado", "discussion.thread.notFound": "Hilo no encontrado",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, Seleccionar , falso {El más antiguo primero} cierto {El más nuevo primero} other {{sort}} }",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Siguiente",
"tour.action.dismiss": "Descartar",
"tour.action.end": "Okey",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Clasificar respuestas!",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes",
"discussions.navigation.navigationBar.allTopics": "Temas",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones",
"discussions.navigation.navigationBar.learners": "Estudiantes",
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Añadir respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Informado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Me gusta",
"discussions.post.removeLike": "Dejar de gustar",
"discussions.post.liked": "Me gusta",
"discussions.post.likes": "Me gustan",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar mensaje",
"discussions.editor.delete.post.description": "¿Seguro que quieres eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Borrar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Escribe un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Motivo",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "estás siguiendo esta publicación",
"discussions.post.unfollow.description": "No estás siguiendo esta publicación",
"discussions.app.title": "Debates", "discussions.app.title": "Debates",
"discussions.posts.actionBar.searchAllPosts": "Buscar en todas las publicaciones", "discussions.posts.actionBar.searchAllPosts": "Buscar en todas las publicaciones",
"discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }", "discussions.posts.actionBar.search": "{página, Seleccionar , temas {Buscar temas} publicaciones {Buscar todas las publicaciones} alumnos {Buscar alumnos} myPosts {Buscar todas las publicaciones} otros {{page}} }",
"discussions.actionBar.searchInfo": "Mostrando resultados de {count} para &quot;{text}&quot;", "discussions.actionBar.searchInfo": "Mostrando resultados de {count} para &quot;{text}&quot;",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Buscando..", "discussions.actionBar.searchInfoSearching": "Buscando..",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Actividad reciente", "discussions.posts.sort.lastActivity": "Actividad reciente",
"discussions.posts.sort.commentCount": "La mayoría de la actividad", "discussions.posts.sort.commentCount": "La mayoría de la actividad",
"discussions.posts.sort.voteCount": "La mayoría me gusta", "discussions.posts.sort.voteCount": "La mayoría me gusta",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other { {status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } ordenado por {sort, select, lastActivityAt {actividad reciente} commentCount {mayor actividad} voteCount {mayor cantidad de Me gusta} other {{a0fc841}bba10}", "discussions.posts.sort-filter.sortFilterStatus": "{propio, Seleccionar , falso {Todos} cierto {Propio} otro {{propio}} } {status, Seleccionar , statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnan respondió {sin respuesta} estado sin respuesta {sin respuesta} otro { {status}} } {type, Seleccionar , discusn { discusiones } pregunta {preguntas} todas las {publicaciones} other {{type}} } {cohortType, Seleccionar , all {} grupo { en { dividir en cohortes }} otro {{cohortType}} } ordenado por {ordenar, Seleccionar , lastActivityAt {actividad reciente} commentCount {más actividad} voteCount {más me gusta} otros {{sort}} }"
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Añadir respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Informado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Me gusta",
"discussions.post.removeLike": "Dejar de gustar",
"discussions.post.liked": "Me gusta",
"discussions.post.likes": "Me gustan",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar mensaje",
"discussions.editor.delete.post.description": "¿Seguro que quieres eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Borrar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Escribe un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Motivo",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "estás siguiendo esta publicación",
"discussions.post.unfollow.description": "No estás siguiendo esta publicación",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Siguiente",
"tour.action.dismiss": "Descartar",
"tour.action.end": "Okey",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Clasificar respuestas!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Material del curso",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.topics.discussions": "{count, plural, =0 {Discusión} one {# Discusión} other {# Discusiones} }",
"discussions.topics.questions": "{count, plural, =0 {Pregunta} one {# Pregunta} other {# Preguntas} }",
"discussions.topics.reported": "{reported} denunciado",
"discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} reportado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "atrás",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos ordenados por {sort, select, flagged {actividad notificada} activity {mayor actividad} other {{sort}} }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicaciones",
"discussions.actions.button.alt": "Menú de acciones", "discussions.actions.button.alt": "Menú de acciones",
"discussions.actions.copylink": "Copiar link", "discussions.actions.copylink": "Copiar link",
"discussions.actions.edit": "Editar", "discussions.actions.edit": "Editar",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "ejército de reserva", "discussions.authors.label.ta": "ejército de reserva",
"discussions.learner.loadMostPosts": "Cargar más entradas", "discussions.learner.loadMostPosts": "Cargar más entradas",
"discussions.post.anonymous.author": "anónimo", "discussions.post.anonymous.author": "anónimo",
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!", "discussion.blackoutBanner.information": "El equipo del curso ha desactivado la publicación en los debates.",
"discussion.banner.learnMore": "Aprende más",
"discussion.banner.shareFeedback": "Compartir comentarios",
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.", "discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
"discussions.editor.image.warning.title": "¡Advertencia!", "discussions.editor.image.warning.title": "¡Advertencia!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas", "navigation.course.tabs.label": "Material del curso",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo", "discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes", "discussions.topics.discussions": "{count, plural, =0 {Discusión} uno {# Discusión} otro {# Discusiones} }",
"discussions.navigation.navigationBar.allTopics": "Temas", "discussions.topics.questions": "{count, plural, =0 {Pregunta} una {# Pregunta} otra {# Preguntas} }",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones", "discussions.topics.reported": "{reported} denunciado",
"discussions.navigation.navigationBar.learners": "Estudiantes", "discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} reportado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "atrás",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos ordenados por {ordenar, seleccionar, marcar {actividad reportada} actividad {más actividad} otro { {sort} } }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicaciones",
"discussions.comments.comment.addComment": "Agregar comentario", "discussions.comments.comment.addComment": "Agregar comentario",
"discussions.comments.comment.addResponse": "Agregar una respuesta", "discussions.comments.comment.addResponse": "Agregar una respuesta",
"discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise", "discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise",
"discussions.actions.back.alt": "Volver a la lista", "discussions.actions.back.alt": "Volver a la lista",
"discussions.comments.comment.responseCount": "{num, plural, =0 {Sin respuestas} one {Mostrando # respuestas} other {Mostrando # respuestas} }", "discussions.comments.comment.responseCount": "{num, plural, =0 {Sin respuestas} one {Mostrando # respuesta} other {Mostrando # respuestas} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Sin respuestas respaldadas} one {Mostrando # respuesta respaldada} other {Mostrando # respuestas respaldadas} }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Sin respuestas respaldadas} one {Mostrando # respuesta respaldada} other {Mostrando # respuestas respaldadas} }",
"discussions.comments.comment.loadMoreComments": "Cargar más comentarios", "discussions.comments.comment.loadMoreComments": "Cargar más comentarios",
"discussions.comments.comment.loadMoreResponses": "Cargar más respuestas", "discussions.comments.comment.loadMoreResponses": "Cargar más respuestas",
"discussions.comments.comment.visibility": "Esta publicación es visible para {group, select, null {Todos} other {{group}} }.", "discussions.comments.comment.visibility": "Esta publicación es visible para {group, select, null {Todos} otros { {group} } }.",
"discussions.comments.comment.postedTime": "{postType, select, discussion {Discusión} question {Pregunta} other {{postType}} } publicado {a0917e9bee}14c5z0", "discussions.comments.comment.postedTime": "{postType, select, discusn {Discusión} pregunta {Pregunta} otro { {postType} } } publicado {relativeTime} por",
"discussions.comments.comment.commentTime": "Publicado {relativeTime}", "discussions.comments.comment.commentTime": "Publicado {relativeTime}",
"discussions.comments.comment.answer": "Respuesta", "discussions.comments.comment.answer": "Respuesta",
"discussions.comments.comment.answeredlabel": "Marcado como respondido por", "discussions.comments.comment.answeredlabel": "Marcado como respondido por",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Publicación cerrada por", "discussions.post.closedBy": "Publicación cerrada por",
"discussion.comment.time": "{time} hace", "discussion.comment.time": "{time} hace",
"discussion.thread.notFound": "Hilo no encontrado", "discussion.thread.notFound": "Hilo no encontrado",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {El más antiguo primero} true {El más nuevo primero} other { {sort} } }",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Próximo",
"tour.action.dismiss": "Descartar",
"tour.action.end": "Ok",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Ordenar respuestas!",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes",
"discussions.navigation.navigationBar.allTopics": "Temas",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones",
"discussions.navigation.navigationBar.learners": "Estudiantes",
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Añadir respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Reportado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Una vez respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Como",
"discussions.post.removeLike": "A diferencia de",
"discussions.post.liked": "apreciado",
"discussions.post.likes": "gustos",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad ",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar mensaje",
"discussions.editor.delete.post.description": "¿Seguro que quieres eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Borrar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Introduce un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Razón",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Razón",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "estás siguiendo esta publicación",
"discussions.post.unfollow.description": "no estas siguiendo esta publicación",
"discussions.app.title": "Debates", "discussions.app.title": "Debates",
"discussions.posts.actionBar.searchAllPosts": "Buscar todas las publicaciones", "discussions.posts.actionBar.searchAllPosts": "Buscar todas las publicaciones",
"discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }", "discussions.posts.actionBar.search": "{página, seleccionar, temas {Buscar temas} publicaciones {Buscar todas las publicaciones} alumnos {Buscar alumnos} myPosts {Buscar todas las publicaciones} other { {page} } }",
"discussions.actionBar.searchInfo": "Mostrando resultados {count} para \"{text}\"", "discussions.actionBar.searchInfo": "Mostrando resultados {count} para \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Buscando...", "discussions.actionBar.searchInfoSearching": "Buscando...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Actividad reciente", "discussions.posts.sort.lastActivity": "Actividad reciente",
"discussions.posts.sort.commentCount": "La mayoría de la actividad", "discussions.posts.sort.commentCount": "La mayoría de la actividad",
"discussions.posts.sort.voteCount": "La mayoría me gusta", "discussions.posts.sort.voteCount": "La mayoría me gusta",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{propio, seleccionar, falso {Todos} verdadero {Propio} otro { {own} } } {status, select, statusAll {} statusUnread {no leído} statusSeguimiento {seguido} statusReported {reportado} statusUnanswered {sin responder} statusUnresponded {sin responder} otro { {status} } } {escribir, seleccionar, discusn {discusiones} pregunta {preguntas} todas las {publicaciones} otras { {type} } } {cohortType, seleccionar, todas {} grupo {en {cohort} } otras { {cohortType} } } ordenado por {sort, select, lastActivityAt { actividad reciente} commentCount {más actividad} voteCount {más me gusta} otro { {sort} } }"
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Añadir respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Reportado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Una vez respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Como",
"discussions.post.removeLike": "A diferencia de",
"discussions.post.liked": "apreciado",
"discussions.post.likes": "gustos",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad ",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar mensaje",
"discussions.editor.delete.post.description": "¿Seguro que quieres eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Borrar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Introduce un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Razón",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Razón",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "estás siguiendo esta publicación",
"discussions.post.unfollow.description": "no estas siguiendo esta publicación",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Próximo",
"tour.action.dismiss": "Descartar",
"tour.action.end": "Ok",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Ordenar respuestas!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Material del curso",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} informado",
"discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} informado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último vez activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "Volver",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos por {sort, select, flagged {actividad notificada} activity {mayor actividad} other {{sort}} }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicación",
"discussions.actions.button.alt": "Menú de acciones", "discussions.actions.button.alt": "Menú de acciones",
"discussions.actions.copylink": "Copiar link", "discussions.actions.copylink": "Copiar link",
"discussions.actions.edit": "Editar", "discussions.actions.edit": "Editar",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Cargar más entradas", "discussions.learner.loadMostPosts": "Cargar más entradas",
"discussions.post.anonymous.author": "anónimo", "discussions.post.anonymous.author": "anónimo",
"discussion.banner.welcomeMessage": "🎉 ¡Bienvenido a la nueva y mejorada experiencia de debates!", "discussion.blackoutBanner.information": "El equipo del curso ha desactivado temporalmente la publicación en los debates.",
"discussion.banner.learnMore": "Aprende más",
"discussion.banner.shareFeedback": "Compartir comentarios",
"discussion.blackoutBanner.information": "El equipo del curso deshabilita temporalmente la publicación en discusiones",
"discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.", "discussions.editor.image.warning.message": "Las imágenes que tengan un ancho o alto superior a 999 px no serán visibles cuando la publicación, la respuesta o el comentario se vean mediante debates en línea del curso.",
"discussions.editor.image.warning.title": "¡Advertencia!", "discussions.editor.image.warning.title": "¡Advertencia!",
"discussions.editor.image.warning.dismiss": "Aceptar", "discussions.editor.image.warning.dismiss": "Aceptar",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas", "navigation.course.tabs.label": "Material del curso",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo", "discussions.topics.backAlt": "Volver a la lista de temas",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes", "discussions.topics.discussions": "{count, plural, =0 {Discusión} one {# Discusión} other {# Discusiones} }",
"discussions.navigation.navigationBar.allTopics": "Temas", "discussions.topics.questions": "{count, plural, =0 {Discusión} one {# Discusión} other {# Discusiones} }",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones", "discussions.topics.reported": "{reported} informado",
"discussions.navigation.navigationBar.learners": "Estudiantes", "discussions.topics.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.topics.find.label": "Buscar temas",
"discussions.topics.unnamed.section.label": "Sección sin nombre",
"discussions.topics.unnamed.subsection.label": "Subsección sin nombre",
"discussions.subtopics.unnamed.topic.label": "Tema sin nombre",
"discussions.topics.title": "No existe ningún tema",
"discussions.topics.createTopic": "Póngase en contacto con su administrador para crear un tema",
"discussions.topics.nothing": "Nada aquí todavía",
"discussions.topics.archived.label": "Archivado",
"discussions.learner.reported": "{reported} informado",
"discussions.learner.previouslyReported": "{previouslyReported} informado anteriormente",
"discussions.learner.lastLogin": "Último vez activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Cargar más",
"discussions.learner.back": "Volver",
"discussions.learner.activityForLearner": "Actividad para {username}",
"discussions.learner.mostActivity": "La mayoría de la actividad",
"discussions.learner.reportedActivity": "Actividad reportada",
"discussions.learner.recentActivity": "Actividad reciente",
"discussions.learner.sortFilterStatus": "Todos los alumnos ordenados por {sort, Seleccionar , actividad {actividad reportada} {más actividad} otra {{sort}} }",
"discussion.learner.allActivity": "Toda la actividad",
"discussion.learner.posts": "Publicación",
"discussions.comments.comment.addComment": "Añadir comentario", "discussions.comments.comment.addComment": "Añadir comentario",
"discussions.comments.comment.addResponse": "Agregar una respuesta", "discussions.comments.comment.addResponse": "Agregar una respuesta",
"discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise", "discussions.comments.comment.abuseFlaggedMessage": "Contenido informado para que el personal lo revise",
"discussions.actions.back.alt": "Volver a la lista", "discussions.actions.back.alt": "Volver a la lista",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {Sin respuestas} uno {Mostrando # respuesta} otro {Mostrando # respuestas} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Sin respuestas promocionado } one {Mostrando # respuesta promocionado } other {Mostrando # respuestas promocionado } }",
"discussions.comments.comment.loadMoreComments": "Cargar más comentarios", "discussions.comments.comment.loadMoreComments": "Cargar más comentarios",
"discussions.comments.comment.loadMoreResponses": "Cargar más respuestas", "discussions.comments.comment.loadMoreResponses": "Cargar más respuestas",
"discussions.comments.comment.visibility": "Esta publicación es visible para {group, select, null {Todos} other {{group}} }.", "discussions.comments.comment.visibility": "Esta publicar es visible para {group, select, null {Everyone} other { {group} } }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, foro {foro} question {Question} other { {postType} } } publicado {relativeTime} por",
"discussions.comments.comment.commentTime": "Publicado {relativeTime}", "discussions.comments.comment.commentTime": "Publicado {relativeTime}",
"discussions.comments.comment.answer": "Respuesta", "discussions.comments.comment.answer": "Respuesta",
"discussions.comments.comment.answeredlabel": "Marcado como respondido por", "discussions.comments.comment.answeredlabel": "Marcado como respondido por",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Publicación cerrada por", "discussions.post.closedBy": "Publicación cerrada por",
"discussion.comment.time": "hace {time}", "discussion.comment.time": "hace {time}",
"discussion.thread.notFound": "Tema no encontrado", "discussion.thread.notFound": "Tema no encontrado",
"discussions.comment.sortFilterStatus": "{sort, select, false {Primero los más antiguos} true {Primero los más nuevos} other {{sort}} }", "discussions.comment.sortFilterStatus": "{sort, select, falso {El más antiguo primero} verdadero {El más nuevo primero} other { {sort} } }",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Siguiente",
"tour.action.dismiss": "Descartar",
"tour.action.end": "De acuerdo",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Ordenar respuestas!",
"learn.course.tabs.navigation.overflow.menu": "Más...",
"discussions.navigation.breadcrumbMenu.allTopics": "Temas",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar todo",
"discussions.navigation.navigationBar.allPosts": "Todos los mensajes",
"discussions.navigation.navigationBar.allTopics": "Temas",
"discussions.navigation.navigationBar.myPosts": "Mis publicaciones",
"discussions.navigation.navigationBar.learners": "Estudiantes",
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Agregar respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Informado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Me gusta",
"discussions.post.removeLike": "No me gusta",
"discussions.post.liked": "Me gustó",
"discussions.post.likes": "gustos",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar publicación",
"discussions.editor.delete.post.description": "¿Seguro que quiere eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Eliminar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Introduce un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Motivo",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "Está siguiendo esta publicación",
"discussions.post.unfollow.description": "No está siguiendo esta publicación",
"discussions.app.title": "Foros", "discussions.app.title": "Foros",
"discussions.posts.actionBar.searchAllPosts": "Buscar todas las entradas", "discussions.posts.actionBar.searchAllPosts": "Buscar todas las entradas",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{página, seleccionar, temas {Buscar temas} publicaciones {Buscar todas las publicaciones} estudiantes {Buscar estudiantes } myPosts {Buscar todas las publicaciones} other { {page} } }",
"discussions.actionBar.searchInfo": "Mostrando resultados {count} para \"{text}\"", "discussions.actionBar.searchInfo": "Mostrando resultados {count} para \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No se han encontrado resultados para \"{searchString}\". Mostrando resultados de {count} para \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No se han encontrado resultados para \"{searchString}\". Mostrando resultados de {count} para \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Buscando...", "discussions.actionBar.searchInfoSearching": "Buscando...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Actividad reciente", "discussions.posts.sort.lastActivity": "Actividad reciente",
"discussions.posts.sort.commentCount": "La mayoría de la actividad", "discussions.posts.sort.commentCount": "La mayoría de la actividad",
"discussions.posts.sort.voteCount": "La mayoría me gusta", "discussions.posts.sort.voteCount": "La mayoría me gusta",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{propio, Seleccionar , falso {Todos} cierto {Propio} otro {{propio}} } {status, Seleccionar , statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnan respondió {sin respuesta} estado sin respuesta {sin respuesta} otro { {status}} } {type, Seleccionar , discusión { discusiones } pregunta {preguntas} todas las {publicaciones} other {{type}} } {cohortType, Seleccionar , all {} grupo { en { dividir en cohortes }} otro {{cohortType}} } ordenado por {ordenar, Seleccionar , lastActivityAt {actividad reciente} commentCount {más actividad} voteCount {más me gusta} otros {{sort}} }"
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Agregar respuesta",
"discussions.post.lastResponse": "Última respuesta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Informado",
"discussions.post.following": "Siguiendo",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "No seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Dejar de seguir",
"discussions.post.like": "Me gusta",
"discussions.post.removeLike": "No me gusta",
"discussions.post.liked": "Me gustó",
"discussions.post.likes": "gustos",
"discussions.post.viewActivity": "Ver actividad",
"discussions.post.activity": "Actividad",
"discussions.post.closed": "Publicación cerrada por respuestas y comentarios.",
"discussions.post.relatedTo": "Relacionado con",
"discussions.editor.delete.post.title": "Eliminar publicación",
"discussions.editor.delete.post.description": "¿Seguro que quiere eliminar esta publicación de forma permanente?",
"discussions.post.delete.confirmation.button.delete": "Eliminar",
"discussions.editor.report.post.title": "¿Denunciar contenido inapropiado?",
"discussions.editor.report.post.description": "El equipo de moderación de debates revisará este contenido y tomará las medidas adecuadas.",
"discussions.post.closePostModal.title": "Cerrar publicación",
"discussions.post.closePostModal.text": "Introduce un motivo para cerrar esta publicación. Esto solo se mostrará a otros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Cerrar publicación",
"discussions.post.label.new": "{count} Nuevo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Motivo",
"discussions.post.postWithoutPreview": "No hay vista previa disponible",
"discussions.post.follow.description": "Está siguiendo esta publicación",
"discussions.post.unfollow.description": "No está siguiendo esta publicación",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividad reciente",
"discussions.topics.sort.commentCount": "La mayoría de la actividad",
"discussions.topics.sort.courseStructure": "Estructura del curso",
"discussions.topics.unnamed.label": "Categoría sin nombre",
"discussions.subtopics.unnamed.label": "Subcategoría sin nombre",
"tour.action.advance": "Siguiente",
"tour.action.dismiss": "Descartar",
"tour.action.end": "De acuerdo",
"tour.body.notRespondedFilter": "Ahora puede filtrar debates para encontrar publicaciones sin respuesta.",
"tour.title.notRespondedFilter": "¡Nueva opción de filtrado!",
"tour.body.responseSortTour": "Las respuestas y los comentarios ahora se ordenan por los más recientes primero. Utilice esta opción para cambiar el orden de clasificación",
"tour.title.responseSortTour": "¡Ordenar respuestas!"
} }

View File

@@ -1,47 +1,20 @@
{ {
"navigation.course.tabs.label": "منابع دوره آموزشی",
"learn.course.tabs.navigation.overflow.menu": "بیشتر...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} گزارش شده",
"discussions.topics.previouslyReported": "{previouslyReported} قبلا گزارش شده‌است",
"discussions.topics.find.label": "جستجوی موضوعات",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "آرشیو شده",
"discussions.learner.reported": "{reported} گزارش شده",
"discussions.learner.previouslyReported": "{previouslyReported} قبلا گزارش شده‌است",
"discussions.learner.lastLogin": "آخرین فعال {lastActiveTime}",
"discussions.learner.loadMostLearners": "بارگیری بیشتر",
"discussions.learner.back": "بازگشت",
"discussions.learner.activityForLearner": "فعالیت برای {username}",
"discussions.learner.mostActivity": "بیشترین فعالیت",
"discussions.learner.reportedActivity": "فعالیت گزارش‌شده",
"discussions.learner.recentActivity": "فعالیت اخیر",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "تمام فعالیت",
"discussion.learner.posts": "نوشته ها",
"discussions.actions.button.alt": "منوی فعالیت‌ها", "discussions.actions.button.alt": "منوی فعالیت‌ها",
"discussions.actions.copylink": "کپی پیوند", "discussions.actions.copylink": "کپی پیوند",
"discussions.actions.edit": " ویرایش", "discussions.actions.edit": " ویرایش",
"discussions.actions.pin": "نشانه", "discussions.actions.pin": "نشانه",
"discussions.actions.unpin": "حذف نشانه", "discussions.actions.unpin": "حذف نشانه",
"discussions.actions.delete": "حذف", "discussions.actions.delete": "حذف",
"discussions.confirmation.button.confirm": "Confirm", "discussions.confirmation.button.confirm": "تایید",
"discussions.actions.close": "بستن", "discussions.actions.close": "بستن",
"discussions.actions.reopen": "گشایش مجدد", "discussions.actions.reopen": "گشایش مجدد",
"discussions.actions.report": "گزارش‌", "discussions.actions.report": "گزارش‌",
"discussions.actions.unreport": "لغو گزارش", "discussions.actions.unreport": "لغو گزارش",
"discussions.actions.endorse": "تأیید", "discussions.actions.endorse": "تأیید",
"discussions.actions.unendorse": "عدم تأیید", "discussions.actions.unendorse": "عدم تأیید",
"discussions.actions.markAnswered": "Mark as answered", "discussions.actions.markAnswered": "علامت گذاری به عنوان پاسخ",
"discussions.actions.unMarkAnswered": "علامت را به‌عنوان پاسخ بردارید", "discussions.actions.unMarkAnswered": "علامت را به‌عنوان پاسخ بردارید",
"discussions.modal.confirmation.button.cancel": "Cancel", "discussions.modal.confirmation.button.cancel": "لغو",
"discussions.empty.allTopics": "همه فعالیت‌های گفتگو برای این موضوعات در اینجا نشان داده می‌شود.", "discussions.empty.allTopics": "همه فعالیت‌های گفتگو برای این موضوعات در اینجا نشان داده می‌شود.",
"discussions.empty.allPosts": "همه فعالیت‌های گفتگو برای دوره آموزشی شما در اینجا نمایش داده می‌شود.", "discussions.empty.allPosts": "همه فعالیت‌های گفتگو برای دوره آموزشی شما در اینجا نمایش داده می‌شود.",
"discussions.empty.myPosts": "مطالبی که با آنها تعامل داشته‌اید در اینجا نشان داده می‌شوند.", "discussions.empty.myPosts": "مطالبی که با آنها تعامل داشته‌اید در اینجا نشان داده می‌شوند.",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "کمک مربی", "discussions.authors.label.ta": "کمک مربی",
"discussions.learner.loadMostPosts": "بارگیری مطالب بیشتر", "discussions.learner.loadMostPosts": "بارگیری مطالب بیشتر",
"discussions.post.anonymous.author": "بی‌نام", "discussions.post.anonymous.author": "بی‌نام",
"discussion.banner.welcomeMessage": "🎉 به نسخه جدید و بهبود یافته discussions خوش اومدید!", "discussion.blackoutBanner.information": "ارسال پست در بحث ها توسط تیم دوره غیرفعال شده است",
"discussion.banner.learnMore": "اطلاعات بیشتر",
"discussion.banner.shareFeedback": "اشتراک‌گذاری بازخورد",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "هنگامی که مطلب یا پاسخ یا نظری در گفتگوهای دوره به صورت درون‌خطی مشاهده می شود، تصاویری که عرض یا ارتفاع آنها بیشتر از 999 پیکسل باشد، قابل مشاهده نخواهند بود.", "discussions.editor.image.warning.message": "هنگامی که مطلب یا پاسخ یا نظری در گفتگوهای دوره به صورت درون‌خطی مشاهده می شود، تصاویری که عرض یا ارتفاع آنها بیشتر از 999 پیکسل باشد، قابل مشاهده نخواهند بود.",
"discussions.editor.image.warning.title": "هشدار!", "discussions.editor.image.warning.title": "هشدار!",
"discussions.editor.image.warning.dismiss": "بسیارخوب", "discussions.editor.image.warning.dismiss": "بسیارخوب",
"discussions.navigation.breadcrumbMenu.allTopics": "عناوین ", "navigation.course.tabs.label": "منابع دوره آموزشی",
"discussions.navigation.breadcrumbMenu.showAll": "نمایش همه", "discussions.topics.backAlt": "بازگشت به لیست موضوعات",
"discussions.navigation.navigationBar.allPosts": "همه مطالب", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "عناوین ", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "مطالب ارسالی من", "discussions.topics.reported": "{reported} گزارش شده",
"discussions.navigation.navigationBar.learners": "یادگیرندگان", "discussions.topics.previouslyReported": "{previouslyReported} قبلا گزارش شده‌است",
"discussions.comments.comment.addComment": "Add comment", "discussions.topics.find.label": "جستجوی موضوعات",
"discussions.topics.unnamed.section.label": "بخش بدون نام",
"discussions.topics.unnamed.subsection.label": "زیربخش بدون نام",
"discussions.subtopics.unnamed.topic.label": "موضوع بی نام",
"discussions.topics.title": "هیچ موضوعی وجود ندارد",
"discussions.topics.createTopic": "لطفا برای ایجاد موضوع با ادمین خود تماس بگیرید",
"discussions.topics.nothing": "اینجا هنوز چیزی نیست",
"discussions.topics.archived.label": "آرشیو شده",
"discussions.learner.reported": "{reported} گزارش شده",
"discussions.learner.previouslyReported": "{previouslyReported} قبلا گزارش شده‌است",
"discussions.learner.lastLogin": "آخرین فعال {lastActiveTime}",
"discussions.learner.loadMostLearners": "بارگیری بیشتر",
"discussions.learner.back": "بازگشت",
"discussions.learner.activityForLearner": "فعالیت برای {username}",
"discussions.learner.mostActivity": "بیشترین فعالیت",
"discussions.learner.reportedActivity": "فعالیت گزارش‌شده",
"discussions.learner.recentActivity": "فعالیت اخیر",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "تمام فعالیت",
"discussion.learner.posts": "نوشته ها",
"discussions.comments.comment.addComment": "اضافه کردن نظر",
"discussions.comments.comment.addResponse": "افزودن پاسخ", "discussions.comments.comment.addResponse": "افزودن پاسخ",
"discussions.comments.comment.abuseFlaggedMessage": "محتوا برای بررسی کارکنان گزارش شده است", "discussions.comments.comment.abuseFlaggedMessage": "محتوا برای بررسی کارکنان گزارش شده است",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "بازگشت به لیست",
"discussions.comments.comment.responseCount": "{num, plural,\n=0 {No responses}\none {Showing # response}\nother {Showing # responses}\n}", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n=0 {No endorsed responses}\none {Showing # endorsed response}\nother {Showing # endorsed responses}\n}", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "بارگیری نظرات بیشتر", "discussions.comments.comment.loadMoreComments": "بارگیری نظرات بیشتر",
"discussions.comments.comment.loadMoreResponses": "بارگیری پاسخ‌های بیشتر", "discussions.comments.comment.loadMoreResponses": "بارگیری پاسخ‌های بیشتر",
"discussions.comments.comment.visibility": "این مطلب برای {group, select,\nnull {Everyone}\nother {{group}}\n}. قابل مشاهده است.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\ndiscussion {Discussion}\nquestion {Question}\nother {{postType}}\n} ارسال شده {relativeTime} توسط ", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "ارسال شده {relativeTime}", "discussions.comments.comment.commentTime": "ارسال شده {relativeTime}",
"discussions.comments.comment.answer": "پاسخ", "discussions.comments.comment.answer": "پاسخ",
"discussions.comments.comment.answeredlabel": "علامت‌گذاری شده به عنوان پاسخ داده‌شده توسط ", "discussions.comments.comment.answeredlabel": "علامت‌گذاری شده به عنوان پاسخ داده‌شده توسط ",
@@ -97,10 +87,10 @@
"discussions.editor.delete.comment.title": "حذف نظر", "discussions.editor.delete.comment.title": "حذف نظر",
"discussions.editor.delete.comment.description": "آیا از حذف این نظر برای همیشه اطمینان دارید؟", "discussions.editor.delete.comment.description": "آیا از حذف این نظر برای همیشه اطمینان دارید؟",
"discussions.delete.confirmation.button.delete": "حذف", "discussions.delete.confirmation.button.delete": "حذف",
"discussions.editor.response.response.title": "Report inappropriate content?", "discussions.editor.response.response.title": "گزارش محتوای نامناسب؟",
"discussions.editor.response.description": "The discussion moderation team will review this content and take appropriate action.", "discussions.editor.response.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
"discussions.editor.report.comment.title": "Report inappropriate content?", "discussions.editor.report.comment.title": "گزارش محتوای نامناسب؟",
"discussions.editor.report.comment.description": "The discussion moderation team will review this content and take appropriate action.", "discussions.editor.report.comment.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
"discussions.editor.comments.editReasonCode": "علت ویرایش", "discussions.editor.comments.editReasonCode": "علت ویرایش",
"discussions.editor.posts.editReasonCode.error": "انتخاب دلیل برای ویرایش", "discussions.editor.posts.editReasonCode.error": "انتخاب دلیل برای ویرایش",
"discussions.comment.comments.editedBy": "ویرایش‌شده به‌دست", "discussions.comment.comments.editedBy": "ویرایش‌شده به‌دست",
@@ -108,11 +98,66 @@
"discussions.comment.comments.reason": "علت", "discussions.comment.comments.reason": "علت",
"discussions.post.closedBy": "مطلب توسط این فرد بسته شده", "discussions.post.closedBy": "مطلب توسط این فرد بسته شده",
"discussion.comment.time": "{time} قبل", "discussion.comment.time": "{time} قبل",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "موضوع پیدا نشد",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "منظم برحسب {sortBy}",
"discussions.topics.sort.lastActivity": "فعالیت اخیر",
"discussions.topics.sort.commentCount": "بیشترین فعالیت",
"discussions.topics.sort.courseStructure": "ساختار دوره آموزشی",
"discussions.topics.unnamed.label": "دسته بی نام",
"discussions.subtopics.unnamed.label": "زیرمجموعه بی نام",
"tour.action.advance": "بعدی",
"tour.action.dismiss": "لطفا نادیده بگیرید",
"tour.action.end": "بسیار خوب",
"tour.body.notRespondedFilter": "اکنون می توانید بحث ها را فیلتر کنید تا پست های بدون پاسخ را بیابید.",
"tour.title.notRespondedFilter": "گزینه فیلتر جدید!",
"tour.body.responseSortTour": "پاسخ ها و نظرات اکنون بر اساس جدیدترین ها مرتب شده اند. لطفا از این گزینه برای تغییر ترتیب مرتب سازی استفاده کنید",
"tour.title.responseSortTour": "مرتب سازی پاسخ ها!",
"learn.course.tabs.navigation.overflow.menu": "بیشتر...",
"discussions.navigation.breadcrumbMenu.allTopics": "عناوین ",
"discussions.navigation.breadcrumbMenu.showAll": "نمایش همه",
"discussions.navigation.navigationBar.allPosts": "همه مطالب",
"discussions.navigation.navigationBar.allTopics": "عناوین ",
"discussions.navigation.navigationBar.myPosts": "مطالب ارسالی من",
"discussions.navigation.navigationBar.learners": "یادگیرندگان",
"discussions.post.author.anonymous": "بی‌نام",
"discussions.post.addResponse": "افزودن پاسخ",
"discussions.post.lastResponse": "پاسخ اخیر {time}",
"discussions.post.postedOn": "ارسال شده {time}  به دست {author} {authorLabel}",
"discussions.post.contentReported": "گزارش‌شده",
"discussions.post.following": "دنبال می‌کنم",
"discussions.post.follow": "دنبال‌ می‌کنم",
"discussions.post.followed": "دنبال شد",
"discussions.post.notFollowed": "دنبال نشده است",
"discussions.post.answered": "پاسخ داده‌شده",
"discussions.post.unFollow": "دنبال ‌نمی‌کنم",
"discussions.post.like": "می‌پسندم",
"discussions.post.removeLike": "غیرمشابه",
"discussions.post.liked": "دوست داشت",
"discussions.post.likes": "دوست دارد",
"discussions.post.viewActivity": "مشاهده فعالیت",
"discussions.post.activity": "فعالیت",
"discussions.post.closed": "این مطلب برای پاسخ و نظر بسته است",
"discussions.post.relatedTo": "مربوط به ",
"discussions.editor.delete.post.title": "حذف مطلب",
"discussions.editor.delete.post.description": "از حذف دایمی این مطلب اطمینان دارید؟",
"discussions.post.delete.confirmation.button.delete": "حذف",
"discussions.editor.report.post.title": "گزارش محتوای نامناسب؟",
"discussions.editor.report.post.description": "تیم نظارت بر بحث این محتوا را بررسی کرده و اقدامات لازم را انجام خواهد داد.",
"discussions.post.closePostModal.title": "بستن مطلب",
"discussions.post.closePostModal.text": "دلیل بستن این مطلب را وارد کنید. این دلیل فقط برای مدیران دیگر نمایش داده می‌شود.",
"discussions.post.closePostModal.reasonCodeInput": "دلیل",
"discussions.post.closePostModal.cancel": "لغو",
"discussions.post.closePostModal.confirm": "بستن مطلب",
"discussions.post.label.new": "{count} جدید",
"discussions.post.editedBy": "ویرایش‌شده به دست",
"discussions.post.editReason": "علت",
"discussions.post.postWithoutPreview": "پیش‌نمایش در دسترس نیست",
"discussions.post.follow.description": "شما این پست را دنبال می کنید",
"discussions.post.unfollow.description": "شما این پست را دنبال نمی کنید",
"discussions.app.title": "گفتگوها", "discussions.app.title": "گفتگوها",
"discussions.posts.actionBar.searchAllPosts": "جستجوی همۀ مطالب ارسالی", "discussions.posts.actionBar.searchAllPosts": "جستجوی همۀ مطالب ارسالی",
"discussions.posts.actionBar.search": "{page, select,\ntopics {Search topics}\nposts {Search all posts}\nlearners {Search learners}\nmyPosts {Search all posts}\nother {{page}}\n}", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "نمایش {count} نتایج برای \"{text}\"", "discussions.actionBar.searchInfo": "نمایش {count} نتایج برای \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "هیچ نتیجه ای برای \"{searchString}\" یافت نشد. نمایش نتایج {count} برای \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "هیچ نتیجه ای برای \"{searchString}\" یافت نشد. نمایش نتایج {count} برای \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "در حال جستجو...", "discussions.actionBar.searchInfoSearching": "در حال جستجو...",
@@ -142,9 +187,9 @@
"discussions.post.editor.anonymousPost": "به‎‌صورت ناشناس ارسال کنید", "discussions.post.editor.anonymousPost": "به‎‌صورت ناشناس ارسال کنید",
"discussions.post.editor.anonymousToPeersPost": "به‌صورت ناشناس برای همتایان ارسال کنید", "discussions.post.editor.anonymousToPeersPost": "به‌صورت ناشناس برای همتایان ارسال کنید",
"discussions.editor.posts.editReasonCode": "علت ویرایش", "discussions.editor.posts.editReasonCode": "علت ویرایش",
"discussions.editor.posts.showPreview.button": "Show preview", "discussions.editor.posts.showPreview.button": "پیش‌نمایش",
"discussions.topic.noName.label": "Unnamed category", "discussions.topic.noName.label": "دسته بی نام",
"discussions.subtopic.noName.label": "Unnamed subcategory", "discussions.subtopic.noName.label": "زیرمجموعه بی نام",
"discussions.posts.filter.showALl": "نمایش همه", "discussions.posts.filter.showALl": "نمایش همه",
"discussions.posts.filter.discussions": "گفتگوها", "discussions.posts.filter.discussions": "گفتگوها",
"discussions.posts.filter.questions": "سوالات ", "discussions.posts.filter.questions": "سوالات ",
@@ -154,7 +199,7 @@
"discussions.posts.status.filter.following": "دنبال می‌کنم", "discussions.posts.status.filter.following": "دنبال می‌کنم",
"discussions.posts.status.filter.reported": "گزارش‌شده", "discussions.posts.status.filter.reported": "گزارش‌شده",
"discussions.posts.status.filter.unanswered": "پاسخ داده‌نشده", "discussions.posts.status.filter.unanswered": "پاسخ داده‌نشده",
"discussions.posts.status.filter.unresponded": "Not responded", "discussions.posts.status.filter.unresponded": "پاسخ داده نشد",
"discussions.posts.filter.myPosts": "مطالب ارسالی من", "discussions.posts.filter.myPosts": "مطالب ارسالی من",
"discussions.posts.filter.myDiscussions": "گفتگوهای من", "discussions.posts.filter.myDiscussions": "گفتگوهای من",
"discussions.posts.filter.myQuestions": "سوالات من", "discussions.posts.filter.myQuestions": "سوالات من",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "فعالیت اخیر", "discussions.posts.sort.lastActivity": "فعالیت اخیر",
"discussions.posts.sort.commentCount": "بیشترین فعالیت", "discussions.posts.sort.commentCount": "بیشترین فعالیت",
"discussions.posts.sort.voteCount": "بیشترین لایک", "discussions.posts.sort.voteCount": "بیشترین لایک",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "بی‌نام",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "پاسخ اخیر {time}",
"discussions.post.postedOn": "ارسال شده {time}  به دست {author} {authorLabel}",
"discussions.post.contentReported": "گزارش‌شده",
"discussions.post.following": "دنبال می‌کنم",
"discussions.post.follow": "دنبال‌ می‌کنم",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "پاسخ داده‌شده",
"discussions.post.unFollow": "دنبال ‌نمی‌کنم",
"discussions.post.like": "می‌پسندم",
"discussions.post.removeLike": "غیرمشابه",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "مشاهده فعالیت",
"discussions.post.activity": "Activity",
"discussions.post.closed": "این مطلب برای پاسخ و نظر بسته است",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "حذف مطلب",
"discussions.editor.delete.post.description": "از حذف دایمی این مطلب اطمینان دارید؟",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "بستن مطلب",
"discussions.post.closePostModal.text": "دلیل بستن این مطلب را وارد کنید. این دلیل فقط برای مدیران دیگر نمایش داده می‌شود.",
"discussions.post.closePostModal.reasonCodeInput": "دلیل",
"discussions.post.closePostModal.cancel": "لغو",
"discussions.post.closePostModal.confirm": "بستن مطلب",
"discussions.post.label.new": "{count} جدید",
"discussions.post.editedBy": "ویرایش‌شده به دست",
"discussions.post.editReason": "علت",
"discussions.post.postWithoutPreview": "پیش‌نمایش در دسترس نیست",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "منظم برحسب {sortBy}",
"discussions.topics.sort.lastActivity": "فعالیت اخیر",
"discussions.topics.sort.commentCount": "بیشترین فعالیت",
"discussions.topics.sort.courseStructure": "ساختار دوره آموزشی",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Matériel de cours",
"learn.course.tabs.navigation.overflow.menu": "Plus...",
"discussions.topics.backAlt": "Retour à la liste des sujets",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} signalé",
"discussions.topics.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.topics.find.label": "Rechercher des sujets",
"discussions.topics.unnamed.section.label": "Section sans nom",
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
"discussions.topics.title": "Aucun sujet n'existe",
"discussions.topics.createTopic": "Veuillez contacter votre administrateur pour créer un sujet",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archivé",
"discussions.learner.reported": "{reported} signalé",
"discussions.learner.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.learner.lastLogin": "Dernier actif {lastActiveTime}",
"discussions.learner.loadMostLearners": "Charger plus",
"discussions.learner.back": "Retour",
"discussions.learner.activityForLearner": "Activité pour {username}",
"discussions.learner.mostActivity": "La plupart des activités",
"discussions.learner.reportedActivity": "Activité signalée",
"discussions.learner.recentActivity": "Activité récente",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "Toutes les activités",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Menu Actions", "discussions.actions.button.alt": "Menu Actions",
"discussions.actions.copylink": "Copier le lien", "discussions.actions.copylink": "Copier le lien",
"discussions.actions.edit": "Modifier", "discussions.actions.edit": "Modifier",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Matériel de cours",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Retour à la liste des sujets",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} signalé",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.topics.find.label": "Rechercher des sujets",
"discussions.topics.unnamed.section.label": "Section sans nom",
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
"discussions.topics.title": "Aucun sujet n'existe",
"discussions.topics.createTopic": "Veuillez contacter votre administrateur pour créer un sujet",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archivé",
"discussions.learner.reported": "{reported} signalé",
"discussions.learner.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.learner.lastLogin": "Dernier actif {lastActiveTime}",
"discussions.learner.loadMostLearners": "Charger plus",
"discussions.learner.back": "Retour",
"discussions.learner.activityForLearner": "Activité pour {username}",
"discussions.learner.mostActivity": "La plupart des activités",
"discussions.learner.reportedActivity": "Activité signalée",
"discussions.learner.recentActivity": "Activité récente",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "Toutes les activités",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Ajouter une réponse", "discussions.comments.comment.addResponse": "Ajouter une réponse",
"discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen", "discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Charger plus de commentaires", "discussions.comments.comment.loadMoreComments": "Charger plus de commentaires",
"discussions.comments.comment.loadMoreResponses": "Charger plus de réponses", "discussions.comments.comment.loadMoreResponses": "Charger plus de réponses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Réponse", "discussions.comments.comment.answer": "Réponse",
"discussions.comments.comment.answeredlabel": "Marqué comme répondu par", "discussions.comments.comment.answeredlabel": "Marqué comme répondu par",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Message fermé par", "discussions.post.closedBy": "Message fermé par",
"discussion.comment.time": "il y a {time}", "discussion.comment.time": "il y a {time}",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "Plus...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Matériel de cours",
"learn.course.tabs.navigation.overflow.menu": "Plus...",
"discussions.topics.backAlt": "Retour à la liste des sujets",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} signalé",
"discussions.topics.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.topics.find.label": "Rechercher des sujets",
"discussions.topics.unnamed.section.label": "Section sans nom",
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
"discussions.topics.title": "Aucun sujet n'existe",
"discussions.topics.createTopic": "Veuillez contacter votre administrateur pour créer un sujet",
"discussions.topics.nothing": "Rien ici encore",
"discussions.topics.archived.label": "Archivé",
"discussions.learner.reported": "{reported} signalé",
"discussions.learner.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.learner.lastLogin": "Dernier actif {lastActiveTime}",
"discussions.learner.loadMostLearners": "Afficher plus",
"discussions.learner.back": "Retour",
"discussions.learner.activityForLearner": "Activité pour {username}",
"discussions.learner.mostActivity": "La plupart des activités",
"discussions.learner.reportedActivity": "Activité signalée",
"discussions.learner.recentActivity": "Activité récente",
"discussions.learner.sortFilterStatus": "Tous les apprenants triés pas {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "Toutes les activités",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Menu Actions", "discussions.actions.button.alt": "Menu Actions",
"discussions.actions.copylink": "Copier le lien", "discussions.actions.copylink": "Copier le lien",
"discussions.actions.edit": "Éditer", "discussions.actions.edit": "Éditer",
@@ -39,10 +12,10 @@
"discussions.actions.unreport": "Ne pas signaler", "discussions.actions.unreport": "Ne pas signaler",
"discussions.actions.endorse": "Approuver", "discussions.actions.endorse": "Approuver",
"discussions.actions.unendorse": "Ne plus approuver", "discussions.actions.unendorse": "Ne plus approuver",
"discussions.actions.markAnswered": "Marquer comme répondu", "discussions.actions.markAnswered": "Marquer comme répondue",
"discussions.actions.unMarkAnswered": "Décocher comme répondu", "discussions.actions.unMarkAnswered": "Décocher comme répondue",
"discussions.modal.confirmation.button.cancel": "Annuler", "discussions.modal.confirmation.button.cancel": "Annuler",
"discussions.empty.allTopics": "Toutes les activités de discussion pour ces sujets apparaîtront ici.", "discussions.empty.allTopics": "Toutes les activités de discussion pour ces sujets s'afficheront ici.",
"discussions.empty.allPosts": "Toutes les activités de discussion pour votre cours s'afficheront ici.", "discussions.empty.allPosts": "Toutes les activités de discussion pour votre cours s'afficheront ici.",
"discussions.empty.myPosts": "Les publications avec lesquelles vous avez interagi s'afficheront ici.", "discussions.empty.myPosts": "Les publications avec lesquelles vous avez interagi s'afficheront ici.",
"discussions.empty.topic": "Toutes les activités de discussion pour ce sujet s'afficheront ici.", "discussions.empty.topic": "Toutes les activités de discussion pour ce sujet s'afficheront ici.",
@@ -51,40 +24,57 @@
"discussions.empty.noTopicSelected": "Aucun sujet sélectionné", "discussions.empty.noTopicSelected": "Aucun sujet sélectionné",
"discussions.sidebar.noResultsFound": "Aucun résultat trouvé", "discussions.sidebar.noResultsFound": "Aucun résultat trouvé",
"discussions.sidebar.differentKeywords": "Essayez de rechercher différents mots-clés", "discussions.sidebar.differentKeywords": "Essayez de rechercher différents mots-clés",
"discussions.sidebar.removeKeywords": "Essayez de rechercher différents mots clés ou de supprimer certains filtres", "discussions.sidebar.removeKeywords": "Essayez de rechercher différents mots-clés ou de retirer certains filtres",
"discussions.sidebar.removeKeywordsOnly": "Essayez de rechercher différents mots-clés", "discussions.sidebar.removeKeywordsOnly": "Essayez de rechercher différents mots-clés",
"discussions.sidebar.removeFilters": "Essayez de supprimer certains filtres", "discussions.sidebar.removeFilters": "Essayez de retirer certains filtres",
"discussions.empty.iconAlt": "Vide", "discussions.empty.iconAlt": "Vide",
"discussions.authors.label.staff": "Équipe pédagogique", "discussions.authors.label.staff": "Personnel",
"discussions.authors.label.ta": "Assistant d'enseignement", "discussions.authors.label.ta": "Assistant d'enseignement",
"discussions.learner.loadMostPosts": "Charger plus de messages", "discussions.learner.loadMostPosts": "Charger plus de publications",
"discussions.post.anonymous.author": "anonyme", "discussions.post.anonymous.author": "anonyme",
"discussion.banner.welcomeMessage": "🎉 Bienvenue dans la nouvelle expérience améliorée de discussions!", "discussion.blackoutBanner.information": "La publication dans les discussions est désactivée par l'équipe du cours",
"discussion.banner.learnMore": "En savoir plus",
"discussion.banner.shareFeedback": "Partager vos commentaires",
"discussion.blackoutBanner.information": "La publication dans les discussions est temporairement désactivée par l'équipe du cours",
"discussions.editor.image.warning.message": "Les images dont la largeur ou la hauteur est supérieure à 999 pixels ne seront pas visibles lorsque la publication, la réponse ou le commentaire est affiché à l'aide de discussions de cours en ligne", "discussions.editor.image.warning.message": "Les images dont la largeur ou la hauteur est supérieure à 999 pixels ne seront pas visibles lorsque la publication, la réponse ou le commentaire est affiché à l'aide de discussions de cours en ligne",
"discussions.editor.image.warning.title": "Avertissement!", "discussions.editor.image.warning.title": "Avertissement!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Sujets", "navigation.course.tabs.label": "Matériel de cours",
"discussions.navigation.breadcrumbMenu.showAll": "Tout afficher", "discussions.topics.backAlt": "Retour à la liste des sujets",
"discussions.navigation.navigationBar.allPosts": "Tous les messages", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Sujets", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "Mes messages", "discussions.topics.reported": "{reported} signalé",
"discussions.navigation.navigationBar.learners": "Apprenants", "discussions.topics.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.topics.find.label": "Rechercher des sujets",
"discussions.topics.unnamed.section.label": "Section sans nom",
"discussions.topics.unnamed.subsection.label": "Sous-section sans nom",
"discussions.subtopics.unnamed.topic.label": "Sujet sans nom",
"discussions.topics.title": "Aucun sujet n'existe",
"discussions.topics.createTopic": "Veuillez contacter votre admin pour créer un sujet",
"discussions.topics.nothing": "Rien ici encore",
"discussions.topics.archived.label": "Archivé",
"discussions.learner.reported": "{reported} signalé",
"discussions.learner.previouslyReported": "{previouslyReported} signalé précédemment",
"discussions.learner.lastLogin": "Dernier actif {lastActiveTime}",
"discussions.learner.loadMostLearners": "Afficher plus",
"discussions.learner.back": "Retour",
"discussions.learner.activityForLearner": "Activité pour {username}",
"discussions.learner.mostActivity": "Les plus actifs",
"discussions.learner.reportedActivity": "Activité signalée",
"discussions.learner.recentActivity": "Activité récente",
"discussions.learner.sortFilterStatus": "Tous les apprenants triés par {sort, select, flagged {activité signalée} activité {la plupart des activités} autre {{sort}}",
"discussion.learner.allActivity": "Toutes les activités",
"discussion.learner.posts": "Publications",
"discussions.comments.comment.addComment": "Ajouter un commentaire", "discussions.comments.comment.addComment": "Ajouter un commentaire",
"discussions.comments.comment.addResponse": "Ajouter une réponse", "discussions.comments.comment.addResponse": "Ajouter une réponse",
"discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen", "discussions.comments.comment.abuseFlaggedMessage": "Contenu signalé au personnel pour examen",
"discussions.actions.back.alt": "Retour à la liste", "discussions.actions.back.alt": "Retour à la liste",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {Aucune réponse}\n one {Affiche # réponse}\n other {Affiche # réponses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {Aucune réponse} on {Affichage de # réponse} other {Affichage de # réponses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, pluriel, =0 {Aucune réponse approuvé } un {Affichage de # réponse approuvé } autre {Affichage de # réponses approuvé } }",
"discussions.comments.comment.loadMoreComments": "Charger plus de commentaires", "discussions.comments.comment.loadMoreComments": "Charger plus de commentaires",
"discussions.comments.comment.loadMoreResponses": "Charger plus de réponses", "discussions.comments.comment.loadMoreResponses": "Charger plus de réponses",
"discussions.comments.comment.visibility": "Ce message est visible par {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "Cette publication est visible par {group, select, null {Tout le monde} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} Question {Question} other { {postType}} } publié {relativeTime} par",
"discussions.comments.comment.commentTime": "Publié {relativeTime}", "discussions.comments.comment.commentTime": "Publié {relativeTime}",
"discussions.comments.comment.answer": "Réponse", "discussions.comments.comment.answer": "Réponse",
"discussions.comments.comment.answeredlabel": "Marqué comme répondu par", "discussions.comments.comment.answeredlabel": "Marqué comme répondue par",
"discussions.comments.comment.endorsed": "Approuvé", "discussions.comments.comment.endorsed": "Approuvé",
"discussions.comments.comment.endorsedlabel": "Approuvé par", "discussions.comments.comment.endorsedlabel": "Approuvé par",
"discussions.actions.label": "Menu Actions", "discussions.actions.label": "Menu Actions",
@@ -106,22 +96,77 @@
"discussions.comment.comments.editedBy": "Édité par", "discussions.comment.comments.editedBy": "Édité par",
"discussions.comment.comments.fullStop": "•", "discussions.comment.comments.fullStop": "•",
"discussions.comment.comments.reason": "Raison", "discussions.comment.comments.reason": "Raison",
"discussions.post.closedBy": "Message fermé par", "discussions.post.closedBy": "Publication fermée par",
"discussion.comment.time": "il y a {time}", "discussion.comment.time": "il y a {time}",
"discussion.thread.notFound": "Sujet introuvable", "discussion.thread.notFound": "Sujet introuvable",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Le plus ancien en premier} true {Le plus récent en premier} other {{sort}} }",
"discussions.topics.sort.message": "Triées par {sortBy}",
"discussions.topics.sort.lastActivity": "Activité récente",
"discussions.topics.sort.commentCount": "Les plus actives",
"discussions.topics.sort.courseStructure": "Structure du cours",
"discussions.topics.unnamed.label": "Catégorie sans nom",
"discussions.subtopics.unnamed.label": "Sous-catégorie sans nom",
"tour.action.advance": "Suivant",
"tour.action.dismiss": "Rejeter",
"tour.action.end": "D'accord",
"tour.body.notRespondedFilter": "Vous pouvez maintenant filtrer les discussions pour trouver les publications sans réponses.",
"tour.title.notRespondedFilter": "Nouvelle option de filtrage!",
"tour.body.responseSortTour": "Les réponses et les commentaires sont désormais triés par les plus récents en premier. Veuillez utiliser cette option pour modifier l'ordre de tri",
"tour.title.responseSortTour": "Triez les réponses!",
"learn.course.tabs.navigation.overflow.menu": "Plus...",
"discussions.navigation.breadcrumbMenu.allTopics": "Sujets",
"discussions.navigation.breadcrumbMenu.showAll": "Tout afficher",
"discussions.navigation.navigationBar.allPosts": "Toutes les publications",
"discussions.navigation.navigationBar.allTopics": "Sujets",
"discussions.navigation.navigationBar.myPosts": "Mes publications",
"discussions.navigation.navigationBar.learners": "Apprenants",
"discussions.post.author.anonymous": "anonyme",
"discussions.post.addResponse": "Ajouter une réponse",
"discussions.post.lastResponse": "Dernière réponse {time}",
"discussions.post.postedOn": "Publiée {time} par {author} {authorLabel}",
"discussions.post.contentReported": "Signalées",
"discussions.post.following": "Suivies",
"discussions.post.follow": "Suivre",
"discussions.post.followed": "Suivies",
"discussions.post.notFollowed": "Non suivies",
"discussions.post.answered": "Répondues",
"discussions.post.unFollow": "Ne plus suivre",
"discussions.post.like": "Aime",
"discussions.post.removeLike": "N'aime plus",
"discussions.post.liked": "aimées",
"discussions.post.likes": "aime",
"discussions.post.viewActivity": "Afficher l'activité",
"discussions.post.activity": "Activité",
"discussions.post.closed": "Publication fermée pour réponses et commentaires",
"discussions.post.relatedTo": "Relative à",
"discussions.editor.delete.post.title": "Supprimer la publication",
"discussions.editor.delete.post.description": "Êtes-vous sûr de vouloir supprimer définitivement cette publication?",
"discussions.post.delete.confirmation.button.delete": "Supprimer",
"discussions.editor.report.post.title": "Signaler un contenu inapproprié?",
"discussions.editor.report.post.description": "L'équipe de modération de la discussion examinera ce contenu et prendra les mesures appropriées.",
"discussions.post.closePostModal.title": "Fermer la publication",
"discussions.post.closePostModal.text": "Entrez une raison pour fermer cette publication. Cela ne sera affiché qu'aux autres modérateurs.",
"discussions.post.closePostModal.reasonCodeInput": "Raison",
"discussions.post.closePostModal.cancel": "Annuler",
"discussions.post.closePostModal.confirm": "Fermer la publication",
"discussions.post.label.new": "{count} Nouveau",
"discussions.post.editedBy": "Éditée par",
"discussions.post.editReason": "Raison",
"discussions.post.postWithoutPreview": "Aucun aperçu disponible",
"discussions.post.follow.description": "vous suivez cette publication",
"discussions.post.unfollow.description": "vous ne suivez pas cette publication",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Recherche dans les messages", "discussions.posts.actionBar.searchAllPosts": "Recherche dans les publications",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Rechercher des sujets} posts {Rechercher tous les messages} learners {Rechercher des apprenants} myPosts {Rechercher tous les messages} other {{page}} }",
"discussions.actionBar.searchInfo": "Affichage des résultats {count} pour \"{text}\"", "discussions.actionBar.searchInfo": "Affichage des résultats {count} pour \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "Aucun résultat trouvé pour \"(searchString}\". Affichage des résultats {count} pour \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "Aucun résultat trouvé pour \"{searchString}\". Affichage des résultats {count} pour \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Recherche...", "discussions.actionBar.searchInfoSearching": "Recherche...",
"discussions.actionBar.clearSearch": "Effacer les résultats", "discussions.actionBar.clearSearch": "Effacer les résultats",
"discussion.posts.actionBar.add": "Ajouter un message", "discussion.posts.actionBar.add": "Ajouter une publication",
"discussion.posts.actionBar.close": "Fermer", "discussion.posts.actionBar.close": "Fermer",
"discussions.post.editor.type": "Type de message", "discussions.post.editor.type": "Type de publication",
"discussions.post.editor.addPostHeading": "Ajouter un message", "discussions.post.editor.addPostHeading": "Ajouter une publication",
"discussions.post.editor.editPostHeading": "Modifier le message", "discussions.post.editor.editPostHeading": "Modifier la publication",
"discussions.post.editor.typeDescription": "Les questions soulèvent des problèmes auxquels il faut répondre. Les discussions partagent des idées et démarrent des conversations.", "discussions.post.editor.typeDescription": "Les questions soulèvent des problèmes auxquels il faut répondre. Les discussions partagent des idées et démarrent des conversations.",
"discussions.post.editor.required": "Obligatoire", "discussions.post.editor.required": "Obligatoire",
"discussions.post.editor.questionType": "Question", "discussions.post.editor.questionType": "Question",
@@ -129,16 +174,16 @@
"discussions.post.editor.discussionType": "Discussion", "discussions.post.editor.discussionType": "Discussion",
"discussions.post.editor.discussionDescription": "Partagez des idées et démarrez des conversations", "discussions.post.editor.discussionDescription": "Partagez des idées et démarrez des conversations",
"discussions.post.editor.topicArea": "Secteur thématique", "discussions.post.editor.topicArea": "Secteur thématique",
"discussions.post.editor.topicAreaDescription": "Ajouter votre message à un sujet pertinent afin d'aider les autres à le trouver.", "discussions.post.editor.topicAreaDescription": "Ajouter votre publication à un sujet pertinent afin d'aider les autres à la trouver.",
"discussions.post.editor.cohortVisibility": "Visibilité de la cohorte", "discussions.post.editor.cohortVisibility": "Visibilité de la cohorte",
"discussions.post.editor.cohortVisibilityAllLearners": "Tous les apprenants", "discussions.post.editor.cohortVisibilityAllLearners": "Tous les apprenants",
"discussions.post.editor.title": "Titre de l'article", "discussions.post.editor.title": "Titre de la publication",
"discussions.post.editor.titleDescription": "Ajouter un titre clair et descriptif afin d'encourager la participation.", "discussions.post.editor.titleDescription": "Ajouter un titre clair et descriptif afin d'encourager la participation.",
"discussions.post.editor.title.error": "Le titre du message ne peut pas être vide.", "discussions.post.editor.title.error": "Le titre de la publication ne peut pas être vide.",
"discussions.post.editor.content.error": "Le contenu de la publication ne peut pas être vide.", "discussions.post.editor.content.error": "Le contenu de la publication ne peut pas être vide.",
"discussions.post.editor.questionText": "Votre question ou idée (obligatoire)", "discussions.post.editor.questionText": "Votre question ou idée (obligatoire)",
"discussions.post.editor.preview": "Aperçu", "discussions.post.editor.preview": "Aperçu",
"discussions.post.editor.followPost": "Suivez ce message", "discussions.post.editor.followPost": "Suivez cette publication",
"discussions.post.editor.anonymousPost": "Publier anonymement", "discussions.post.editor.anonymousPost": "Publier anonymement",
"discussions.post.editor.anonymousToPeersPost": "Publier anonymement à vos pairs", "discussions.post.editor.anonymousToPeersPost": "Publier anonymement à vos pairs",
"discussions.editor.posts.editReasonCode": "Raison de la modification", "discussions.editor.posts.editReasonCode": "Raison de la modification",
@@ -150,65 +195,17 @@
"discussions.posts.filter.questions": "Questions", "discussions.posts.filter.questions": "Questions",
"discussions.posts.filter.message": "Statut : {filterBy}", "discussions.posts.filter.message": "Statut : {filterBy}",
"discussions.posts.status.filter.anyStatus": "Tout statut", "discussions.posts.status.filter.anyStatus": "Tout statut",
"discussions.posts.status.filter.unread": "Non lu", "discussions.posts.status.filter.unread": "Non lues",
"discussions.posts.status.filter.following": "Suivi", "discussions.posts.status.filter.following": "Suivies",
"discussions.posts.status.filter.reported": "Signalé", "discussions.posts.status.filter.reported": "Signalées",
"discussions.posts.status.filter.unanswered": "Non répondu", "discussions.posts.status.filter.unanswered": "Sans réponses",
"discussions.posts.status.filter.unresponded": "Pas répondu", "discussions.posts.status.filter.unresponded": "Non répondues",
"discussions.posts.filter.myPosts": "Mes messages", "discussions.posts.filter.myPosts": "Mes publications",
"discussions.posts.filter.myDiscussions": "Mes discussions", "discussions.posts.filter.myDiscussions": "Mes discussions",
"discussions.posts.filter.myQuestions": "Mes questions", "discussions.posts.filter.myQuestions": "Mes questions",
"discussions.posts.sort.message": "Trié par {sortBy}", "discussions.posts.sort.message": "Triées par {sortBy}",
"discussions.posts.sort.lastActivity": "Activité récente", "discussions.posts.sort.lastActivity": "Activité récente",
"discussions.posts.sort.commentCount": "La plupart des activités", "discussions.posts.sort.commentCount": "Les plus actives",
"discussions.posts.sort.voteCount": "La plupart des aimés", "discussions.posts.sort.voteCount": "Les plus aimées",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {Toutes} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {non lues} statusFollowing {suivies} statusReported {signalées} statusUnanswered {sans réponses} statusUnresponded {non répondues} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } triées par {sort, select, lastActivityAt {les plus récentes} commentCount {les plus actives} voteCount {les plus aimées} other {{sort}} }"
"discussions.post.author.anonymous": "anonyme",
"discussions.post.addResponse": "Ajouter une réponse",
"discussions.post.lastResponse": "Dernière réponse {time}",
"discussions.post.postedOn": "Publié {time} par {author} {authorLabel}",
"discussions.post.contentReported": "Signalé",
"discussions.post.following": "Suivi",
"discussions.post.follow": "Suivre",
"discussions.post.followed": "Suivi",
"discussions.post.notFollowed": "Non suivi",
"discussions.post.answered": "Répondu",
"discussions.post.unFollow": "Ne plus suivre",
"discussions.post.like": "Aime",
"discussions.post.removeLike": "Contrairement à",
"discussions.post.liked": "aimé",
"discussions.post.likes": "aime",
"discussions.post.viewActivity": "Afficher l'activité",
"discussions.post.activity": "Activité",
"discussions.post.closed": "Message fermé pour réponses et commentaires",
"discussions.post.relatedTo": "Relative à",
"discussions.editor.delete.post.title": "Supprimer le message",
"discussions.editor.delete.post.description": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
"discussions.post.delete.confirmation.button.delete": "Supprimer",
"discussions.editor.report.post.title": "Signaler un contenu inapproprié?",
"discussions.editor.report.post.description": "L'équipe de modération de la discussion examinera ce contenu et prendra les mesures appropriées.",
"discussions.post.closePostModal.title": "Fermer le message",
"discussions.post.closePostModal.text": "Entrez une raison pour fermer ce message. Cela ne sera affiché qu'aux autres modérateurs.",
"discussions.post.closePostModal.reasonCodeInput": "Raison",
"discussions.post.closePostModal.cancel": "Annuler",
"discussions.post.closePostModal.confirm": "Fermer le message",
"discussions.post.label.new": "{count} Nouveau",
"discussions.post.editedBy": "Édité par",
"discussions.post.editReason": "Raison",
"discussions.post.postWithoutPreview": "Aucun aperçu disponible",
"discussions.post.follow.description": "vous suivez ce post",
"discussions.post.unfollow.description": "vous ne suivez pas ce post",
"discussions.topics.sort.message": "Trié par {sortBy}",
"discussions.topics.sort.lastActivity": "Activité récente",
"discussions.topics.sort.commentCount": "La plupart des activités",
"discussions.topics.sort.courseStructure": "Structure du cours",
"discussions.topics.unnamed.label": "Catégorie sans nom",
"discussions.subtopics.unnamed.label": "Sous-catégorie sans nom",
"tour.action.advance": "Suivant",
"tour.action.dismiss": "Rejeter",
"tour.action.end": "D'accord",
"tour.body.notRespondedFilter": "Vous pouvez maintenant filtrer les discussions pour trouver les messages sans réponse.",
"tour.title.notRespondedFilter": "Nouvelle option de filtrage!",
"tour.body.responseSortTour": "Les réponses et les commentaires sont désormais triés par les plus récents en premier. Veuillez utiliser cette option pour modifier l'ordre de tri",
"tour.title.responseSortTour": "Triez les réponses !"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Actions menu", "discussions.actions.button.alt": "Actions menu",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Add a response", "discussions.comments.comment.addResponse": "Add a response",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Load more comments", "discussions.comments.comment.loadMoreComments": "Load more comments",
"discussions.comments.comment.loadMoreResponses": "Load more responses", "discussions.comments.comment.loadMoreResponses": "Load more responses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Marked as answered by", "discussions.comments.comment.answeredlabel": "Marked as answered by",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post closed by", "discussions.post.closedBy": "Post closed by",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Actions menu", "discussions.actions.button.alt": "Actions menu",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Add a response", "discussions.comments.comment.addResponse": "Add a response",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Load more comments", "discussions.comments.comment.loadMoreComments": "Load more comments",
"discussions.comments.comment.loadMoreResponses": "Load more responses", "discussions.comments.comment.loadMoreResponses": "Load more responses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Marked as answered by", "discussions.comments.comment.answeredlabel": "Marked as answered by",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post closed by", "discussions.post.closedBy": "Post closed by",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Materiale del corso",
"learn.course.tabs.navigation.overflow.menu": "Altro... ",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archiviati",
"discussions.learner.reported": "{reported} segnalato",
"discussions.learner.previouslyReported": "{previouslyReported} segnalato in precedenza",
"discussions.learner.lastLogin": "Ultimo attivo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Caricane di più",
"discussions.learner.back": "Indietro",
"discussions.learner.activityForLearner": "Attività per {username}",
"discussions.learner.mostActivity": "La maggior parte delle attività",
"discussions.learner.reportedActivity": "Attività segnalata",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Menù Azioni", "discussions.actions.button.alt": "Menù Azioni",
"discussions.actions.copylink": "Copia link", "discussions.actions.copylink": "Copia link",
"discussions.actions.edit": "Modifica", "discussions.actions.edit": "Modifica",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Carica più post", "discussions.learner.loadMostPosts": "Carica più post",
"discussions.post.anonymous.author": "anonimo", "discussions.post.anonymous.author": "anonimo",
"discussion.banner.welcomeMessage": "🎉 Benvenuto nella nuova e avanzata esperienza di discussione!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Per saperne di più",
"discussion.banner.shareFeedback": "Condividi feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Argomenti", "navigation.course.tabs.label": "Materiale del corso",
"discussions.navigation.breadcrumbMenu.showAll": "Mostra tutto", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "Tutti i post", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Argomenti", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "I miei post", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Utenti", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.comments.comment.addComment": "Add comment", "discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archiviati",
"discussions.learner.reported": "{reported} segnalato",
"discussions.learner.previouslyReported": "{previouslyReported} segnalato in precedenza",
"discussions.learner.lastLogin": "Ultimo attivo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Caricane di più",
"discussions.learner.back": "Indietro",
"discussions.learner.activityForLearner": "Attività per {username}",
"discussions.learner.mostActivity": "La maggior parte delle attività",
"discussions.learner.reportedActivity": "Attività segnalata",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Aggiungi commento",
"discussions.comments.comment.addResponse": "Aggiungi una risposta", "discussions.comments.comment.addResponse": "Aggiungi una risposta",
"discussions.comments.comment.abuseFlaggedMessage": "Contenuto segnalato per la revisione da parte del personale", "discussions.comments.comment.abuseFlaggedMessage": "Contenuto segnalato per la revisione da parte del personale",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural, =0 {Nessuna risposta} one {Mostra # risposte} other {Mostra # risposte} }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {Nessuna risposta approvata} one {Mostra # risposta approvata} other {Mostra # risposte approvate} }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Carica più commenti", "discussions.comments.comment.loadMoreComments": "Carica più commenti",
"discussions.comments.comment.loadMoreResponses": "Carica più risposte", "discussions.comments.comment.loadMoreResponses": "Carica più risposte",
"discussions.comments.comment.visibility": "Questo post è visibile a {group, select, null {Everyone} other {{group}} }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select, discussion {Discussione} question {Domanda} other {{postType}} } pubblicato da {a0917e90}14c5z0", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Inserito {relativeTime}", "discussions.comments.comment.commentTime": "Inserito {relativeTime}",
"discussions.comments.comment.answer": "Risposta", "discussions.comments.comment.answer": "Risposta",
"discussions.comments.comment.answeredlabel": "Contrassegnato come risposta da", "discussions.comments.comment.answeredlabel": "Contrassegnato come risposta da",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post chiuso da", "discussions.post.closedBy": "Post chiuso da",
"discussion.comment.time": "{time} fa", "discussion.comment.time": "{time} fa",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Ordinato per {sortBy}",
"discussions.topics.sort.lastActivity": "Attività Recente",
"discussions.topics.sort.commentCount": "La maggior parte delle attività",
"discussions.topics.sort.courseStructure": "Struttura Corso",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "Altro... ",
"discussions.navigation.breadcrumbMenu.allTopics": "Argomenti",
"discussions.navigation.breadcrumbMenu.showAll": "Mostra tutto",
"discussions.navigation.navigationBar.allPosts": "Tutti i post",
"discussions.navigation.navigationBar.allTopics": "Argomenti",
"discussions.navigation.navigationBar.myPosts": "I miei post",
"discussions.navigation.navigationBar.learners": "Utenti",
"discussions.post.author.anonymous": "anonimo",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Ultima risposta {time}",
"discussions.post.postedOn": "Inserito {time} da {author} {authorLabel}",
"discussions.post.contentReported": "Segnalato ",
"discussions.post.following": "Seguente",
"discussions.post.follow": "Segui ",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Risposto",
"discussions.post.unFollow": "Annulla Segui ",
"discussions.post.like": "Piace",
"discussions.post.removeLike": "A differenza di",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "Visualizza attività",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post chiuso per risposte e commenti",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Elimina messaggio",
"discussions.editor.delete.post.description": "Sei sicuro di voler eliminare definitivamente questo post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Chiudi messaggio",
"discussions.post.closePostModal.text": "Inserisci un motivo per chiudere questo post. Questo verrà mostrato solo agli altri moderatori.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo ",
"discussions.post.closePostModal.cancel": "Annulla",
"discussions.post.closePostModal.confirm": "Chiudi messaggio",
"discussions.post.label.new": "{count} Nuovo",
"discussions.post.editedBy": "A cura di",
"discussions.post.editReason": "Motivo ",
"discussions.post.postWithoutPreview": "nessuna anteprima disponibile",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussioni", "discussions.app.title": "Discussioni",
"discussions.posts.actionBar.searchAllPosts": "Cerca tutti i messaggi", "discussions.posts.actionBar.searchAllPosts": "Cerca tutti i messaggi",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Visualizzazione di {count} risultati per &quot;{text}&quot;", "discussions.actionBar.searchInfo": "Visualizzazione di {count} risultati per &quot;{text}&quot;",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Ricerca in corso...", "discussions.actionBar.searchInfoSearching": "Ricerca in corso...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Attività Recente", "discussions.posts.sort.lastActivity": "Attività Recente",
"discussions.posts.sort.commentCount": "La maggior parte delle attività", "discussions.posts.sort.commentCount": "La maggior parte delle attività",
"discussions.posts.sort.voteCount": "La maggior parte dei Mi piace", "discussions.posts.sort.voteCount": "La maggior parte dei Mi piace",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonimo",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Ultima risposta {time}",
"discussions.post.postedOn": "Inserito {time} da {author} {authorLabel}",
"discussions.post.contentReported": "Segnalato ",
"discussions.post.following": "Seguente",
"discussions.post.follow": "Segui ",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Risposto",
"discussions.post.unFollow": "Annulla Segui ",
"discussions.post.like": "Piace",
"discussions.post.removeLike": "A differenza di",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "Visualizza attività",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post chiuso per risposte e commenti",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Elimina messaggio",
"discussions.editor.delete.post.description": "Sei sicuro di voler eliminare definitivamente questo post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Chiudi messaggio",
"discussions.post.closePostModal.text": "Inserisci un motivo per chiudere questo post. Questo verrà mostrato solo agli altri moderatori.",
"discussions.post.closePostModal.reasonCodeInput": "Motivo ",
"discussions.post.closePostModal.cancel": "Annulla",
"discussions.post.closePostModal.confirm": "Chiudi messaggio",
"discussions.post.label.new": "{count} Nuovo",
"discussions.post.editedBy": "A cura di",
"discussions.post.editReason": "Motivo ",
"discussions.post.postWithoutPreview": "nessuna anteprima disponibile",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Ordinato per {sortBy}",
"discussions.topics.sort.lastActivity": "Attività Recente",
"discussions.topics.sort.commentCount": "La maggior parte delle attività",
"discussions.topics.sort.courseStructure": "Struttura Corso",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} zgłoszone",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Ostatnia aktywność {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Aktywność dla {username}",
"discussions.learner.mostActivity": "Największa aktywność",
"discussions.learner.reportedActivity": "Zgłoszona aktywność",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Menu czynności", "discussions.actions.button.alt": "Menu czynności",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Wczytaj więcej postów", "discussions.learner.loadMostPosts": "Wczytaj więcej postów",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "Wszystkie posty", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "Moje posty", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} zgłoszone",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Ostatnia aktywność {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Aktywność dla {username}",
"discussions.learner.mostActivity": "Największa aktywność",
"discussions.learner.reportedActivity": "Zgłoszona aktywność",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Dodaj odpowiedź", "discussions.comments.comment.addResponse": "Dodaj odpowiedź",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n=0 {No responses}\none {Showing # response}\nother {Showing # responses}\n}", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n=0 {No endorsed responses}\none {Showing # endorsed response}\nother {Showing # endorsed responses}\n}", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Załaduj więcej komentarzy", "discussions.comments.comment.loadMoreComments": "Załaduj więcej komentarzy",
"discussions.comments.comment.loadMoreResponses": "Załaduj więcej odpowiedzi", "discussions.comments.comment.loadMoreResponses": "Załaduj więcej odpowiedzi",
"discussions.comments.comment.visibility": "Ten post jest widoczny dla {group, select,\n null {Everyone}\nother {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Wysłano {relativeTime}", "discussions.comments.comment.commentTime": "Wysłano {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Oznaczono jako odpowiedziane przez", "discussions.comments.comment.answeredlabel": "Oznaczono jako odpowiedziane przez",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post zamknięty przez", "discussions.post.closedBy": "Post zamknięty przez",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Posortowane według {sortBy}",
"discussions.topics.sort.lastActivity": "Ostatnia aktywność",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "Wszystkie posty",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "Moje posty",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Ostatnia odpowiedź {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "Zobacz aktywność",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Usuń post",
"discussions.editor.delete.post.description": "Czy na pewno chcesz trwale usunąć ten wpis?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Zamknij post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edytowany przez",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "Podgląd niedostępny",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Wyświetlanie {count} wyników dla „{text}”", "discussions.actionBar.searchInfo": "Wyświetlanie {count} wyników dla „{text}”",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Ostatnia aktywność", "discussions.posts.sort.lastActivity": "Ostatnia aktywność",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Ostatnia odpowiedź {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "Zobacz aktywność",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Usuń post",
"discussions.editor.delete.post.description": "Czy na pewno chcesz trwale usunąć ten wpis?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Zamknij post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edytowany przez",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "Podgląd niedostępny",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Posortowane według {sortBy}",
"discussions.topics.sort.lastActivity": "Ostatnia aktywność",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Material do Curso",
"learn.course.tabs.navigation.overflow.menu": "Mais...",
"discussions.topics.backAlt": "Voltar à lista de tópicos",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussão}\n one {# Discussão}\n other {# Discussões}\n}",
"discussions.topics.questions": "{count, plural,\n =0 {Questão}\n one {# Questão}\n other {# Questões}\n}",
"discussions.topics.reported": "{reported} reportado",
"discussions.topics.previouslyReported": "{previouslyReported} anteriormente reportado",
"discussions.topics.find.label": "Pesquisar tópicos",
"discussions.topics.unnamed.section.label": "Secção sem nome",
"discussions.topics.unnamed.subsection.label": "Subsecção sem nome",
"discussions.subtopics.unnamed.topic.label": "Tópico sem nome",
"discussions.topics.title": "Não existe nenhum tópico",
"discussions.topics.createTopic": "Contacte o seu administrador para criar um tópico",
"discussions.topics.nothing": "Ainda não há aqui nada",
"discussions.topics.archived.label": "Arquivado",
"discussions.learner.reported": "{reported} reportado",
"discussions.learner.previouslyReported": "{previouslyReported} anteriormente reportado",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Carregar mais",
"discussions.learner.back": "Voltar",
"discussions.learner.activityForLearner": "Actividade para {username}",
"discussions.learner.mostActivity": "Maior actividade",
"discussions.learner.reportedActivity": "Actividade comunicada",
"discussions.learner.recentActivity": "Actividade recente",
"discussions.learner.sortFilterStatus": "Todos os alunos ordenados por {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "Toda a actividade",
"discussion.learner.posts": "Publicações",
"discussions.actions.button.alt": "Menu de acções", "discussions.actions.button.alt": "Menu de acções",
"discussions.actions.copylink": "Copiar ligação", "discussions.actions.copylink": "Copiar ligação",
"discussions.actions.edit": "Editar", "discussions.actions.edit": "Editar",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Carregar mais mensagens", "discussions.learner.loadMostPosts": "Carregar mais mensagens",
"discussions.post.anonymous.author": "anónimo", "discussions.post.anonymous.author": "anónimo",
"discussion.banner.welcomeMessage": "🎉 Bem-vindo à nova e melhorada experiência de debate!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Saber mais",
"discussion.banner.shareFeedback": "Partilhar comentários",
"discussion.blackoutBanner.information": "O envio de mensagens para os debates está temporariamente desactivado pela equipa de curso",
"discussions.editor.image.warning.message": "As imagens com largura ou altura superior a 999px não serão visíveis quando a mensagem, resposta ou comentário for visualizado utilizando os debates em linha da disciplina", "discussions.editor.image.warning.message": "As imagens com largura ou altura superior a 999px não serão visíveis quando a mensagem, resposta ou comentário for visualizado utilizando os debates em linha da disciplina",
"discussions.editor.image.warning.title": "Aviso!", "discussions.editor.image.warning.title": "Aviso!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Tópicos", "navigation.course.tabs.label": "Material do Curso",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar tudo", "discussions.topics.backAlt": "Voltar à lista de tópicos",
"discussions.navigation.navigationBar.allPosts": "Todas as mensagens", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Tópicos", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "As minhas mensagens", "discussions.topics.reported": "{reported} reportado",
"discussions.navigation.navigationBar.learners": "Estudantes", "discussions.topics.previouslyReported": "{previouslyReported} anteriormente reportado",
"discussions.topics.find.label": "Pesquisar tópicos",
"discussions.topics.unnamed.section.label": "Secção sem nome",
"discussions.topics.unnamed.subsection.label": "Subsecção sem nome",
"discussions.subtopics.unnamed.topic.label": "Tópico sem nome",
"discussions.topics.title": "Não existe nenhum tópico",
"discussions.topics.createTopic": "Contacte o seu administrador para criar um tópico",
"discussions.topics.nothing": "Ainda não há aqui nada",
"discussions.topics.archived.label": "Arquivado",
"discussions.learner.reported": "{reported} reportado",
"discussions.learner.previouslyReported": "{previouslyReported} anteriormente reportado",
"discussions.learner.lastLogin": "Último activo {lastActiveTime}",
"discussions.learner.loadMostLearners": "Carregar mais",
"discussions.learner.back": "Voltar",
"discussions.learner.activityForLearner": "Actividade para {username}",
"discussions.learner.mostActivity": "Maior actividade",
"discussions.learner.reportedActivity": "Actividade comunicada",
"discussions.learner.recentActivity": "Actividade recente",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "Toda a actividade",
"discussion.learner.posts": "Publicações",
"discussions.comments.comment.addComment": "Adicionar comentário", "discussions.comments.comment.addComment": "Adicionar comentário",
"discussions.comments.comment.addResponse": "Adicionar uma resposta", "discussions.comments.comment.addResponse": "Adicionar uma resposta",
"discussions.comments.comment.abuseFlaggedMessage": "Conteúdo comunicado para análise pelo pessoal", "discussions.comments.comment.abuseFlaggedMessage": "Conteúdo comunicado para análise pelo pessoal",
"discussions.actions.back.alt": "Voltar à lista", "discussions.actions.back.alt": "Voltar à lista",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {Sem respostas}\n one {Mostrar # resposta}\n other {Mostrar # respostas}\n}", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {Nenhuma resposta aprovada}\n one {Mostrar # resposta aprovada}\n other {Mostrar # respostas aprovadas}\n}", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Carregar mais comentários", "discussions.comments.comment.loadMoreComments": "Carregar mais comentários",
"discussions.comments.comment.loadMoreResponses": "Carregar mais respostas", "discussions.comments.comment.loadMoreResponses": "Carregar mais respostas",
"discussions.comments.comment.visibility": "Esta publicação é visível para {group, select,\n null {Todos}\n other {{group}}\n}.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussão}\n question {Questão}\n other {{postType}}\n} registada {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Publicado {relativeTime}", "discussions.comments.comment.commentTime": "Publicado {relativeTime}",
"discussions.comments.comment.answer": "Resposta", "discussions.comments.comment.answer": "Resposta",
"discussions.comments.comment.answeredlabel": "Marcado como respondido por", "discussions.comments.comment.answeredlabel": "Marcado como respondido por",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Mensagem fechada por", "discussions.post.closedBy": "Mensagem fechada por",
"discussion.comment.time": "{time} atrás", "discussion.comment.time": "{time} atrás",
"discussion.thread.notFound": "Thread não encontrado", "discussion.thread.notFound": "Thread não encontrado",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {O mais velho primeiro}\n true {Mais recente primeiro}\n other {{sort}}\n}", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividade recente",
"discussions.topics.sort.commentCount": "Maior actividade",
"discussions.topics.sort.courseStructure": "Estrutura do Curso",
"discussions.topics.unnamed.label": "Categoria sem nome",
"discussions.subtopics.unnamed.label": "Subcategoria sem nome",
"tour.action.advance": "Seguinte",
"tour.action.dismiss": "Ignorar",
"tour.action.end": "OK",
"tour.body.notRespondedFilter": "Agora pode filtrar discussões para encontrar mensagens sem resposta.",
"tour.title.notRespondedFilter": "Nova opção de filtragem!",
"tour.body.responseSortTour": "As respostas e os comentários estão agora ordenados pelo mais recente primeiro. Utilize esta opção para alterar a ordem de ordenação",
"tour.title.responseSortTour": "Ordenar respostas!",
"learn.course.tabs.navigation.overflow.menu": "Mais...",
"discussions.navigation.breadcrumbMenu.allTopics": "Tópicos",
"discussions.navigation.breadcrumbMenu.showAll": "Mostrar tudo",
"discussions.navigation.navigationBar.allPosts": "Todas as mensagens",
"discussions.navigation.navigationBar.allTopics": "Tópicos",
"discussions.navigation.navigationBar.myPosts": "As minhas mensagens",
"discussions.navigation.navigationBar.learners": "Estudantes",
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Adicionar resposta",
"discussions.post.lastResponse": "Última resposta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Denunciado",
"discussions.post.following": "Seguir",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "Não seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Deixar de Seguir",
"discussions.post.like": "Gosto da mensagem",
"discussions.post.removeLike": "Não gostei da mensagem",
"discussions.post.liked": "gostei",
"discussions.post.likes": "gostos",
"discussions.post.viewActivity": "Ver actividade",
"discussions.post.activity": "Atividade",
"discussions.post.closed": "Post fechado para respostas e comentários",
"discussions.post.relatedTo": "Relacionado com",
"discussions.editor.delete.post.title": "Eliminar mensagem",
"discussions.editor.delete.post.description": "Tem a certeza de que pretende apagar permanentemente esta mensagem?",
"discussions.post.delete.confirmation.button.delete": "Eliminar",
"discussions.editor.report.post.title": "Comunicar conteúdo inadequado?",
"discussions.editor.report.post.description": "A equipa de moderação do debate analisará este conteúdo e tomará as medidas adequadas.",
"discussions.post.closePostModal.title": "Fechar mensagem",
"discussions.post.closePostModal.text": "Introduza um motivo para encerrar esta mensagem. Isto só será exibido para outros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Razão",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Fechar mensagem",
"discussions.post.label.new": "{count} Novo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Razão",
"discussions.post.postWithoutPreview": "Não há pré-visualização disponível",
"discussions.post.follow.description": "está a seguir esta mensagem",
"discussions.post.unfollow.description": "não está a seguir este post",
"discussions.app.title": "Debates", "discussions.app.title": "Debates",
"discussions.posts.actionBar.searchAllPosts": "Pesquisar publicações", "discussions.posts.actionBar.searchAllPosts": "Pesquisar publicações",
"discussions.posts.actionBar.search": "{page, select,\n topics {Tópicos de pesquisa}\n posts {Pesquisar todas as mensagens}\n learners {Pesquisar estudantes}\n myPosts {Pesquisar todas as minhas mensagens}\n other {{page}}\n}", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Exibindo {count} resultados para \"{text}\"", "discussions.actionBar.searchInfo": "Exibindo {count} resultados para \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "Não foram encontrados resultados para \"{searchString}\". A mostrar {count} resultados para \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "Não foram encontrados resultados para \"{searchString}\". A mostrar {count} resultados para \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "A procurar...", "discussions.actionBar.searchInfoSearching": "A procurar...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Actividade recente", "discussions.posts.sort.lastActivity": "Actividade recente",
"discussions.posts.sort.commentCount": "Maior actividade", "discussions.posts.sort.commentCount": "Maior actividade",
"discussions.posts.sort.voteCount": "Mais gostos", "discussions.posts.sort.voteCount": "Mais gostos",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {Todos}\n true {Próprio}\n other {{own}}\n} {status, select,\n statusAll {}\n statusUnread {não lido}\n statusFollowing {seguindo}\n statusReported {comunicado}\n statusUnanswered {sem resposta}\n statusUnresponded {não respondido}\n other {{status}}\n} {type, select,\n discussion {debates}\n question {perguntas}\n all {todas as mensagens}\n other {{type}}\n} {cohortType, select,\n all {}\n group {em {cohort}}\n other {{cohortType}}\n} sorted by {sort, select,\n lastActivityAt {actividade recente}\n commentCount {maior actividade}\n voteCount {mais gostos}\n other {{sort}}\n}", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anónimo",
"discussions.post.addResponse": "Adicionar resposta",
"discussions.post.lastResponse": "Última resposta {time}",
"discussions.post.postedOn": "Publicado {time} por {author} {authorLabel}",
"discussions.post.contentReported": "Denunciado",
"discussions.post.following": "Seguir",
"discussions.post.follow": "Seguir",
"discussions.post.followed": "Seguido",
"discussions.post.notFollowed": "Não seguido",
"discussions.post.answered": "Respondido",
"discussions.post.unFollow": "Deixar de Seguir",
"discussions.post.like": "Gosto da mensagem",
"discussions.post.removeLike": "Não gostei da mensagem",
"discussions.post.liked": "gostei",
"discussions.post.likes": "gostos",
"discussions.post.viewActivity": "Ver actividade",
"discussions.post.activity": "Atividade",
"discussions.post.closed": "Post fechado para respostas e comentários",
"discussions.post.relatedTo": "Relacionado com",
"discussions.editor.delete.post.title": "Eliminar mensagem",
"discussions.editor.delete.post.description": "Tem a certeza de que pretende apagar permanentemente esta mensagem?",
"discussions.post.delete.confirmation.button.delete": "Eliminar",
"discussions.editor.report.post.title": "Comunicar conteúdo inadequado?",
"discussions.editor.report.post.description": "A equipa de moderação do debate analisará este conteúdo e tomará as medidas adequadas.",
"discussions.post.closePostModal.title": "Fechar mensagem",
"discussions.post.closePostModal.text": "Introduza um motivo para encerrar esta mensagem. Isto só será exibido para outros moderadores.",
"discussions.post.closePostModal.reasonCodeInput": "Razão",
"discussions.post.closePostModal.cancel": "Cancelar",
"discussions.post.closePostModal.confirm": "Fechar mensagem",
"discussions.post.label.new": "{count} Novo",
"discussions.post.editedBy": "Editado por",
"discussions.post.editReason": "Razão",
"discussions.post.postWithoutPreview": "Não há pré-visualização disponível",
"discussions.post.follow.description": "está a seguir esta mensagem",
"discussions.post.unfollow.description": "não está a seguir este post",
"discussions.topics.sort.message": "Ordenado por {sortBy}",
"discussions.topics.sort.lastActivity": "Actividade recente",
"discussions.topics.sort.commentCount": "Maior actividade",
"discussions.topics.sort.courseStructure": "Estrutura do Curso",
"discussions.topics.unnamed.label": "Categoria sem nome",
"discussions.subtopics.unnamed.label": "Subcategoria sem nome",
"tour.action.advance": "Seguinte",
"tour.action.dismiss": "Ignorar",
"tour.action.end": "OK",
"tour.body.notRespondedFilter": "Agora pode filtrar discussões para encontrar mensagens sem resposta.",
"tour.title.notRespondedFilter": "Nova opção de filtragem!",
"tour.body.responseSortTour": "As respostas e os comentários estão agora ordenados pelo mais recente primeiro. Utilize esta opção para alterar a ordem de ordenação",
"tour.title.responseSortTour": "Ordenar respostas!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Actions menu", "discussions.actions.button.alt": "Actions menu",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Add a response", "discussions.comments.comment.addResponse": "Add a response",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Load more comments", "discussions.comments.comment.loadMoreComments": "Load more comments",
"discussions.comments.comment.loadMoreResponses": "Load more responses", "discussions.comments.comment.loadMoreResponses": "Load more responses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Marked as answered by", "discussions.comments.comment.answeredlabel": "Marked as answered by",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post closed by", "discussions.post.closedBy": "Post closed by",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Ders Materyali",
"learn.course.tabs.navigation.overflow.menu": "Daha Fazlası...",
"discussions.topics.backAlt": "Konular listesine dön",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} rapor edildi",
"discussions.topics.previouslyReported": "{previouslyReported} ileti rapor edildi",
"discussions.topics.find.label": "Konuları ara",
"discussions.topics.unnamed.section.label": "İsimsiz Bölüm",
"discussions.topics.unnamed.subsection.label": "İsimsiz Altbölüm",
"discussions.subtopics.unnamed.topic.label": "İsimsiz Konu",
"discussions.topics.title": "Hiçbir konu yok",
"discussions.topics.createTopic": "Bir konu başlatmak için yöneticinizle iletişime geçin",
"discussions.topics.nothing": "Burada henüz bir şey yok",
"discussions.topics.archived.label": "Arşivlenmiş",
"discussions.learner.reported": "{reported} rapor edildi",
"discussions.learner.previouslyReported": "{previouslyReported} daha önce rapor edildi",
"discussions.learner.lastLogin": "Son etkinlik {lastActiveTime}",
"discussions.learner.loadMostLearners": "Daha fazla yükle",
"discussions.learner.back": "Geri",
"discussions.learner.activityForLearner": "{username} için etkinlik",
"discussions.learner.mostActivity": "En çok etkinlik",
"discussions.learner.reportedActivity": "Rapor edilen etkinlik",
"discussions.learner.recentActivity": "Son etkinlik",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "Tüm etkinlikler",
"discussion.learner.posts": "Gönderiler",
"discussions.actions.button.alt": "Eylemler menüsü", "discussions.actions.button.alt": "Eylemler menüsü",
"discussions.actions.copylink": "Bağlantıyı kopyala", "discussions.actions.copylink": "Bağlantıyı kopyala",
"discussions.actions.edit": "Düzenle", "discussions.actions.edit": "Düzenle",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Daha fazla ileti yükle", "discussions.learner.loadMostPosts": "Daha fazla ileti yükle",
"discussions.post.anonymous.author": "anonim", "discussions.post.anonymous.author": "anonim",
"discussion.banner.welcomeMessage": "🎉 Yeni ve geliştirilmiş tartışma deneyimine hoş geldiniz!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Daha fazlasını öğren",
"discussion.banner.shareFeedback": "Geri bildirim paylaş",
"discussion.blackoutBanner.information": "Tartışmalarda ileti yayınlama, ders ekibi tarafından geçici olarak devre dışı bırakıldı",
"discussions.editor.image.warning.message": "Genişliği veya yüksekliği 999 pikselden büyük olan resimler, çevrimiçi ders tartışmalarında yer alan gönderi, yanıt veya yorumlarda görüntülenemez.", "discussions.editor.image.warning.message": "Genişliği veya yüksekliği 999 pikselden büyük olan resimler, çevrimiçi ders tartışmalarında yer alan gönderi, yanıt veya yorumlarda görüntülenemez.",
"discussions.editor.image.warning.title": "Uyarı!", "discussions.editor.image.warning.title": "Uyarı!",
"discussions.editor.image.warning.dismiss": "Tamam", "discussions.editor.image.warning.dismiss": "Tamam",
"discussions.navigation.breadcrumbMenu.allTopics": "Konular", "navigation.course.tabs.label": "Ders Materyali",
"discussions.navigation.breadcrumbMenu.showAll": "Tümünü göster", "discussions.topics.backAlt": "Konular listesine dön",
"discussions.navigation.navigationBar.allPosts": "Tüm iletiler", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Konular", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "İletilerim", "discussions.topics.reported": "{reported} rapor edildi",
"discussions.navigation.navigationBar.learners": "Öğrenciler", "discussions.topics.previouslyReported": "{previouslyReported} ileti rapor edildi",
"discussions.topics.find.label": "Konuları ara",
"discussions.topics.unnamed.section.label": "İsimsiz Bölüm",
"discussions.topics.unnamed.subsection.label": "İsimsiz Altbölüm",
"discussions.subtopics.unnamed.topic.label": "İsimsiz Konu",
"discussions.topics.title": "Hiçbir konu yok",
"discussions.topics.createTopic": "Bir konu başlatmak için yöneticinizle iletişime geçin",
"discussions.topics.nothing": "Burada henüz bir şey yok",
"discussions.topics.archived.label": "Arşivlenmiş",
"discussions.learner.reported": "{reported} rapor edildi",
"discussions.learner.previouslyReported": "{previouslyReported} daha önce rapor edildi",
"discussions.learner.lastLogin": "Son etkinlik {lastActiveTime}",
"discussions.learner.loadMostLearners": "Daha fazla yükle",
"discussions.learner.back": "Geri",
"discussions.learner.activityForLearner": "{username} için etkinlik",
"discussions.learner.mostActivity": "En çok etkinlik",
"discussions.learner.reportedActivity": "Rapor edilen etkinlik",
"discussions.learner.recentActivity": "Son etkinlik",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "Tüm etkinlikler",
"discussion.learner.posts": "Gönderiler",
"discussions.comments.comment.addComment": "Yorum ekle", "discussions.comments.comment.addComment": "Yorum ekle",
"discussions.comments.comment.addResponse": "Bir cevap ekle", "discussions.comments.comment.addResponse": "Bir cevap ekle",
"discussions.comments.comment.abuseFlaggedMessage": "Personelin incelemesi için bildirilen içerik", "discussions.comments.comment.abuseFlaggedMessage": "Personelin incelemesi için bildirilen içerik",
"discussions.actions.back.alt": "Listeye dön", "discussions.actions.back.alt": "Listeye dön",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Daha fazla yorum yükle", "discussions.comments.comment.loadMoreComments": "Daha fazla yorum yükle",
"discussions.comments.comment.loadMoreResponses": "Daha fazla yanıt yükle", "discussions.comments.comment.loadMoreResponses": "Daha fazla yanıt yükle",
"discussions.comments.comment.visibility": "Bu gönderi {group, select,\n null {Everyone}\n other {{group}}\n } tarafından görülebilir.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "{relativeTime} önce gönderildi", "discussions.comments.comment.commentTime": "{relativeTime} önce gönderildi",
"discussions.comments.comment.answer": "Cevap", "discussions.comments.comment.answer": "Cevap",
"discussions.comments.comment.answeredlabel": "Yanıtlandı olarak işaretleyen ", "discussions.comments.comment.answeredlabel": "Yanıtlandı olarak işaretleyen ",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Gönderiyi kapatan ", "discussions.post.closedBy": "Gönderiyi kapatan ",
"discussion.comment.time": "{time} önce", "discussion.comment.time": "{time} önce",
"discussion.thread.notFound": "Tartışma zinciri bulunamadı", "discussion.thread.notFound": "Tartışma zinciri bulunamadı",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "{sortBy} ölçütüne göre sıralandı",
"discussions.topics.sort.lastActivity": "Son etkinlik",
"discussions.topics.sort.commentCount": "En çok etkinlik",
"discussions.topics.sort.courseStructure": "Ders Yapısı",
"discussions.topics.unnamed.label": "İsimsiz kategori",
"discussions.subtopics.unnamed.label": "İsimsiz alt kategori",
"tour.action.advance": "Sonraki",
"tour.action.dismiss": "İptal",
"tour.action.end": "Tamam",
"tour.body.notRespondedFilter": "Artık yanıt vermeyen iletileri bulmak için tartışmaları filtreleyebilirsiniz.",
"tour.title.notRespondedFilter": "Yeni filtreleme seçeneği!",
"tour.body.responseSortTour": "Yanıtlar ve yorumlar artık önce en yeniye göre sıralanıyor. Lütfen sıralama düzenini değiştirmek için bu seçeneği kullanın",
"tour.title.responseSortTour": "Yanıtları Sırala!",
"learn.course.tabs.navigation.overflow.menu": "Daha Fazlası...",
"discussions.navigation.breadcrumbMenu.allTopics": "Konular",
"discussions.navigation.breadcrumbMenu.showAll": "Tümünü göster",
"discussions.navigation.navigationBar.allPosts": "Tüm iletiler",
"discussions.navigation.navigationBar.allTopics": "Konular",
"discussions.navigation.navigationBar.myPosts": "İletilerim",
"discussions.navigation.navigationBar.learners": "Öğrenciler",
"discussions.post.author.anonymous": "anonim",
"discussions.post.addResponse": "Yanıt ekle",
"discussions.post.lastResponse": "Son yanıt {time}",
"discussions.post.postedOn": "{author} {authorLabel} tarafından {time} önce gönderildi",
"discussions.post.contentReported": "Rapor edildi",
"discussions.post.following": "Takip ediliyor",
"discussions.post.follow": "Takip et",
"discussions.post.followed": "İzlendi",
"discussions.post.notFollowed": "İzlenmedi",
"discussions.post.answered": "Yanıtlandı",
"discussions.post.unFollow": "Takibi bırak",
"discussions.post.like": "Beğen",
"discussions.post.removeLike": "Beğenmeme",
"discussions.post.liked": "beğendi",
"discussions.post.likes": "beğeni",
"discussions.post.viewActivity": "Etkinliği görüntüle",
"discussions.post.activity": "Etkinlik",
"discussions.post.closed": "Yanıtlar ve yorumlar için gönderi kapatıldı",
"discussions.post.relatedTo": "Bunun ile ilgili",
"discussions.editor.delete.post.title": "Gönderiyi sil",
"discussions.editor.delete.post.description": "Bu gönderiyi kalıcı olarak silmek istediğinizden emin misiniz?",
"discussions.post.delete.confirmation.button.delete": "Sil",
"discussions.editor.report.post.title": "Uygunsuz içerik mi raporlayacaksınız?",
"discussions.editor.report.post.description": "Tartışma yöneticileri bu içeriği inceleyecek ve uygun işlemi yapacaktır.",
"discussions.post.closePostModal.title": "Gönderiyi kapat",
"discussions.post.closePostModal.text": "Bu gönderiyi kapatmak için bir neden girin. Bu sadece diğer moderatörlere gösterilecektir.",
"discussions.post.closePostModal.reasonCodeInput": "Gerekçe",
"discussions.post.closePostModal.cancel": "İptal",
"discussions.post.closePostModal.confirm": "Gönderiyi kapat",
"discussions.post.label.new": "{count} Yeni",
"discussions.post.editedBy": "Düzenleyen",
"discussions.post.editReason": "Gerekçe",
"discussions.post.postWithoutPreview": "Önizleme yok",
"discussions.post.follow.description": "bu iletiyi izliyorsunuz",
"discussions.post.unfollow.description": "bu iletiyi izlemiyorsunuz",
"discussions.app.title": "Forumlar", "discussions.app.title": "Forumlar",
"discussions.posts.actionBar.searchAllPosts": "Tüm gönderilerde ara", "discussions.posts.actionBar.searchAllPosts": "Tüm gönderilerde ara",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "\"{text}\" için {count} sonuç gösteriliyor", "discussions.actionBar.searchInfo": "\"{text}\" için {count} sonuç gösteriliyor",
"discussions.actionBar.searchRewriteInfo": "\"{searchString}\" için sonuç bulunamadı. \"{textSearchRewrite}\" için {count} sonuç gösteriliyor.", "discussions.actionBar.searchRewriteInfo": "\"{searchString}\" için sonuç bulunamadı. \"{textSearchRewrite}\" için {count} sonuç gösteriliyor.",
"discussions.actionBar.searchInfoSearching": "Aranıyor...", "discussions.actionBar.searchInfoSearching": "Aranıyor...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Son etkinlik", "discussions.posts.sort.lastActivity": "Son etkinlik",
"discussions.posts.sort.commentCount": "En çok etkinlik", "discussions.posts.sort.commentCount": "En çok etkinlik",
"discussions.posts.sort.voteCount": "En çok beğenilenler", "discussions.posts.sort.voteCount": "En çok beğenilenler",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonim",
"discussions.post.addResponse": "Yanıt ekle",
"discussions.post.lastResponse": "Son yanıt {time}",
"discussions.post.postedOn": "{author} {authorLabel} tarafından {time} önce gönderildi",
"discussions.post.contentReported": "Rapor edildi",
"discussions.post.following": "Takip ediliyor",
"discussions.post.follow": "Takip et",
"discussions.post.followed": "İzlendi",
"discussions.post.notFollowed": "İzlenmedi",
"discussions.post.answered": "Yanıtlandı",
"discussions.post.unFollow": "Takibi bırak",
"discussions.post.like": "Beğen",
"discussions.post.removeLike": "Beğenmeme",
"discussions.post.liked": "beğendi",
"discussions.post.likes": "beğeni",
"discussions.post.viewActivity": "Etkinliği görüntüle",
"discussions.post.activity": "Etkinlik",
"discussions.post.closed": "Yanıtlar ve yorumlar için gönderi kapatıldı",
"discussions.post.relatedTo": "Bunun ile ilgili",
"discussions.editor.delete.post.title": "Gönderiyi sil",
"discussions.editor.delete.post.description": "Bu gönderiyi kalıcı olarak silmek istediğinizden emin misiniz?",
"discussions.post.delete.confirmation.button.delete": "Sil",
"discussions.editor.report.post.title": "Uygunsuz içerik mi raporlayacaksınız?",
"discussions.editor.report.post.description": "Tartışma yöneticileri bu içeriği inceleyecek ve uygun işlemi yapacaktır.",
"discussions.post.closePostModal.title": "Gönderiyi kapat",
"discussions.post.closePostModal.text": "Bu gönderiyi kapatmak için bir neden girin. Bu sadece diğer moderatörlere gösterilecektir.",
"discussions.post.closePostModal.reasonCodeInput": "Gerekçe",
"discussions.post.closePostModal.cancel": "İptal",
"discussions.post.closePostModal.confirm": "Gönderiyi kapat",
"discussions.post.label.new": "{count} Yeni",
"discussions.post.editedBy": "Düzenleyen",
"discussions.post.editReason": "Gerekçe",
"discussions.post.postWithoutPreview": "Önizleme yok",
"discussions.post.follow.description": "bu iletiyi izliyorsunuz",
"discussions.post.unfollow.description": "bu iletiyi izlemiyorsunuz",
"discussions.topics.sort.message": "{sortBy} ölçütüne göre sıralandı",
"discussions.topics.sort.lastActivity": "Son etkinlik",
"discussions.topics.sort.commentCount": "En çok etkinlik",
"discussions.topics.sort.courseStructure": "Ders Yapısı",
"discussions.topics.unnamed.label": "İsimsiz kategori",
"discussions.subtopics.unnamed.label": "İsimsiz alt kategori",
"tour.action.advance": "Sonraki",
"tour.action.dismiss": "İptal",
"tour.action.end": "Tamam",
"tour.body.notRespondedFilter": "Artık yanıt vermeyen iletileri bulmak için tartışmaları filtreleyebilirsiniz.",
"tour.title.notRespondedFilter": "Yeni filtreleme seçeneği!",
"tour.body.responseSortTour": "Yanıtlar ve yorumlar artık önce en yeniye göre sıralanıyor. Lütfen sıralama düzenini değiştirmek için bu seçeneği kullanın",
"tour.title.responseSortTour": "Yanıtları Sırala!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Actions menu", "discussions.actions.button.alt": "Actions menu",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Add a response", "discussions.comments.comment.addResponse": "Add a response",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Load more comments", "discussions.comments.comment.loadMoreComments": "Load more comments",
"discussions.comments.comment.loadMoreResponses": "Load more responses", "discussions.comments.comment.loadMoreResponses": "Load more responses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Marked as answered by", "discussions.comments.comment.answeredlabel": "Marked as answered by",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post closed by", "discussions.post.closedBy": "Post closed by",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -1,31 +1,4 @@
{ {
"navigation.course.tabs.label": "Course Material",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.topics.backAlt": "Back to topics list",
"discussions.topics.discussions": "{count, plural,\n =0 {Discussion}\n one {# Discussion}\n other {# Discussions}\n }",
"discussions.topics.questions": "{count, plural,\n =0 {Question}\n one {# Question}\n other {# Questions}\n }",
"discussions.topics.reported": "{reported} reported",
"discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select,\n flagged {reported activity}\n activity {most activity}\n other {{sort}}\n }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.actions.button.alt": "Actions menu", "discussions.actions.button.alt": "Actions menu",
"discussions.actions.copylink": "Copy link", "discussions.actions.copylink": "Copy link",
"discussions.actions.edit": "Edit", "discussions.actions.edit": "Edit",
@@ -59,29 +32,46 @@
"discussions.authors.label.ta": "TA", "discussions.authors.label.ta": "TA",
"discussions.learner.loadMostPosts": "Load more posts", "discussions.learner.loadMostPosts": "Load more posts",
"discussions.post.anonymous.author": "anonymous", "discussions.post.anonymous.author": "anonymous",
"discussion.banner.welcomeMessage": "🎉 Welcome to the new and improved discussions experience!", "discussion.blackoutBanner.information": "Posting in discussions is disabled by the course team",
"discussion.banner.learnMore": "Learn more",
"discussion.banner.shareFeedback": "Share feedback",
"discussion.blackoutBanner.information": "Posting in discussions is temporarily disabled by the course team",
"discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions", "discussions.editor.image.warning.message": "Images having width or height greater than 999px will not be visible when the post, response or comment is viewed using in-line course discussions",
"discussions.editor.image.warning.title": "Warning!", "discussions.editor.image.warning.title": "Warning!",
"discussions.editor.image.warning.dismiss": "Ok", "discussions.editor.image.warning.dismiss": "Ok",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics", "navigation.course.tabs.label": "Course Material",
"discussions.navigation.breadcrumbMenu.showAll": "Show all", "discussions.topics.backAlt": "Back to topics list",
"discussions.navigation.navigationBar.allPosts": "All posts", "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }",
"discussions.navigation.navigationBar.allTopics": "Topics", "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }",
"discussions.navigation.navigationBar.myPosts": "My posts", "discussions.topics.reported": "{reported} reported",
"discussions.navigation.navigationBar.learners": "Learners", "discussions.topics.previouslyReported": "{previouslyReported} previously reported",
"discussions.topics.find.label": "Search topics",
"discussions.topics.unnamed.section.label": "Unnamed Section",
"discussions.topics.unnamed.subsection.label": "Unnamed Subsection",
"discussions.subtopics.unnamed.topic.label": "Unnamed Topic",
"discussions.topics.title": "No topic exists",
"discussions.topics.createTopic": "Please contact you admin to create a topic",
"discussions.topics.nothing": "Nothing here yet",
"discussions.topics.archived.label": "Archived",
"discussions.learner.reported": "{reported} reported",
"discussions.learner.previouslyReported": "{previouslyReported} previously reported",
"discussions.learner.lastLogin": "Last active {lastActiveTime}",
"discussions.learner.loadMostLearners": "Load more",
"discussions.learner.back": "Back",
"discussions.learner.activityForLearner": "Activity for {username}",
"discussions.learner.mostActivity": "Most activity",
"discussions.learner.reportedActivity": "Reported activity",
"discussions.learner.recentActivity": "Recent activity",
"discussions.learner.sortFilterStatus": "All learners sorted by {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }",
"discussion.learner.allActivity": "All activity",
"discussion.learner.posts": "Posts",
"discussions.comments.comment.addComment": "Add comment", "discussions.comments.comment.addComment": "Add comment",
"discussions.comments.comment.addResponse": "Add a response", "discussions.comments.comment.addResponse": "Add a response",
"discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review", "discussions.comments.comment.abuseFlaggedMessage": "Content reported for staff to review",
"discussions.actions.back.alt": "Back to list", "discussions.actions.back.alt": "Back to list",
"discussions.comments.comment.responseCount": "{num, plural,\n =0 {No responses}\n one {Showing # response}\n other {Showing # responses}\n }", "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }",
"discussions.comments.comment.endorsedResponseCount": "{num, plural,\n =0 {No endorsed responses}\n one {Showing # endorsed response}\n other {Showing # endorsed responses}\n }", "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }",
"discussions.comments.comment.loadMoreComments": "Load more comments", "discussions.comments.comment.loadMoreComments": "Load more comments",
"discussions.comments.comment.loadMoreResponses": "Load more responses", "discussions.comments.comment.loadMoreResponses": "Load more responses",
"discussions.comments.comment.visibility": "This post is visible to {group, select,\n null {Everyone}\n other {{group}}\n }.", "discussions.comments.comment.visibility": "This post is visible to {group, select, null {Everyone} other {{group}} }.",
"discussions.comments.comment.postedTime": "{postType, select,\n discussion {Discussion}\n question {Question}\n other {{postType}}\n } posted {relativeTime} by", "discussions.comments.comment.postedTime": "{postType, select, discussion {Discussion} question {Question} other {{postType}} } posted {relativeTime} by",
"discussions.comments.comment.commentTime": "Posted {relativeTime}", "discussions.comments.comment.commentTime": "Posted {relativeTime}",
"discussions.comments.comment.answer": "Answer", "discussions.comments.comment.answer": "Answer",
"discussions.comments.comment.answeredlabel": "Marked as answered by", "discussions.comments.comment.answeredlabel": "Marked as answered by",
@@ -109,10 +99,65 @@
"discussions.post.closedBy": "Post closed by", "discussions.post.closedBy": "Post closed by",
"discussion.comment.time": "{time} ago", "discussion.comment.time": "{time} ago",
"discussion.thread.notFound": "Thread not found", "discussion.thread.notFound": "Thread not found",
"discussions.comment.sortFilterStatus": "{sort, select,\n false {Oldest first}\n true {Newest first}\n other {{sort}}\n }", "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!",
"learn.course.tabs.navigation.overflow.menu": "More...",
"discussions.navigation.breadcrumbMenu.allTopics": "Topics",
"discussions.navigation.breadcrumbMenu.showAll": "Show all",
"discussions.navigation.navigationBar.allPosts": "All posts",
"discussions.navigation.navigationBar.allTopics": "Topics",
"discussions.navigation.navigationBar.myPosts": "My posts",
"discussions.navigation.navigationBar.learners": "Learners",
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.app.title": "Discussions", "discussions.app.title": "Discussions",
"discussions.posts.actionBar.searchAllPosts": "Search all posts", "discussions.posts.actionBar.searchAllPosts": "Search all posts",
"discussions.posts.actionBar.search": "{page, select,\n topics {Search topics}\n posts {Search all posts}\n learners {Search learners}\n myPosts {Search all posts}\n other {{page}}\n }", "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }",
"discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"", "discussions.actionBar.searchInfo": "Showing {count} results for \"{text}\"",
"discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".", "discussions.actionBar.searchRewriteInfo": "No results found for \"{searchString}\". Showing {count} results for \"{textSearchRewrite}\".",
"discussions.actionBar.searchInfoSearching": "Searching...", "discussions.actionBar.searchInfoSearching": "Searching...",
@@ -162,53 +207,5 @@
"discussions.posts.sort.lastActivity": "Recent activity", "discussions.posts.sort.lastActivity": "Recent activity",
"discussions.posts.sort.commentCount": "Most activity", "discussions.posts.sort.commentCount": "Most activity",
"discussions.posts.sort.voteCount": "Most likes", "discussions.posts.sort.voteCount": "Most likes",
"discussions.posts.sort-filter.sortFilterStatus": "{own, select,\n false {All}\n true {Own}\n other {{own}}\n } {status, select,\n statusAll {}\n statusUnread {unread}\n statusFollowing {followed}\n statusReported {reported}\n statusUnanswered {unanswered}\n statusUnresponded {unresponded}\n other {{status}}\n } {type, select,\n discussion {discussions}\n question {questions}\n all {posts}\n other {{type}}\n } {cohortType, select,\n all {}\n group {in {cohort}}\n other {{cohortType}}\n } sorted by {sort, select,\n lastActivityAt {recent activity}\n commentCount {most activity}\n voteCount {most likes}\n other {{sort}}\n }", "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {All} true {Own} other {{own}} } {status, select, statusAll {} statusUnread {unread} statusFollowing {followed} statusReported {reported} statusUnanswered {unanswered} statusUnresponded {unresponded} other {{status}} } {type, select, discussion {discussions} question {questions} all {posts} other {{type}} } {cohortType, select, all {} group {in {cohort}} other {{cohortType}} } sorted by {sort, select, lastActivityAt {recent activity} commentCount {most activity} voteCount {most likes} other {{sort}} }"
"discussions.post.author.anonymous": "anonymous",
"discussions.post.addResponse": "Add response",
"discussions.post.lastResponse": "Last response {time}",
"discussions.post.postedOn": "Posted {time} by {author} {authorLabel}",
"discussions.post.contentReported": "Reported",
"discussions.post.following": "Following",
"discussions.post.follow": "Follow",
"discussions.post.followed": "Followed",
"discussions.post.notFollowed": "Not Followed",
"discussions.post.answered": "Answered",
"discussions.post.unFollow": "Unfollow",
"discussions.post.like": "Like",
"discussions.post.removeLike": "Unlike",
"discussions.post.liked": "liked",
"discussions.post.likes": "likes",
"discussions.post.viewActivity": "View activity",
"discussions.post.activity": "Activity",
"discussions.post.closed": "Post closed for responses and comments",
"discussions.post.relatedTo": "Related to",
"discussions.editor.delete.post.title": "Delete post",
"discussions.editor.delete.post.description": "Are you sure you want to permanently delete this post?",
"discussions.post.delete.confirmation.button.delete": "Delete",
"discussions.editor.report.post.title": "Report inappropriate content?",
"discussions.editor.report.post.description": "The discussion moderation team will review this content and take appropriate action.",
"discussions.post.closePostModal.title": "Close post",
"discussions.post.closePostModal.text": "Enter a reason for closing this post. This will only be displayed to other moderators.",
"discussions.post.closePostModal.reasonCodeInput": "Reason",
"discussions.post.closePostModal.cancel": "Cancel",
"discussions.post.closePostModal.confirm": "Close post",
"discussions.post.label.new": "{count} New",
"discussions.post.editedBy": "Edited by",
"discussions.post.editReason": "Reason",
"discussions.post.postWithoutPreview": "No preview available",
"discussions.post.follow.description": "you are following this post",
"discussions.post.unfollow.description": "you are not following this post",
"discussions.topics.sort.message": "Sorted by {sortBy}",
"discussions.topics.sort.lastActivity": "Recent activity",
"discussions.topics.sort.commentCount": "Most activity",
"discussions.topics.sort.courseStructure": "Course Structure",
"discussions.topics.unnamed.label": "Unnamed category",
"discussions.subtopics.unnamed.label": "Unnamed subcategory",
"tour.action.advance": "Next",
"tour.action.dismiss": "Dismiss",
"tour.action.end": "Okay",
"tour.body.notRespondedFilter": "Now you can filter discussions to find posts with no response.",
"tour.title.notRespondedFilter": "New filtering option!",
"tour.body.responseSortTour": "Responses and comments are now sorted by newest first. Please use this option to change the sort order",
"tour.title.responseSortTour": "Sort Responses!"
} }

View File

@@ -37,7 +37,8 @@ initialize({
config: () => { config: () => {
mergeConfig({ mergeConfig({
LEARNING_BASE_URL: process.env.LEARNING_BASE_URL, LEARNING_BASE_URL: process.env.LEARNING_BASE_URL,
DISPLAY_FEEDBACK_BANNER: process.env.DISPLAY_FEEDBACK_BANNER || 'false', LEARNER_FEEDBACK_URL: process.env.LEARNER_FEEDBACK_URL,
STAFF_FEEDBACK_URL: process.env.STAFF_FEEDBACK_URL,
}, 'DiscussionsConfig'); }, 'DiscussionsConfig');
}, },
}, },

View File

@@ -1,7 +1,7 @@
@import "@edx/brand/paragon/fonts.scss"; @import "~@edx/brand/paragon/fonts.scss";
@import "@edx/brand/paragon/variables.scss"; @import "~@edx/brand/paragon/variables.scss";
@import "@edx/paragon/scss/core/core.scss"; @import "~@edx/paragon/scss/core/core.scss";
@import "@edx/brand/paragon/overrides.scss"; @import "~@edx/brand/paragon/overrides.scss";
@import "~@edx/frontend-component-footer/dist/footer"; @import "~@edx/frontend-component-footer/dist/footer";
@import "~@edx/frontend-component-header/dist/index"; @import "~@edx/frontend-component-header/dist/index";
@@ -65,26 +65,22 @@ $fa-font-path: "~font-awesome/fonts";
font-style: normal !important; font-style: normal !important;
} }
.font-family-inter { .post-footer-icon-dimensions {
font-family: "Inter";
}
.post-footer-icon-dimentions {
width: 32px !important; width: 32px !important;
height: 32px !important; height: 32px !important;
} }
.like-icon-dimentions { .like-icon-dimensions {
width: 21px !important; width: 21px !important;
height: 23px !important; height: 23px !important;
} }
.follow-icon-dimentions { .follow-icon-dimensions {
width: 21px !important; width: 21px !important;
height: 24px !important; height: 24px !important;
} }
.dropdown-icon-dimentions { .dropdown-icon-dimensions {
width: 20px !important; width: 20px !important;
height: 21px !important; height: 21px !important;
} }
@@ -278,9 +274,7 @@ header {
header { header {
line-height: 28px; line-height: 28px;
font-family: Inter, Helvetica Neue, Arial, sans-serif;
font-size: 18px !important; font-size: 18px !important;
height: 60px !important;
.user-dropdown { .user-dropdown {
button { button {
@@ -315,12 +309,10 @@ header {
#courseTabsNavigation { #courseTabsNavigation {
font-size: 18px !important; font-size: 18px !important;
font-family: Inter, Helvetica Neue, Arial, sans-serif;
z-index: 3; z-index: 3;
background-color: #fff; background-color: #fff;
.container-xl { .container-xl {
padding-left: 31px;
font-size: 1.125rem; font-size: 1.125rem;
.nav { .nav {
@@ -470,7 +462,7 @@ header {
} }
} }
.spinner-dimentions { .spinner-dimensions {
height: 24px !important; height: 24px !important;
width: 24px !important; width: 24px !important;
} }
@@ -480,7 +472,6 @@ header {
} }
.font-style { .font-style {
font-family: "Inter";
font-style: normal; font-style: normal;
} }