diff --git a/CHANGELOG.md b/CHANGELOG.md index bf950c86b1..4cc86b06c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## [9.14.1](https://github.com/dhis2/ui/compare/v9.14.0...v9.14.1) (2024-11-17) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([d89ce94](https://github.com/dhis2/ui/commit/d89ce946b7145851a5c39ede8a4cbbaaa60411ca)) + +# [9.14.0](https://github.com/dhis2/ui/compare/v9.13.0...v9.14.0) (2024-11-13) + + +### Features + +* add data sharing to sharing dialog [LIBS-677] ([#1629](https://github.com/dhis2/ui/issues/1629)) ([7e15c7f](https://github.com/dhis2/ui/commit/7e15c7f19becf6fc6657270a3f1ef94d8a48f048)) + +# [9.13.0](https://github.com/dhis2/ui/compare/v9.12.0...v9.13.0) (2024-11-05) + + +### Bug Fixes + +* peer dependency issue with npm publish ([#1628](https://github.com/dhis2/ui/issues/1628)) ([1319654](https://github.com/dhis2/ui/commit/13196549eb2450d33d3debcbfa68d0321f8c6358)) +* **translations:** sync translations from transifex (master) ([7f22330](https://github.com/dhis2/ui/commit/7f22330ddfd1af2ac6e0199f4df78abf695200a2)) + + +### Features + +* update react peer dependency to react@18 ([#1624](https://github.com/dhis2/ui/issues/1624)) ([5d3c2a4](https://github.com/dhis2/ui/commit/5d3c2a4f6fc4683354a5af3d8ec2f8bfd88169f5)) + # [9.12.0](https://github.com/dhis2/ui/compare/v9.11.8...v9.12.0) (2024-10-29) diff --git a/collections/forms/package.json b/collections/forms/package.json index d632d2807b..b20dd19d3e 100644 --- a/collections/forms/package.json +++ b/collections/forms/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/ui-forms", - "version": "9.12.0", + "version": "9.14.1", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "sideEffects": [ @@ -30,20 +30,20 @@ "build": "d2-app-scripts build" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13" + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/checkbox": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/file-input": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/radio": "9.12.0", - "@dhis2-ui/select": "9.12.0", - "@dhis2-ui/switch": "9.12.0", - "@dhis2-ui/text-area": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/checkbox": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/file-input": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/radio": "9.14.1", + "@dhis2-ui/select": "9.14.1", + "@dhis2-ui/switch": "9.14.1", + "@dhis2-ui/text-area": "9.14.1", "classnames": "^2.3.1", "final-form": "^4.20.2", "prop-types": "^15.7.2", @@ -54,8 +54,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "types": "types" } diff --git a/collections/ui/API.md b/collections/ui/API.md index 2ce54e17a8..8859b2850f 100644 --- a/collections/ui/API.md +++ b/collections/ui/API.md @@ -1982,13 +1982,14 @@ import { SharingDialog } from '@dhis2/ui' |---|---|---|---|---| |id|string||*|The id of the object to share| |type|DIALOG_TYPES_LIST||*|The type of object to share| +|dataSharing|boolean|`false`||Whether to expose the ability to set data sharing (in addition to metadata sharing)| |dataTest|string|`'dhis2-uicore-sharingdialog'`||| -|initialSharingSettings|{
"allowPublic": "boolean",
"groups": "objectOf",
"name": "string",
"public": "import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js'",
"users": "objectOf"
}|`{ +|initialSharingSettings|{
"allowPublic": "boolean",
"groups": "objectOf",
"name": "string",
"public": "{
\"data\": \"import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js'\",
\"metadata\": \"import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js'\"
} │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js'",
"users": "objectOf"
}|`{ name: '', allowPublic: true, - public: ACCESS_NONE, - groups: {}, - users: {}, + public: { data: ACCESS_NONE, metadata: ACCESS_NONE }, + groups: [], + users: [], }`||Used to seed the component with data to show whilst loading| |onClose|function|`() => {}`||| |onError|function|`() => {}`||| diff --git a/collections/ui/package.json b/collections/ui/package.json index 3a6e5edd0a..e27ece26e1 100644 --- a/collections/ui/package.json +++ b/collections/ui/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/ui", - "version": "9.12.0", + "version": "9.14.1", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { @@ -21,68 +21,68 @@ "build": "d2-app-scripts build" }, "dependencies": { - "@dhis2-ui/alert": "9.12.0", - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/calendar": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/center": "9.12.0", - "@dhis2-ui/checkbox": "9.12.0", - "@dhis2-ui/chip": "9.12.0", - "@dhis2-ui/cover": "9.12.0", - "@dhis2-ui/css": "9.12.0", - "@dhis2-ui/divider": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/file-input": "9.12.0", - "@dhis2-ui/header-bar": "9.12.0", - "@dhis2-ui/help": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/intersection-detector": "9.12.0", - "@dhis2-ui/label": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/legend": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/logo": "9.12.0", - "@dhis2-ui/menu": "9.12.0", - "@dhis2-ui/modal": "9.12.0", - "@dhis2-ui/node": "9.12.0", - "@dhis2-ui/notice-box": "9.12.0", - "@dhis2-ui/organisation-unit-tree": "9.12.0", - "@dhis2-ui/pagination": "9.12.0", - "@dhis2-ui/popover": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/portal": "9.12.0", - "@dhis2-ui/radio": "9.12.0", - "@dhis2-ui/required": "9.12.0", - "@dhis2-ui/segmented-control": "9.12.0", - "@dhis2-ui/select": "9.12.0", - "@dhis2-ui/selector-bar": "9.12.0", - "@dhis2-ui/sharing-dialog": "9.12.0", - "@dhis2-ui/switch": "9.12.0", - "@dhis2-ui/tab": "9.12.0", - "@dhis2-ui/table": "9.12.0", - "@dhis2-ui/tag": "9.12.0", - "@dhis2-ui/text-area": "9.12.0", - "@dhis2-ui/tooltip": "9.12.0", - "@dhis2-ui/transfer": "9.12.0", - "@dhis2-ui/user-avatar": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-forms": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/alert": "9.14.1", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/calendar": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/center": "9.14.1", + "@dhis2-ui/checkbox": "9.14.1", + "@dhis2-ui/chip": "9.14.1", + "@dhis2-ui/cover": "9.14.1", + "@dhis2-ui/css": "9.14.1", + "@dhis2-ui/divider": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/file-input": "9.14.1", + "@dhis2-ui/header-bar": "9.14.1", + "@dhis2-ui/help": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/intersection-detector": "9.14.1", + "@dhis2-ui/label": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/legend": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/logo": "9.14.1", + "@dhis2-ui/menu": "9.14.1", + "@dhis2-ui/modal": "9.14.1", + "@dhis2-ui/node": "9.14.1", + "@dhis2-ui/notice-box": "9.14.1", + "@dhis2-ui/organisation-unit-tree": "9.14.1", + "@dhis2-ui/pagination": "9.14.1", + "@dhis2-ui/popover": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/portal": "9.14.1", + "@dhis2-ui/radio": "9.14.1", + "@dhis2-ui/required": "9.14.1", + "@dhis2-ui/segmented-control": "9.14.1", + "@dhis2-ui/select": "9.14.1", + "@dhis2-ui/selector-bar": "9.14.1", + "@dhis2-ui/sharing-dialog": "9.14.1", + "@dhis2-ui/switch": "9.14.1", + "@dhis2-ui/tab": "9.14.1", + "@dhis2-ui/table": "9.14.1", + "@dhis2-ui/tag": "9.14.1", + "@dhis2-ui/text-area": "9.14.1", + "@dhis2-ui/tooltip": "9.14.1", + "@dhis2-ui/transfer": "9.14.1", + "@dhis2-ui/user-avatar": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-forms": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "prop-types": "^15.7.2" }, "peerDependencies": { "@dhis2/app-runtime": "^3", "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "devDependencies": { "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "files": [ diff --git a/components/alert/package.json b/components/alert/package.json index 251a117de8..c8440b43af 100644 --- a/components/alert/package.json +++ b/components/alert/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/alert", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Alert", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/portal": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/portal": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/box/package.json b/components/box/package.json index 7bb8f8b778..48985d2bb1 100644 --- a/components/box/package.json +++ b/components/box/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/box", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Box", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/button/package.json b/components/button/package.json index 3ae94c1f85..fd60457f54 100644 --- a/components/button/package.json +++ b/components/button/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/button", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Button", "repository": { "type": "git", @@ -27,17 +27,17 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -46,8 +46,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/button/src/split-button/split-button.test.js b/components/button/src/split-button/split-button.test.js index d7c8ef2027..e7a7425ca6 100644 --- a/components/button/src/split-button/split-button.test.js +++ b/components/button/src/split-button/split-button.test.js @@ -1,6 +1,5 @@ import { render, fireEvent, cleanup, waitFor } from '@testing-library/react' import React from 'react' -import '@testing-library/jest-dom/extend-expect' import { SplitButton } from './split-button.js' describe('SplitButton', () => { diff --git a/components/calendar/package.json b/components/calendar/package.json index 0a356baedb..706c1f161b 100644 --- a/components/calendar/package.json +++ b/components/calendar/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/calendar", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Calendar", "repository": { "type": "git", @@ -28,20 +28,20 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/popper": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/popper": "9.14.1", "@dhis2/multi-calendar-dates": "^1.2.3", "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -51,8 +51,8 @@ ], "devDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/card/package.json b/components/card/package.json index 3520e54579..e2ccd5bd9e 100644 --- a/components/card/package.json +++ b/components/card/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/card", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Card", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/center/package.json b/components/center/package.json index 67c3c181e1..5cbbc851bd 100644 --- a/components/center/package.json +++ b/components/center/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/center", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Center", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/checkbox/package.json b/components/checkbox/package.json index 2b7b7970f3..28a32052dc 100644 --- a/components/checkbox/package.json +++ b/components/checkbox/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/checkbox", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Checkbox", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/required": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/required": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/chip/package.json b/components/chip/package.json index c443055ac4..ff4daed549 100644 --- a/components/chip/package.json +++ b/components/chip/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/chip", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Chip", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/cover/package.json b/components/cover/package.json index cbd984a3d8..33e81d351b 100644 --- a/components/cover/package.json +++ b/components/cover/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/cover", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Cover", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/css/package.json b/components/css/package.json index 1c33f4ea1f..a9e39c0cac 100644 --- a/components/css/package.json +++ b/components/css/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/css", - "version": "9.12.0", + "version": "9.14.1", "description": "UI CSS", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/divider/package.json b/components/divider/package.json index 13fdb6a0a5..f063584686 100644 --- a/components/divider/package.json +++ b/components/divider/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/divider", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Divider", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/field/package.json b/components/field/package.json index a68db42e60..9f48c7ec3b 100644 --- a/components/field/package.json +++ b/components/field/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/field", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Field", "repository": { "type": "git", @@ -27,16 +27,16 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/help": "9.12.0", - "@dhis2-ui/label": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/help": "9.14.1", + "@dhis2-ui/label": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -45,8 +45,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/file-input/package.json b/components/file-input/package.json index 57bffd7c75..92ecc504c2 100644 --- a/components/file-input/package.json +++ b/components/file-input/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/file-input", - "version": "9.12.0", + "version": "9.14.1", "description": "UI FileInput", "repository": { "type": "git", @@ -28,19 +28,19 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/label": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/status-icon": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/label": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/status-icon": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -50,8 +50,8 @@ ], "devDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/header-bar/i18n/pt.po b/components/header-bar/i18n/pt.po index 2f597627ff..9bf8b6eb9b 100644 --- a/components/header-bar/i18n/pt.po +++ b/components/header-bar/i18n/pt.po @@ -3,13 +3,14 @@ # Viktor Varland , 2021 # Ge Joao , 2021 # Philip Larsen Donnelly, 2024 +# Helton Dias, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-29T07:26:07.540Z\n" +"POT-Creation-Date: 2024-06-12T03:40:49.012Z\n" "PO-Revision-Date: 2021-06-24 12:50+0000\n" -"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Last-Translator: Helton Dias, 2024\n" "Language-Team: Portuguese (https://app.transifex.com/hisp-uio/teams/100509/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -72,7 +73,7 @@ msgid "About DHIS2" msgstr "Sobre DHIS2" msgid "Logout" -msgstr "" +msgstr " Terminar sessão" msgid "New {{appName}} version available" msgstr "" @@ -82,3 +83,6 @@ msgstr "" msgid "Click to reload" msgstr "" + +msgid "header bar profile" +msgstr "" diff --git a/components/header-bar/package.json b/components/header-bar/package.json index 47d7031a89..94b1de36a8 100644 --- a/components/header-bar/package.json +++ b/components/header-bar/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/header-bar", - "version": "9.12.0", + "version": "9.14.1", "description": "UI HeaderBar", "repository": { "type": "git", @@ -29,26 +29,26 @@ "peerDependencies": { "@dhis2/app-runtime": "^3", "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/center": "9.12.0", - "@dhis2-ui/divider": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/logo": "9.12.0", - "@dhis2-ui/menu": "9.12.0", - "@dhis2-ui/modal": "9.12.0", - "@dhis2-ui/user-avatar": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/center": "9.14.1", + "@dhis2-ui/divider": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/logo": "9.14.1", + "@dhis2-ui/menu": "9.14.1", + "@dhis2-ui/modal": "9.14.1", + "@dhis2-ui/user-avatar": "9.14.1", "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "moment": "^2.29.1", "prop-types": "^15.7.2" @@ -60,8 +60,8 @@ "devDependencies": { "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/header-bar/src/profile/use-on-doc-click.test.js b/components/header-bar/src/profile/use-on-doc-click.test.js index b147c0862a..fb5c55172d 100644 --- a/components/header-bar/src/profile/use-on-doc-click.test.js +++ b/components/header-bar/src/profile/use-on-doc-click.test.js @@ -1,4 +1,4 @@ -import { renderHook } from '@testing-library/react-hooks' +import { renderHook } from '@testing-library/react' import { useOnDocClick } from './use-on-doc-click.js' describe('useOnDocClick', () => { diff --git a/components/help/package.json b/components/help/package.json index 56e0baeab7..f11b15d0c6 100644 --- a/components/help/package.json +++ b/components/help/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/help", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Help", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/input/package.json b/components/input/package.json index 94985d263d..5135278a77 100644 --- a/components/input/package.json +++ b/components/input/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/input", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Input", "repository": { "type": "git", @@ -27,19 +27,19 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/status-icon": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/status-icon": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -48,8 +48,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/intersection-detector/package.json b/components/intersection-detector/package.json index 83aad9907e..39bc04d4b2 100644 --- a/components/intersection-detector/package.json +++ b/components/intersection-detector/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/intersection-detector", - "version": "9.12.0", + "version": "9.14.1", "description": "UI IntersectionDetector", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/label/package.json b/components/label/package.json index 396df1139e..80d0cc7382 100644 --- a/components/label/package.json +++ b/components/label/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/label", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Label", "repository": { "type": "git", @@ -27,14 +27,14 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/required": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/required": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -43,8 +43,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/layer/package.json b/components/layer/package.json index d1cece2f63..7dbc3c1a88 100644 --- a/components/layer/package.json +++ b/components/layer/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/layer", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Layer", "repository": { "type": "git", @@ -27,14 +27,14 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/portal": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/portal": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -43,8 +43,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/legend/package.json b/components/legend/package.json index 662c88daa1..fb3215dbeb 100644 --- a/components/legend/package.json +++ b/components/legend/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/legend", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Legend", "repository": { "type": "git", @@ -27,14 +27,14 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/required": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/required": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -43,8 +43,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/loader/package.json b/components/loader/package.json index bee490c5f3..5ffc874701 100644 --- a/components/loader/package.json +++ b/components/loader/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/loader", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Loaders", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/logo/package.json b/components/logo/package.json index 869c7e92a6..520f1f499d 100644 --- a/components/logo/package.json +++ b/components/logo/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/logo", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Logo", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/menu/package.json b/components/menu/package.json index a780233a0f..5fbb786cd6 100644 --- a/components/menu/package.json +++ b/components/menu/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/menu", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Menu", "repository": { "type": "git", @@ -27,19 +27,19 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/divider": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/portal": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/divider": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/portal": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -48,8 +48,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/menu/src/flyout-menu/__tests__/flyout-menu.test.js b/components/menu/src/flyout-menu/__tests__/flyout-menu.test.js index 9ec5324015..8322be0a32 100644 --- a/components/menu/src/flyout-menu/__tests__/flyout-menu.test.js +++ b/components/menu/src/flyout-menu/__tests__/flyout-menu.test.js @@ -1,11 +1,11 @@ import { render } from '@testing-library/react' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import React from 'react' import { MenuItem } from '../../menu-item/menu-item.js' import { FlyoutMenu } from '../flyout-menu.js' describe('Flyout Menu Component', () => { - it('can handle navigation of submenus', () => { + it('can handle navigation of submenus', async () => { const { getByText, queryByText, getAllByRole } = render( @@ -27,21 +27,21 @@ describe('Flyout Menu Component', () => { expect(submenuChild).not.toBeInTheDocument() - userEvent.tab() + await userEvent.tab() expect(menuItems[0].parentNode).toHaveFocus() expect(menuItems[1].parentNode).not.toHaveFocus() - userEvent.keyboard('{ArrowDown}') + await userEvent.keyboard('{ArrowDown}') expect(menuItems[0].parentNode).not.toHaveFocus() expect(menuItems[1].parentNode).toHaveFocus() - userEvent.keyboard('{ArrowRight}') + await userEvent.keyboard('{ArrowRight}') submenuChild = getByText(/Item 2 a/i) expect(submenuChild).toBeInTheDocument() expect(submenuChild.parentElement.parentElement).toHaveFocus() - userEvent.keyboard('{ArrowLeft}') + await userEvent.keyboard('{ArrowLeft}') expect(queryByText(/Item 2 a/i)).not.toBeInTheDocument() expect(menuItems[1].parentNode).toHaveFocus() }) diff --git a/components/menu/src/menu/__tests__/menu.test.js b/components/menu/src/menu/__tests__/menu.test.js index 835733541d..438e4bc371 100644 --- a/components/menu/src/menu/__tests__/menu.test.js +++ b/components/menu/src/menu/__tests__/menu.test.js @@ -1,6 +1,6 @@ import { Input } from '@dhis2-ui/input' import { render } from '@testing-library/react' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import { mount } from 'enzyme' import React from 'react' import { MenuDivider } from '../../menu-divider/menu-divider.js' @@ -39,7 +39,7 @@ describe('Menu Component', () => { expect(menuElement.prop('role')).toBe('menu') }) - it('can handle focus of first focusable element when tabbed to', () => { + it('can handle focus of first focusable element when tabbed to', async () => { const { getByRole, getByText } = render( @@ -55,8 +55,9 @@ describe('Menu Component', () => { const menuItem1 = getByText(/Menu item 1/i) const menuItem2 = getByText(/Menu item 2/i) + const user = userEvent.setup() expect(menu).not.toHaveFocus() - userEvent.tab() + await user.keyboard('{Tab}') // check if LI parent node has focus or not // headers and dividers do not receive focus expect(header.parentNode.parentNode).not.toHaveFocus() @@ -78,14 +79,18 @@ describe('Menu Component', () => { const menuItem1 = getByText(/Menu item 1/i) const menuItem2 = getByText(/Menu item 2/i) - userEvent.tab() + const user = userEvent.setup() + expect(document.body).toHaveFocus() + + // await fireEvent.focus(getByRole('menu')) + await user.keyboard('{Tab}') expect(menuItem1.parentNode.parentNode).toHaveFocus() // simulate arrowDown press - userEvent.keyboard('{ArrowDown}') + await user.keyboard('{ArrowDown}') expect(menuItem1.parentNode.parentNode).not.toHaveFocus() expect(menuItem2.parentNode.parentNode).toHaveFocus() - userEvent.keyboard('{ArrowDown}') + await user.keyboard('{ArrowDown}') expect(menuItem1.parentNode.parentNode).toHaveFocus() expect(menuItem2.parentNode.parentNode).not.toHaveFocus() }) @@ -103,15 +108,16 @@ describe('Menu Component', () => { const menuItem1 = getByText(/Menu item 1/i) const menuItem2 = getByText(/Menu item 2/i) - userEvent.tab() + const user = userEvent.setup() + await user.tab() expect(menuItem1.parentNode.parentNode).toHaveFocus() // simulate arrowUp press - userEvent.keyboard('{ArrowUp}') + await user.keyboard('{ArrowUp}') expect(menuItem1.parentNode.parentNode).not.toHaveFocus() expect(menuItem2.parentNode.parentNode).toHaveFocus() - userEvent.keyboard('{ArrowUp}') + await user.keyboard('{ArrowUp}') expect(menuItem1.parentNode.parentNode).toHaveFocus() expect(menuItem2.parentNode.parentNode).not.toHaveFocus() }) @@ -130,17 +136,18 @@ describe('Menu Component', () => { const clickableItem = getByText(/Click menu item/i) - userEvent.tab() + const user = userEvent.setup() + await user.tab() expect(clickableItem.parentNode.parentNode).toHaveFocus() - userEvent.keyboard('[Space]') + await user.keyboard('[Space]') expect(onClick).toHaveBeenCalledTimes(1) - userEvent.keyboard('{Enter}') + await user.keyboard('{Enter}') expect(onClick).toHaveBeenCalledTimes(2) }) - it('can handle non MenuItem components', () => { + it('can handle non MenuItem components', async () => { const onClick = jest.fn() const { getByText } = render( @@ -165,24 +172,25 @@ describe('Menu Component', () => { // all children must be list items expect(nonListMenuItem.parentElement.nodeName).toBe('LI') - userEvent.tab() + const user = userEvent.setup() + await user.tab() expect(nonListMenuItem.parentElement).toHaveFocus() expect(nonListMenuItem.parentElement.tabIndex).toBe(0) expect(onClick).toHaveBeenCalledTimes(0) - userEvent.keyboard('[Space]') + await user.keyboard(' ') expect(onClick).toHaveBeenCalledTimes(1) - userEvent.keyboard('{ArrowDown}') + await user.keyboard('{ArrowDown}') expect(listMenuItem.parentElement).toHaveFocus() - userEvent.keyboard('{ArrowDown}') + await user.keyboard('{ArrowDown}') expect(nonListMenuItem.parentElement).toHaveFocus() // non menu items do not receive focus expect(plainListItem.parentElement).not.toHaveFocus() }) - it('does not hijack input change value if space entered [bug]', () => { + it('does not hijack input change value if space entered [bug]', async () => { const onChange = jest.fn() const { getByPlaceholderText } = render( @@ -192,11 +200,12 @@ describe('Menu Component', () => { ) const inputField = getByPlaceholderText('test') - inputField.focus() - userEvent.keyboard('t') - userEvent.keyboard('e') - userEvent.keyboard(' ') - userEvent.keyboard('st') + const user = userEvent.setup() + await inputField.focus() + await user.type(inputField, 't') + await user.type(inputField, 'e') + await user.type(inputField, ' ') + await user.type(inputField, 'st') expect(inputField.value).toBe('te st') expect(onChange).toHaveBeenCalled() diff --git a/components/modal/package.json b/components/modal/package.json index b2bb9c1fcc..60e95a4cb3 100644 --- a/components/modal/package.json +++ b/components/modal/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/modal", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Modal", "repository": { "type": "git", @@ -27,18 +27,18 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/center": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/portal": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/center": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/portal": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -47,8 +47,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/node/package.json b/components/node/package.json index f935c66d52..a4ccb77095 100644 --- a/components/node/package.json +++ b/components/node/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/node", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Node", "repository": { "type": "git", @@ -27,14 +27,14 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/loader": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/loader": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -43,8 +43,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/notice-box/package.json b/components/notice-box/package.json index 6f81bc81a9..869a2bb7f1 100644 --- a/components/notice-box/package.json +++ b/components/notice-box/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/notice-box", - "version": "9.12.0", + "version": "9.14.1", "description": "UI NoticeBox", "repository": { "type": "git", @@ -27,14 +27,14 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -43,8 +43,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/notice-box/src/__tests__/__snapshots__/notice-box-icon.test.js.snap b/components/notice-box/src/__tests__/__snapshots__/notice-box-icon.test.js.snap deleted file mode 100644 index 1a62b61d3f..0000000000 --- a/components/notice-box/src/__tests__/__snapshots__/notice-box-icon.test.js.snap +++ /dev/null @@ -1,11 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`NoticeBoxIcon should log errors when both warning and error flag are set 1`] = ` -"Warning: Failed prop type: Invalid prop \`error\` supplied to \`NoticeBoxIcon\`, Property 'error' is mutually exclusive with 'warning', but both have a thruthy value. - in NoticeBoxIcon" -`; - -exports[`NoticeBoxIcon should log errors when both warning and error flag are set 2`] = ` -"Warning: Failed prop type: Invalid prop \`warning\` supplied to \`NoticeBoxIcon\`, Property 'warning' is mutually exclusive with 'error', but both have a thruthy value. - in NoticeBoxIcon" -`; diff --git a/components/notice-box/src/__tests__/notice-box-icon.test.js b/components/notice-box/src/__tests__/notice-box-icon.test.js index f155f81708..9eebf8f0b6 100644 --- a/components/notice-box/src/__tests__/notice-box-icon.test.js +++ b/components/notice-box/src/__tests__/notice-box-icon.test.js @@ -17,8 +17,19 @@ describe('NoticeBoxIcon', () => { .mockImplementation(() => {}) shallow() - expect(spy.mock.calls[0][0]).toMatchSnapshot() - expect(spy.mock.calls[1][0]).toMatchSnapshot() + expect(spy.mock.calls[0]).toEqual([ + 'Warning: Failed %s type: %s%s', + 'prop', + "Invalid prop `error` supplied to `NoticeBoxIcon`, Property 'error' is mutually exclusive with 'warning', but both have a thruthy value.", + expect.any(String), + ]) + + expect(spy.mock.calls[1]).toEqual([ + 'Warning: Failed %s type: %s%s', + 'prop', + "Invalid prop `warning` supplied to `NoticeBoxIcon`, Property 'warning' is mutually exclusive with 'error', but both have a thruthy value.", + expect.any(String), + ]) spy.mockRestore() }) diff --git a/components/organisation-unit-tree/package.json b/components/organisation-unit-tree/package.json index 8d7c91428b..fda284471e 100644 --- a/components/organisation-unit-tree/package.json +++ b/components/organisation-unit-tree/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/organisation-unit-tree", - "version": "9.12.0", + "version": "9.14.1", "description": "UI OrganisationUnitTree", "repository": { "type": "git", @@ -29,17 +29,17 @@ "peerDependencies": { "@dhis2/app-runtime": "^3", "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/checkbox": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/node": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/checkbox": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/node": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -50,8 +50,8 @@ "devDependencies": { "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/organisation-unit-tree/src/organisation-unit-node/use-open-state.test.js b/components/organisation-unit-tree/src/organisation-unit-node/use-open-state.test.js index ab47d431b9..a69deed794 100644 --- a/components/organisation-unit-tree/src/organisation-unit-node/use-open-state.test.js +++ b/components/organisation-unit-tree/src/organisation-unit-node/use-open-state.test.js @@ -1,4 +1,4 @@ -import { renderHook } from '@testing-library/react-hooks' +import { renderHook } from '@testing-library/react' import { useOpenState } from './use-open-state.js' describe('OrganisationUnitTree - useOpenState', () => { diff --git a/components/organisation-unit-tree/src/organisation-unit-node/use-org-children.test.js b/components/organisation-unit-tree/src/organisation-unit-node/use-org-children.test.js index 079e063cd7..3424ed2fa3 100644 --- a/components/organisation-unit-tree/src/organisation-unit-node/use-org-children.test.js +++ b/components/organisation-unit-tree/src/organisation-unit-node/use-org-children.test.js @@ -1,5 +1,5 @@ import { CustomDataProvider } from '@dhis2/app-runtime' -import { renderHook } from '@testing-library/react-hooks' +import { renderHook, waitFor } from '@testing-library/react' import React from 'react' import { useOrgChildren } from './use-org-children.js' @@ -37,12 +37,9 @@ describe('OrganisationUnitTree - useOrgChildren', () => { } it('should respond with `loading: true`, `error: null` and `data: null` initially', async () => { - const { result, waitForNextUpdate } = renderHook( - () => useOrgChildren({ node }), - { - wrapper, - } - ) + const { result } = renderHook(() => useOrgChildren({ node }), { + wrapper, + }) expect(result.current).toEqual({ called: true, @@ -54,29 +51,28 @@ describe('OrganisationUnitTree - useOrgChildren', () => { // Prevent the following error log with // "Warning: An update to TestComponent inside a test was not wrapped // in act(...)." - await waitForNextUpdate() + await waitFor(() => {}) }) it('should provide the org unit data', async () => { - const { result, waitForNextUpdate } = renderHook( - () => useOrgChildren({ node }), - { wrapper } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useOrgChildren({ node }), { + wrapper, + }) - expect(result.current).toEqual({ - called: true, - loading: false, - error: null, - data: [ - { - id: 'A0000000001', - path: '/A0000000000/A0000000001', - children: [], - displayName: 'Org Unit 2', - }, - ], + await waitFor(() => { + expect(result.current).toEqual({ + called: true, + loading: false, + error: null, + data: [ + { + id: 'A0000000001', + path: '/A0000000000/A0000000001', + children: [], + displayName: 'Org Unit 2', + }, + ], + }) }) }) @@ -93,18 +89,17 @@ describe('OrganisationUnitTree - useOrgChildren', () => { ) - const { result, waitForNextUpdate } = renderHook( - () => useOrgChildren({ node }), - { wrapper: errorWrapper } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useOrgChildren({ node }), { + wrapper: errorWrapper, + }) - expect(result.current).toEqual({ - called: true, - loading: false, - error: new Error('Error message'), - data: undefined, + await waitFor(() => { + expect(result.current).toEqual({ + called: true, + loading: false, + error: new Error('Error message'), + data: undefined, + }) }) }) @@ -112,25 +107,22 @@ describe('OrganisationUnitTree - useOrgChildren', () => { const onComplete = jest.fn() const options = { onComplete, node } - const { waitForNextUpdate } = renderHook( - () => useOrgChildren(options), - { wrapper } - ) - - await waitForNextUpdate() - - expect(onComplete).toHaveBeenCalledWith({ - id: 'A0000000000', - path: '/A0000000000', - displayName: 'Org Unit 1', - children: [ - { - id: 'A0000000001', - path: '/A0000000000/A0000000001', - children: [], - displayName: 'Org Unit 2', - }, - ], + renderHook(() => useOrgChildren(options), { wrapper }) + + await waitFor(() => { + expect(onComplete).toHaveBeenCalledWith({ + id: 'A0000000000', + path: '/A0000000000', + displayName: 'Org Unit 1', + children: [ + { + id: 'A0000000001', + path: '/A0000000000/A0000000001', + children: [], + displayName: 'Org Unit 2', + }, + ], + }) }) }) @@ -166,31 +158,31 @@ describe('OrganisationUnitTree - useOrgChildren', () => { ) - const { result, waitForNextUpdate } = renderHook( + const { result } = renderHook( () => useOrgChildren({ node: { ...node, children: 2 } }), { wrapper: wrapperWithUnsortedChildren } ) - await waitForNextUpdate() - - expect(result.current).toEqual({ - called: true, - loading: false, - error: null, - data: [ - { - id: 'A0000000001', - path: '/A0000000000/A0000000001', - children: [], - displayName: 'Org Unit 2', - }, - { - id: 'A0000000002', - path: '/A0000000000/A0000000002', - children: [], - displayName: 'Org Unit 3', - }, - ], + await waitFor(() => { + expect(result.current).toEqual({ + called: true, + loading: false, + error: null, + data: [ + { + id: 'A0000000001', + path: '/A0000000000/A0000000001', + children: [], + displayName: 'Org Unit 2', + }, + { + id: 'A0000000002', + path: '/A0000000000/A0000000002', + children: [], + displayName: 'Org Unit 3', + }, + ], + }) }) }) @@ -230,31 +222,30 @@ describe('OrganisationUnitTree - useOrgChildren', () => { node: { ...node, children: 2 }, suppressAlphabeticalSorting: true, } - const { result, waitForNextUpdate } = renderHook( - () => useOrgChildren(options), - { wrapper: wrapperWithUnsortedChildren } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useOrgChildren(options), { + wrapper: wrapperWithUnsortedChildren, + }) - expect(result.current).toEqual({ - called: true, - loading: false, - error: null, - data: [ - { - id: 'A0000000002', - path: '/A0000000000/A0000000002', - children: [], - displayName: 'Org Unit 3', - }, - { - id: 'A0000000001', - path: '/A0000000000/A0000000001', - children: [], - displayName: 'Org Unit 2', - }, - ], + await waitFor(() => { + expect(result.current).toEqual({ + called: true, + loading: false, + error: null, + data: [ + { + id: 'A0000000002', + path: '/A0000000000/A0000000002', + children: [], + displayName: 'Org Unit 3', + }, + { + id: 'A0000000001', + path: '/A0000000000/A0000000001', + children: [], + displayName: 'Org Unit 2', + }, + ], + }) }) }) @@ -294,31 +285,30 @@ describe('OrganisationUnitTree - useOrgChildren', () => { node: { ...node, children: 2 }, suppressAlphabeticalSorting: true, } - const { result, waitForNextUpdate } = renderHook( - () => useOrgChildren(options), - { wrapper: wrapperWithUnsortedChildren } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useOrgChildren(options), { + wrapper: wrapperWithUnsortedChildren, + }) - expect(result.current).toEqual({ - called: true, - loading: false, - error: null, - data: [ - { - id: 'A0000000002', - path: '/A0000000000/A0000000002', - children: [], - displayName: 'Org Unit 3', - }, - { - id: 'A0000000001', - path: '/A0000000000/A0000000001', - children: [], - displayName: 'Org Unit 2', - }, - ], + await waitFor(() => { + expect(result.current).toEqual({ + called: true, + loading: false, + error: null, + data: [ + { + id: 'A0000000002', + path: '/A0000000000/A0000000002', + children: [], + displayName: 'Org Unit 3', + }, + { + id: 'A0000000001', + path: '/A0000000000/A0000000001', + children: [], + displayName: 'Org Unit 2', + }, + ], + }) }) }) }) diff --git a/components/organisation-unit-tree/src/organisation-unit-node/use-org-data/use-org-data.test.js b/components/organisation-unit-tree/src/organisation-unit-node/use-org-data/use-org-data.test.js index 3307a001c9..799d2851c9 100644 --- a/components/organisation-unit-tree/src/organisation-unit-node/use-org-data/use-org-data.test.js +++ b/components/organisation-unit-tree/src/organisation-unit-node/use-org-data/use-org-data.test.js @@ -1,5 +1,5 @@ import { CustomDataProvider } from '@dhis2/app-runtime' -import { renderHook } from '@testing-library/react-hooks' +import { renderHook, waitFor } from '@testing-library/react' import React from 'react' import { useOrgData } from './use-org-data.js' @@ -52,21 +52,21 @@ describe('OrganisationUnitTree - useOrgData', () => { }) it('should provide the org unit data', async () => { - const { result, waitForNextUpdate } = renderHook( + const { result } = renderHook( () => useOrgData('A0000000000', { displayName: 'Display name' }), { wrapper } ) - await waitForNextUpdate() - - expect(result.current).toEqual({ - loading: false, - error: null, - data: { - id: 'A0000000000', - path: '/A0000000000', - displayName: 'Org Unit 1', - }, + await waitFor(() => { + expect(result.current).toEqual({ + loading: false, + error: null, + data: { + id: 'A0000000000', + path: '/A0000000000', + displayName: 'Org Unit 1', + }, + }) }) }) @@ -83,39 +83,35 @@ describe('OrganisationUnitTree - useOrgData', () => { ) - const { result, waitForNextUpdate } = renderHook( + const { result } = renderHook( () => useOrgData('A0000000000', { displayName: 'Display name' }), { wrapper: errorWrapper } ) - await waitForNextUpdate() - - expect(result.current).toEqual({ - loading: false, - error: new Error('Error message'), - data: { displayName: 'Display name', id: 'A0000000000' }, + await waitFor(() => { + expect(result.current).toEqual({ + loading: false, + error: new Error('Error message'), + data: { displayName: 'Display name', id: 'A0000000000' }, + }) }) }) it('should send the "isUserDataViewFallback" parameter with value "undefined"', async () => { const options = { displayName: 'Display name' } - const { waitForNextUpdate } = renderHook( - () => useOrgData('A0000000000', options), - { wrapper } - ) - - await waitForNextUpdate() - - expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( - 'read', - expect.objectContaining({ - params: expect.objectContaining({ - isUserDataViewFallback: undefined, + renderHook(() => useOrgData('A0000000000', options), { wrapper }) + await waitFor(() => { + expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( + 'read', + expect.objectContaining({ + params: expect.objectContaining({ + isUserDataViewFallback: undefined, + }), }), - }), - expect.objectContaining({}) // contains the `signal` - ) + expect.objectContaining({}) // contains the `signal` + ) + }) }) it('should send the "isUserDataViewFallback" parameter with value "true"', async () => { @@ -124,21 +120,18 @@ describe('OrganisationUnitTree - useOrgData', () => { displayName: 'Display name', } - const { waitForNextUpdate } = renderHook( - () => useOrgData('A0000000000', options), - { wrapper } - ) - - await waitForNextUpdate() + renderHook(() => useOrgData('A0000000000', options), { wrapper }) - expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( - 'read', - expect.objectContaining({ - params: expect.objectContaining({ - isUserDataViewFallback: true, + await waitFor(() => { + expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( + 'read', + expect.objectContaining({ + params: expect.objectContaining({ + isUserDataViewFallback: true, + }), }), - }), - expect.objectContaining({}) // contains the `signal` - ) + expect.objectContaining({}) // contains the `signal` + ) + }) }) }) diff --git a/components/organisation-unit-tree/src/organisation-unit-tree/organisation-unit-tree.test.js b/components/organisation-unit-tree/src/organisation-unit-tree/organisation-unit-tree.test.js index 1e142e9fbb..2af93f8f31 100644 --- a/components/organisation-unit-tree/src/organisation-unit-tree/organisation-unit-tree.test.js +++ b/components/organisation-unit-tree/src/organisation-unit-tree/organisation-unit-tree.test.js @@ -31,8 +31,9 @@ describe('OrganisationUnitTree', () => { ) expect(errorMock).toHaveBeenCalledTimes(1) - expect(errorMock.mock.calls[0][0]).toMatch( - /^Warning: Failed prop type: Invalid prop `handleCollapse` supplied to `OrganisationUnitTree`/ + expect(errorMock.mock.calls[0][2]).toMatch( + /Invalid prop `handleCollapse` supplied to `OrganisationUnitTree`/, + {} ) }) @@ -49,8 +50,8 @@ describe('OrganisationUnitTree', () => { ) expect(errorMock).toHaveBeenCalledTimes(1) - expect(errorMock.mock.calls[0][0]).toMatch( - /^Warning: Failed prop type: Invalid prop `handleExpand` supplied to `OrganisationUnitTree`/ + expect(errorMock.mock.calls[0][2]).toMatch( + /Invalid prop `handleExpand` supplied to `OrganisationUnitTree`/ ) }) @@ -67,8 +68,8 @@ describe('OrganisationUnitTree', () => { ) expect(errorMock).toHaveBeenCalledTimes(1) - expect(errorMock.mock.calls[0][0]).toMatch( - /^Warning: Failed prop type: Invalid prop `expanded` supplied to `OrganisationUnitTree`/ + expect(errorMock.mock.calls[0][2]).toMatch( + 'Invalid prop `expanded` supplied to `OrganisationUnitTree`, this prop is conditionally required but has value `undefined`. The condition that made this prop required is: `props => !!props.handleExpand || !!props.handleCollapse`.' ) }) }) diff --git a/components/organisation-unit-tree/src/organisation-unit-tree/use-root-org-data/use-root-org-unit.test.js b/components/organisation-unit-tree/src/organisation-unit-tree/use-root-org-data/use-root-org-unit.test.js index eb5d0646ea..fda5892836 100644 --- a/components/organisation-unit-tree/src/organisation-unit-tree/use-root-org-data/use-root-org-unit.test.js +++ b/components/organisation-unit-tree/src/organisation-unit-tree/use-root-org-data/use-root-org-unit.test.js @@ -1,5 +1,5 @@ import { CustomDataProvider } from '@dhis2/app-runtime' -import { renderHook } from '@testing-library/react-hooks' +import { renderHook, waitFor } from '@testing-library/react' import React from 'react' import { useRootOrgData } from './use-root-org-data.js' @@ -63,12 +63,11 @@ describe('OrganisationUnitTree - useRootOrgData', () => { }) it('should provide the org unit data', async () => { - const { result, waitForNextUpdate } = renderHook( - () => useRootOrgData(['A0000000000']), - { wrapper } - ) + const { result } = renderHook(() => useRootOrgData(['A0000000000']), { + wrapper, + }) - await waitForNextUpdate() + await waitFor(() => {}) expect(result.current).toEqual( expect.objectContaining({ @@ -98,29 +97,25 @@ describe('OrganisationUnitTree - useRootOrgData', () => { ) - const { result, waitForNextUpdate } = renderHook( - () => useRootOrgData(['A0000000000']), - { wrapper: errorWrapper } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useRootOrgData(['A0000000000']), { + wrapper: errorWrapper, + }) - expect(result.current).toEqual( - expect.objectContaining({ - loading: false, - error: new Error('Error message'), - data: null, - }) - ) + await waitFor(() => { + expect(result.current).toEqual( + expect.objectContaining({ + loading: false, + error: new Error('Error message'), + data: null, + }) + ) + }) }) it('should send the "isUserDataViewFallback" parameter with value "undefined"', async () => { - const { waitForNextUpdate } = renderHook( - () => useRootOrgData(['A0000000000']), - { wrapper } - ) + renderHook(() => useRootOrgData(['A0000000000']), { wrapper }) - await waitForNextUpdate() + await waitFor(() => {}) expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( 'read', @@ -135,12 +130,9 @@ describe('OrganisationUnitTree - useRootOrgData', () => { it('should send the "isUserDataViewFallback" parameter with value "true"', async () => { const options = { isUserDataViewFallback: true } - const { waitForNextUpdate } = renderHook( - () => useRootOrgData(['A0000000000'], options), - { wrapper } - ) + renderHook(() => useRootOrgData(['A0000000000'], options), { wrapper }) - await waitForNextUpdate() + await waitFor(() => {}) expect(dataProviderData.organisationUnits).toHaveBeenCalledWith( 'read', @@ -169,25 +161,24 @@ describe('OrganisationUnitTree - useRootOrgData', () => { ) - const { result, waitForNextUpdate } = renderHook( - () => useRootOrgData(['A0000000000']), - { wrapper: wrapperWithoutDisplayName } - ) - - await waitForNextUpdate() + const { result } = renderHook(() => useRootOrgData(['A0000000000']), { + wrapper: wrapperWithoutDisplayName, + }) - expect(result.current).toEqual( - expect.objectContaining({ - loading: false, - error: null, - data: { - A0000000000: { - id: 'A0000000000', - path: '/A0000000000', - displayName: '', + await waitFor(() => { + expect(result.current).toEqual( + expect.objectContaining({ + loading: false, + error: null, + data: { + A0000000000: { + id: 'A0000000000', + path: '/A0000000000', + displayName: '', + }, }, - }, - }) - ) + }) + ) + }) }) }) diff --git a/components/pagination/package.json b/components/pagination/package.json index ce5136025a..ddf53ba52f 100644 --- a/components/pagination/package.json +++ b/components/pagination/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/pagination", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Pagination", "repository": { "type": "git", @@ -28,16 +28,16 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/select": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/select": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -47,8 +47,8 @@ ], "devDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/popover/package.json b/components/popover/package.json index f7d3b12ed6..6a6f46ea91 100644 --- a/components/popover/package.json +++ b/components/popover/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/popover", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Popover", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/popper/package.json b/components/popper/package.json index 1d66b36775..52afb08512 100644 --- a/components/popper/package.json +++ b/components/popper/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/popper", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Popper", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "@popperjs/core": "^2.10.1", "classnames": "^2.3.1", "prop-types": "^15.7.2", @@ -45,8 +45,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/portal/package.json b/components/portal/package.json index bcd7465500..9a620931dd 100644 --- a/components/portal/package.json +++ b/components/portal/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/portal", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Portal", "repository": { "type": "git", @@ -27,8 +27,8 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { @@ -40,8 +40,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/radio/package.json b/components/radio/package.json index 3ca261d6c7..3e5204f947 100644 --- a/components/radio/package.json +++ b/components/radio/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/radio", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Radio", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/required/package.json b/components/required/package.json index a1cecb6f27..ecb2ae280d 100644 --- a/components/required/package.json +++ b/components/required/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/required", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Required", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/segmented-control/package.json b/components/segmented-control/package.json index 85fe7e65a0..4f02391693 100644 --- a/components/segmented-control/package.json +++ b/components/segmented-control/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/segmented-control", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Segmented Control", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/select/package.json b/components/select/package.json index d3cac91a24..b7668a240c 100644 --- a/components/select/package.json +++ b/components/select/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/select", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Select", "repository": { "type": "git", @@ -28,26 +28,26 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/checkbox": "9.12.0", - "@dhis2-ui/chip": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/status-icon": "9.12.0", - "@dhis2-ui/tooltip": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/checkbox": "9.14.1", + "@dhis2-ui/chip": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/status-icon": "9.14.1", + "@dhis2-ui/tooltip": "9.14.1", "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -57,8 +57,8 @@ ], "devDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/selector-bar/package.json b/components/selector-bar/package.json index 6573dc6396..bd112ee9d1 100644 --- a/components/selector-bar/package.json +++ b/components/selector-bar/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/selector-bar", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Select", "repository": { "type": "git", @@ -28,30 +28,28 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", - "@testing-library/react": "^12.1.2", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, "devDependencies": { - "@dhis2-ui/css": "9.12.0", - "@dhis2-ui/menu": "9.12.0", - "@dhis2-ui/organisation-unit-tree": "9.12.0", - "@dhis2-ui/select": "9.12.0", + "@dhis2-ui/css": "9.14.1", + "@dhis2-ui/menu": "9.14.1", + "@dhis2-ui/organisation-unit-tree": "9.14.1", + "@dhis2-ui/select": "9.14.1", "@dhis2/d2-i18n": "^1.1.0", - "@testing-library/jest-dom": "^5.16.1", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "files": [ diff --git a/components/sharing-dialog/API.md b/components/sharing-dialog/API.md index c598050621..8ff5a334c1 100644 --- a/components/sharing-dialog/API.md +++ b/components/sharing-dialog/API.md @@ -16,13 +16,14 @@ import { SharingDialog } from '@dhis2/ui' |---|---|---|---|---| |id|string||*|The id of the object to share| |type|DIALOG_TYPES_LIST||*|The type of object to share| +|dataSharing|boolean|`false`||Whether to expose the ability to set data sharing (in addition to metadata sharing)| |dataTest|string|`'dhis2-uicore-sharingdialog'`||| -|initialSharingSettings|{
"allowPublic": "boolean",
"groups": "objectOf",
"name": "string",
"public": "import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js'",
"users": "objectOf"
}|`{ +|initialSharingSettings|{
"allowPublic": "boolean",
"groups": "objectOf",
"name": "string",
"public": "{
\"data\": \"import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js'\",
\"metadata\": \"import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js' │ import {\\n ACCESS_NONE,\\n ACCESS_VIEW_ONLY,\\n ACCESS_VIEW_AND_EDIT,\\n DIALOG_TYPES_LIST,\\n} from './constants.js'\"
} │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js' │ import {\n ACCESS_NONE,\n ACCESS_VIEW_ONLY,\n ACCESS_VIEW_AND_EDIT,\n DIALOG_TYPES_LIST,\n} from './constants.js'",
"users": "objectOf"
}|`{ name: '', allowPublic: true, - public: ACCESS_NONE, - groups: {}, - users: {}, + public: { data: ACCESS_NONE, metadata: ACCESS_NONE }, + groups: [], + users: [], }`||Used to seed the component with data to show whilst loading| |onClose|function|`() => {}`||| |onError|function|`() => {}`||| diff --git a/components/sharing-dialog/i18n/ar.po b/components/sharing-dialog/i18n/ar.po index 5b50a0bd05..4c9ca26058 100644 --- a/components/sharing-dialog/i18n/ar.po +++ b/components/sharing-dialog/i18n/ar.po @@ -1,15 +1,16 @@ # # Translators: -# phil_dhis2, 2021 -# Hamza Assada <7amza.it@gmail.com>, 2021 +# Philip Larsen Donnelly, 2021 +# Viktor Varland , 2024 +# Hamza Assada <7amza.it@gmail.com>, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Hamza Assada <7amza.it@gmail.com>, 2021\n" -"Language-Team: Arabic (https://www.transifex.com/hisp-uio/teams/100509/ar/)\n" +"Last-Translator: Hamza Assada <7amza.it@gmail.com>, 2024\n" +"Language-Team: Arabic (https://app.transifex.com/hisp-uio/teams/100509/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,18 +23,27 @@ msgstr "العرض فقط" msgid "View and edit" msgstr "عرض وتعديل" +msgid "No access" +msgstr "لا يمكن الوصول" + msgid "Give access to a user or group" msgstr "منح حق الوصول إلى مستخدم أو مجموعة" -msgid "Access level" -msgstr "مستوى الوصول" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "حدد مستوى" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "غير متوفر في وضع عدم الإتصال" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "مستوى الوصول" + msgid "Give access" msgstr "السماح بالوصول" @@ -46,21 +56,24 @@ msgstr "" msgid "All users" msgstr "جميع المستخدمين" -msgid "No access" -msgstr "لا يمكن الوصول" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "إمكانية الاستعراض" +msgid "User group" +msgstr "مجموعة المستخدمين" -msgid "Can view and edit" -msgstr "يمكن العرض والتعديل" +msgid "User" +msgstr "المستخدم" -msgid "Metadata" -msgstr "البيانات الوصفية" +msgid "Data" +msgstr "بيانات" msgid "Remove access" msgstr "إزالة الوصول" +msgid "Metadata" +msgstr "البيانات الوصفية" + msgid "User or group" msgstr "مستخدم أو مجموعة" diff --git a/components/sharing-dialog/i18n/ar_IQ.po b/components/sharing-dialog/i18n/ar_IQ.po index 644796be0c..6005b2157e 100644 --- a/components/sharing-dialog/i18n/ar_IQ.po +++ b/components/sharing-dialog/i18n/ar_IQ.po @@ -1,14 +1,14 @@ # # Translators: -# KRG HIS , 2021 +# KRG HIS , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: KRG HIS , 2021\n" -"Language-Team: Arabic (Iraq) (https://www.transifex.com/hisp-uio/teams/100509/ar_IQ/)\n" +"Last-Translator: KRG HIS , 2024\n" +"Language-Team: Arabic (Iraq) (https://app.transifex.com/hisp-uio/teams/100509/ar_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "ممنوع الدخول" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "ممنوع الدخول" - -msgid "Can view" -msgstr "إمكانية الاستعراض" +msgid "Anyone logged in" +msgstr "" -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" +msgid "User" msgstr "" +msgid "Data" +msgstr "البيانات" + msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/cs.po b/components/sharing-dialog/i18n/cs.po index 3edbe6138d..3a28da477d 100644 --- a/components/sharing-dialog/i18n/cs.po +++ b/components/sharing-dialog/i18n/cs.po @@ -1,14 +1,14 @@ # # Translators: -# trendspotter , 2021 +# Jiří Podhorecký , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: trendspotter , 2021\n" -"Language-Team: Czech (https://www.transifex.com/hisp-uio/teams/100509/cs/)\n" +"Last-Translator: Jiří Podhorecký , 2024\n" +"Language-Team: Czech (https://app.transifex.com/hisp-uio/teams/100509/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +21,27 @@ msgstr "Pouze zobrazení" msgid "View and edit" msgstr "Zobrazení a úpravy" +msgid "No access" +msgstr "Žádný přístup" + msgid "Give access to a user or group" msgstr "Udělte přístup uživateli nebo skupině" -msgid "Access level" -msgstr "Úroveň přístupu" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Vybrat úroveň" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Není k dispozici offline" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Úroveň přístupu" + msgid "Give access" msgstr "Povolit přístup" @@ -45,21 +54,24 @@ msgstr "Uživatel / Skupina" msgid "All users" msgstr "Všichni uživatelé" -msgid "No access" -msgstr "Žádný přístup" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Může zobrazit" +msgid "User group" +msgstr "Uživatelská skupina" -msgid "Can view and edit" -msgstr "Lze prohlížet a upravovat" +msgid "User" +msgstr "Uživatel" -msgid "Metadata" -msgstr "Metadata" +msgid "Data" +msgstr "Data" msgid "Remove access" msgstr "Odebrat přístup" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "Uživatel nebo skupina" diff --git a/components/sharing-dialog/i18n/da.po b/components/sharing-dialog/i18n/da.po index 523586573d..fc9aea2e3f 100644 --- a/components/sharing-dialog/i18n/da.po +++ b/components/sharing-dialog/i18n/da.po @@ -1,14 +1,14 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2021 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: phil_dhis2, 2021\n" -"Language-Team: Danish (https://www.transifex.com/hisp-uio/teams/100509/da/)\n" +"Last-Translator: Philip Larsen Donnelly, 2021\n" +"Language-Team: Danish (https://app.transifex.com/hisp-uio/teams/100509/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "Can view" +msgid "User group" +msgstr "" -msgid "Can view and edit" +msgid "User" msgstr "" -msgid "Metadata" +msgid "Data" msgstr "" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/en.pot b/components/sharing-dialog/i18n/en.pot index f6909d3814..dd190099bd 100644 --- a/components/sharing-dialog/i18n/en.pot +++ b/components/sharing-dialog/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" -"PO-Revision-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" +"PO-Revision-Date: 2024-11-07T15:20:34.375Z\n" msgid "View only" msgstr "View only" @@ -14,18 +14,27 @@ msgstr "View only" msgid "View and edit" msgstr "View and edit" +msgid "No access" +msgstr "No access" + msgid "Give access to a user or group" msgstr "Give access to a user or group" -msgid "Access level" -msgstr "Access level" +msgid "Data access level" +msgstr "Data access level" -msgid "Select a level" -msgstr "Select a level" +msgid "Choose a level" +msgstr "Choose a level" msgid "Not available offline" msgstr "Not available offline" +msgid "Metadata access level" +msgstr "Metadata access level" + +msgid "Access level" +msgstr "Access level" + msgid "Give access" msgstr "Give access" @@ -38,21 +47,24 @@ msgstr "User / Group" msgid "All users" msgstr "All users" -msgid "No access" -msgstr "No access" +msgid "Anyone logged in" +msgstr "Anyone logged in" -msgid "Can view" -msgstr "Can view" +msgid "User group" +msgstr "User group" -msgid "Can view and edit" -msgstr "Can view and edit" +msgid "User" +msgstr "User" -msgid "Metadata" -msgstr "Metadata" +msgid "Data" +msgstr "Data" msgid "Remove access" msgstr "Remove access" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "User or group" diff --git a/components/sharing-dialog/i18n/es.po b/components/sharing-dialog/i18n/es.po index 37c03383f4..15fe0a2b93 100644 --- a/components/sharing-dialog/i18n/es.po +++ b/components/sharing-dialog/i18n/es.po @@ -1,19 +1,20 @@ # # Translators: # Philip Larsen Donnelly, 2021 -# Viktor Varland , 2021 # William Aviles , 2021 -# Gabriela Rodriguez , 2021 # Marta Vila , 2023 # Janeth Cruz, 2023 # Enzo Nicolas Rossi , 2023 +# Gabriela Rodriguez , 2024 +# Viktor Varland , 2024 +# Manuel Silva , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Enzo Nicolas Rossi , 2023\n" +"Last-Translator: Manuel Silva , 2024\n" "Language-Team: Spanish (https://app.transifex.com/hisp-uio/teams/100509/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,18 +28,27 @@ msgstr "Solo lectura" msgid "View and edit" msgstr "Ver y editar" +msgid "No access" +msgstr "Sin acceso" + msgid "Give access to a user or group" msgstr "Dar acceso a un usuario o grupo" -msgid "Access level" -msgstr "Nivel de acceso" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Selecciona un nivel" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "No disponible sin conexión a internet" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Nivel de acceso" + msgid "Give access" msgstr "Dar acceso" @@ -51,21 +61,24 @@ msgstr "Usuario / Grupo" msgid "All users" msgstr "Todos los usuarios" -msgid "No access" -msgstr "Sin acceso" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Puede ver" +msgid "User group" +msgstr "Grupo de usuario" -msgid "Can view and edit" -msgstr "Puede ver y editar" +msgid "User" +msgstr "Usuario" -msgid "Metadata" -msgstr "Metadatos" +msgid "Data" +msgstr "Datos" msgid "Remove access" msgstr "Eliminar acceso" +msgid "Metadata" +msgstr "Metadatos" + msgid "User or group" msgstr "Usuario o Grupo" diff --git a/components/sharing-dialog/i18n/es_419.po b/components/sharing-dialog/i18n/es_419.po index bfa6020cda..ae4be70111 100644 --- a/components/sharing-dialog/i18n/es_419.po +++ b/components/sharing-dialog/i18n/es_419.po @@ -1,14 +1,14 @@ # # Translators: -# Jaime Bosque , 2022 # Enzo Nicolas Rossi , 2024 +# Jaime Bosque , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Enzo Nicolas Rossi , 2024\n" +"Last-Translator: Jaime Bosque , 2024\n" "Language-Team: Spanish (Latin America) (https://app.transifex.com/hisp-uio/teams/100509/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,18 +22,27 @@ msgstr "Ver sólo" msgid "View and edit" msgstr "Ver y editar" +msgid "No access" +msgstr "Sin acceso" + msgid "Give access to a user or group" msgstr "Dar acceso a un usuario o grupo" -msgid "Access level" -msgstr "Nivel de acceso" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Seleccione un nivel" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "No disponible sin conexión" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Nivel de acceso" + msgid "Give access" msgstr "Dar acceso" @@ -46,21 +55,24 @@ msgstr "Usuario / Grupo" msgid "All users" msgstr "Todos los usuarios" -msgid "No access" -msgstr "Sin acceso" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Puede ver" +msgid "User group" +msgstr "" -msgid "Can view and edit" -msgstr "Puede ver y editar" +msgid "User" +msgstr "" -msgid "Metadata" -msgstr "Metadatos" +msgid "Data" +msgstr "Datos" msgid "Remove access" msgstr "Eliminar el acceso" +msgid "Metadata" +msgstr "Metadatos" + msgid "User or group" msgstr "Usuario o grupo" diff --git a/components/sharing-dialog/i18n/fr.po b/components/sharing-dialog/i18n/fr.po index aea3f55c4d..1b6d1f1eb0 100644 --- a/components/sharing-dialog/i18n/fr.po +++ b/components/sharing-dialog/i18n/fr.po @@ -1,18 +1,19 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2021 # Edem Kossi , 2021 -# Viktor Varland , 2021 # Gabriela Rodriguez , 2021 -# Yao Selom SAKA (HISP WCA) , 2022 +# Yao Selom SAKA (HISP WCA) , 2024 +# Viktor Varland , 2024 +# Jason Pickering , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Yao Selom SAKA (HISP WCA) , 2022\n" -"Language-Team: French (https://www.transifex.com/hisp-uio/teams/100509/fr/)\n" +"Last-Translator: Jason Pickering , 2024\n" +"Language-Team: French (https://app.transifex.com/hisp-uio/teams/100509/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,18 +26,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Pas d'accès" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" -msgstr "Niveau d'accès" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Sélectionnez un niveau" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Non disponible hors ligne" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Niveau d'accès" + msgid "Give access" msgstr "" @@ -49,21 +59,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Pas d'accès" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Peut afficher" +msgid "User group" +msgstr "Groupe d'utilisateurs" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "Utilisateur" -msgid "Metadata" -msgstr "Métadonnées" +msgid "Data" +msgstr "Données" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Métadonnées" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/id.po b/components/sharing-dialog/i18n/id.po index bcab4ce3c1..338c5d7c6c 100644 --- a/components/sharing-dialog/i18n/id.po +++ b/components/sharing-dialog/i18n/id.po @@ -1,15 +1,15 @@ # # Translators: # Viktor Varland , 2021 -# Aprisa Chrysantina , 2021 +# Aprisa Chrysantina , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Aprisa Chrysantina , 2021\n" -"Language-Team: Indonesian (https://www.transifex.com/hisp-uio/teams/100509/id/)\n" +"Last-Translator: Aprisa Chrysantina , 2024\n" +"Language-Team: Indonesian (https://app.transifex.com/hisp-uio/teams/100509/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Tidak ada akses" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Tidak ada akses" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Dapat ditampilkan" +msgid "User group" +msgstr "" -msgid "Can view and edit" +msgid "User" msgstr "" -msgid "Metadata" -msgstr "Metadata" +msgid "Data" +msgstr "Data" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/lo.po b/components/sharing-dialog/i18n/lo.po index de364a8eca..81495e14fa 100644 --- a/components/sharing-dialog/i18n/lo.po +++ b/components/sharing-dialog/i18n/lo.po @@ -1,16 +1,16 @@ # # Translators: # Philip Larsen Donnelly, 2021 -# Viktor Varland , 2021 # Saysamone Sibounma, 2023 # Namwan Chanthavisouk, 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Namwan Chanthavisouk, 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Lao (https://app.transifex.com/hisp-uio/teams/100509/lo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,18 +24,27 @@ msgstr "ເບິ່ງໄດ້ເທົ່ານັ້ນ" msgid "View and edit" msgstr "ເບິ່ງ ແລະ ແກ້ໄຂ" +msgid "No access" +msgstr "ບໍ່ມີການເຂົ້າເຖີງ" + msgid "Give access to a user or group" msgstr "ໃຫ້ຜູ້ໃຊ້ ຫຼື ກຸ່ມເຂົ້າເຖິງ" -msgid "Access level" -msgstr "ຂັ້ນການເຂົ້າເຖິງ" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "ເລືອກຂັ້ນ" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "ບໍ່ສາມາດໃຊ້ໄດ້ອອບລາຍ" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "ຂັ້ນການເຂົ້າເຖິງ" + msgid "Give access" msgstr "ໃຫ້ການເຂົ້າເຖິງ" @@ -48,21 +57,24 @@ msgstr "ຜູ້ໃຊ້ / ກຸ່ມ" msgid "All users" msgstr "ຜູ້ໃຊ້ທັງໝົດ" -msgid "No access" -msgstr "ບໍ່ມີການເຂົ້າເຖີງ" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "ສາມາດເບີ່ງ" +msgid "User group" +msgstr "" -msgid "Can view and edit" -msgstr "ສາມາດເບິ່ງ ແລະ ແກ້ໄຂ" +msgid "User" +msgstr "ຜູ້ໃຊ້" -msgid "Metadata" -msgstr "ໂຄງຮ່າງຖານຂໍ້ມູນ" +msgid "Data" +msgstr "ຂໍ້ມູນ" msgid "Remove access" msgstr "ເອົາການເຂົ້າເຖິງອອກ" +msgid "Metadata" +msgstr "ໂຄງຮ່າງຖານຂໍ້ມູນ" + msgid "User or group" msgstr "ຜູ້ໃຊ້ ຫຼື ກຸ່ມ" diff --git a/components/sharing-dialog/i18n/my.po b/components/sharing-dialog/i18n/my.po index 03580441c8..f5c5f4bce8 100644 --- a/components/sharing-dialog/i18n/my.po +++ b/components/sharing-dialog/i18n/my.po @@ -1,14 +1,14 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: phil_dhis2, 2021\n" -"Language-Team: Burmese (https://www.transifex.com/hisp-uio/teams/100509/my/)\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Language-Team: Burmese (https://app.transifex.com/hisp-uio/teams/100509/my/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "ကြည့်ရှုနိုင်သည်" - -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" +msgid "User" msgstr "" +msgid "Data" +msgstr "အချက်အလက်" + msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/nb.po b/components/sharing-dialog/i18n/nb.po index 9c757c9ed4..4322548048 100644 --- a/components/sharing-dialog/i18n/nb.po +++ b/components/sharing-dialog/i18n/nb.po @@ -1,14 +1,14 @@ # # Translators: -# Caroline Hesthagen Holen , 2021 -# Karoline Tufte Lien , 2023 +# Caroline Hesthagen Holen , 2024 +# Karoline Tufte Lien , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Karoline Tufte Lien , 2023\n" +"Last-Translator: Karoline Tufte Lien , 2024\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Ingen tilgang" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" -msgstr "Tilgangsnivå" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Velg et nivå" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Ikke tilgjengelig i frakoblet modus" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Tilgangsnivå" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Ingen tilgang" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Kan se" +msgid "User group" +msgstr "Brukergruppe" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "Bruker" -msgid "Metadata" -msgstr "Metadata" +msgid "Data" +msgstr "Data" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/nl.po b/components/sharing-dialog/i18n/nl.po index 953db33d83..6e681491b9 100644 --- a/components/sharing-dialog/i18n/nl.po +++ b/components/sharing-dialog/i18n/nl.po @@ -1,15 +1,15 @@ # # Translators: -# Rica Zamora Duchateau, 2022 # Charel van den Elsen, 2023 # Philip Larsen Donnelly, 2024 +# Rica, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Last-Translator: Rica, 2024\n" "Language-Team: Dutch (https://app.transifex.com/hisp-uio/teams/100509/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,18 +23,27 @@ msgstr "Alleen bekijken" msgid "View and edit" msgstr "Bekijk en bewerk" +msgid "No access" +msgstr "Geen toegang" + msgid "Give access to a user or group" msgstr "Geef toegang aan een gebruiker of groep" -msgid "Access level" -msgstr "Toegangsniveau" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Selecteer een niveau" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Niet beschikbaar offline" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Toegangsniveau" + msgid "Give access" msgstr "Toegang geven" @@ -47,21 +56,24 @@ msgstr "Gebruiker / groep" msgid "All users" msgstr "Alle gebruikers" -msgid "No access" -msgstr "Geen toegang" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Kan bekijken" +msgid "User group" +msgstr "" -msgid "Can view and edit" -msgstr "Kan bekijken en bewerken" +msgid "User" +msgstr "Gebruiker" -msgid "Metadata" -msgstr "Metagegevens" +msgid "Data" +msgstr "Gegevens" msgid "Remove access" msgstr "Toegang verwijderen" +msgid "Metadata" +msgstr "Metagegevens" + msgid "User or group" msgstr "Gebruiker of groep" diff --git a/components/sharing-dialog/i18n/prs.po b/components/sharing-dialog/i18n/prs.po index 8287dd3ea8..9a020ceaa8 100644 --- a/components/sharing-dialog/i18n/prs.po +++ b/components/sharing-dialog/i18n/prs.po @@ -1,14 +1,14 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: phil_dhis2, 2021\n" -"Language-Team: Persian (Afghanistan) (https://www.transifex.com/hisp-uio/teams/100509/fa_AF/)\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Language-Team: Persian (Afghanistan) (https://app.transifex.com/hisp-uio/teams/100509/fa_AF/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "دسترسی وجود ندارد" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "دسترسی وجود ندارد" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "توانایی نمایش" +msgid "User group" +msgstr "گروپ استفاده کننده" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "استفاده کننده" -msgid "Metadata" -msgstr "" +msgid "Data" +msgstr "دیتا" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/ps.po b/components/sharing-dialog/i18n/ps.po index 8782c28226..59ed2400ca 100644 --- a/components/sharing-dialog/i18n/ps.po +++ b/components/sharing-dialog/i18n/ps.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2021 # Viktor Varland , 2021 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Pashto (https://www.transifex.com/hisp-uio/teams/100509/ps/)\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Language-Team: Pashto (https://app.transifex.com/hisp-uio/teams/100509/ps/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "کتل کېدای شي" - -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" +msgid "User" msgstr "" +msgid "Data" +msgstr "مالومات (ډاټا)" + msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/pt.po b/components/sharing-dialog/i18n/pt.po index d76d72285c..b63ac90f88 100644 --- a/components/sharing-dialog/i18n/pt.po +++ b/components/sharing-dialog/i18n/pt.po @@ -1,19 +1,20 @@ # # Translators: -# phil_dhis2, 2021 -# Viktor Varland , 2021 -# Gabriela Rodriguez , 2021 +# Philip Larsen Donnelly, 2021 # Ge Joao , 2021 -# Sheila André , 2021 # Fernando Jorge Bade, 2021 +# Helton Dias, 2024 +# Gabriela Rodriguez , 2024 +# Viktor Varland , 2024 +# Sheila André , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Fernando Jorge Bade, 2021\n" -"Language-Team: Portuguese (https://www.transifex.com/hisp-uio/teams/100509/pt/)\n" +"Last-Translator: Sheila André , 2024\n" +"Language-Team: Portuguese (https://app.transifex.com/hisp-uio/teams/100509/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,23 +22,32 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" msgid "View only" -msgstr "" +msgstr "Ver apenas" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Sem acesso" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" -msgstr "Niveis de acesso " +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Selecione um nível" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Não disponível offline" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Niveis de acesso " + msgid "Give access" msgstr "" @@ -50,21 +60,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Sem acesso" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Consegue ver" +msgid "User group" +msgstr "Grupo de usuários" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "Utilizador" -msgid "Metadata" -msgstr "Metadados" +msgid "Data" +msgstr "Dados" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadados" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/pt_BR.po b/components/sharing-dialog/i18n/pt_BR.po index 9bb04fbd40..f9bd4bb0d2 100644 --- a/components/sharing-dialog/i18n/pt_BR.po +++ b/components/sharing-dialog/i18n/pt_BR.po @@ -1,15 +1,15 @@ # # Translators: # Philip Larsen Donnelly, 2021 -# Viktor Varland , 2021 # Thiago Rocha, 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Thiago Rocha, 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/hisp-uio/teams/100509/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,18 +23,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Sem acesso" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -47,21 +56,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Sem acesso" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Consegue ver" +msgid "User group" +msgstr "Grupo de usuários" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "Usuário" -msgid "Metadata" -msgstr "Metadados" +msgid "Data" +msgstr "Dados" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadados" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/ru.po b/components/sharing-dialog/i18n/ru.po index a6fd346e8a..5472f968d7 100644 --- a/components/sharing-dialog/i18n/ru.po +++ b/components/sharing-dialog/i18n/ru.po @@ -1,16 +1,15 @@ # # Translators: -# Viktor Varland , 2021 -# Ulanbek Abakirov , 2021 -# Philip Larsen Donnelly, 2021 # Yury Rogachev , 2024 +# Philip Larsen Donnelly, 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Yury Rogachev , 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Russian (https://app.transifex.com/hisp-uio/teams/100509/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,18 +23,27 @@ msgstr "Только просмотр" msgid "View and edit" msgstr "Просмотр и редактирование" +msgid "No access" +msgstr "Нет доступа" + msgid "Give access to a user or group" msgstr "Предоставить доступ пользователю или группе" -msgid "Access level" -msgstr "Уровень доступа" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Выбрать уровень" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Недоступно в автономном режиме" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Уровень доступа" + msgid "Give access" msgstr "Предоставить доступ" @@ -48,21 +56,24 @@ msgstr "Пользователь / Группа" msgid "All users" msgstr "Все пользователи" -msgid "No access" -msgstr "Нет доступа" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Право просмотра" +msgid "User group" +msgstr "Группа пользователей" -msgid "Can view and edit" -msgstr "Право просмотра и редактирования" +msgid "User" +msgstr "Пользователь" -msgid "Metadata" -msgstr "Метаданные" +msgid "Data" +msgstr "Данные" msgid "Remove access" msgstr "Удалить доступ" +msgid "Metadata" +msgstr "Метаданные" + msgid "User or group" msgstr "Пользователь или группа" diff --git a/components/sharing-dialog/i18n/si.po b/components/sharing-dialog/i18n/si.po index 6b848664e3..0e649436a8 100644 --- a/components/sharing-dialog/i18n/si.po +++ b/components/sharing-dialog/i18n/si.po @@ -1,13 +1,13 @@ # # Translators: -# Malinda Wijeratne, 2023 +# Malinda Wijeratne, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Malinda Wijeratne, 2023\n" +"Last-Translator: Malinda Wijeratne, 2024\n" "Language-Team: Sinhala (https://app.transifex.com/hisp-uio/teams/100509/si/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "පිවිසිය නොහැක" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "මාර්ග අපගතව නොතිබේ" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "පිවිසිය නොහැක" - -msgid "Can view" -msgstr "නාරඹිය හැක" +msgid "Anyone logged in" +msgstr "" -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" +msgid "User" msgstr "" +msgid "Data" +msgstr "දත්ත" + msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/sv.po b/components/sharing-dialog/i18n/sv.po index 64d68c00dc..c364c32a1e 100644 --- a/components/sharing-dialog/i18n/sv.po +++ b/components/sharing-dialog/i18n/sv.po @@ -1,15 +1,15 @@ # # Translators: # Philip Larsen Donnelly, 2021 -# Viktor Varland , 2021 # Martin , 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Martin , 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Swedish (https://app.transifex.com/hisp-uio/teams/100509/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,18 +23,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -47,21 +56,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "kan visa" +msgid "User group" +msgstr "" -msgid "Can view and edit" +msgid "User" msgstr "" -msgid "Metadata" -msgstr "Metadata" +msgid "Data" +msgstr "Data" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/tet.po b/components/sharing-dialog/i18n/tet.po index eb3cce26ea..a8b2c1a0b3 100644 --- a/components/sharing-dialog/i18n/tet.po +++ b/components/sharing-dialog/i18n/tet.po @@ -1,14 +1,15 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2021 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: phil_dhis2, 2021\n" -"Language-Team: Tetum (Tetun) (https://www.transifex.com/hisp-uio/teams/100509/tet/)\n" +"Last-Translator: Viktor Varland , 2024\n" +"Language-Team: Tetum (Tetun) (https://app.transifex.com/hisp-uio/teams/100509/tet/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -21,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "Bele haré" - -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" +msgid "User" msgstr "" +msgid "Data" +msgstr "Dadus" + msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/tg.po b/components/sharing-dialog/i18n/tg.po index 7d89763f88..1b0f039af8 100644 --- a/components/sharing-dialog/i18n/tg.po +++ b/components/sharing-dialog/i18n/tg.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2021 -# Viktor Varland , 2021 +# Philip Larsen Donnelly, 2021 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Tajik (https://www.transifex.com/hisp-uio/teams/100509/tg/)\n" +"Last-Translator: Viktor Varland , 2024\n" +"Language-Team: Tajik (https://app.transifex.com/hisp-uio/teams/100509/tg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" +msgid "Anyone logged in" msgstr "" -msgid "Can view" -msgstr "Намоиш додан метавонед" - -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" -msgstr "" +msgid "User" +msgstr "Корбар" + +msgid "Data" +msgstr "Иттилоот" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/uk.po b/components/sharing-dialog/i18n/uk.po index 1619490245..9bbf470179 100644 --- a/components/sharing-dialog/i18n/uk.po +++ b/components/sharing-dialog/i18n/uk.po @@ -1,15 +1,16 @@ # # Translators: -# phil_dhis2, 2021 -# Viktor Varland , 2021 -# Éva Tamási, 2022 +# Philip Larsen Donnelly, 2021 +# Éva Tamási, 2024 +# Wanda , 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Éva Tamási, 2022\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Ukrainian (https://app.transifex.com/hisp-uio/teams/100509/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,18 +24,27 @@ msgstr "Тільки перегляд" msgid "View and edit" msgstr "Перегляд і редагування" +msgid "No access" +msgstr "Немає доступу" + msgid "Give access to a user or group" msgstr "Надати доступ користувачеві або групі" -msgid "Access level" -msgstr "Рівень доступу" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Вибрати рівень" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Недоступно в автономному режимі" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Рівень доступу" + msgid "Give access" msgstr "Надати доступ" @@ -47,21 +57,24 @@ msgstr "Користувач / Група" msgid "All users" msgstr "Всі користувачі" -msgid "No access" -msgstr "Немає доступу" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Може переглядати" +msgid "User group" +msgstr "Група користувачів" -msgid "Can view and edit" -msgstr "Може переглядати й редагувати" +msgid "User" +msgstr "Користувач" -msgid "Metadata" -msgstr "Метадані" +msgid "Data" +msgstr "Дані" msgid "Remove access" msgstr "Видалити доступ" +msgid "Metadata" +msgstr "Метадані" + msgid "User or group" msgstr "Користувач або група" diff --git a/components/sharing-dialog/i18n/ur.po b/components/sharing-dialog/i18n/ur.po index f4e125eb27..57c600ed12 100644 --- a/components/sharing-dialog/i18n/ur.po +++ b/components/sharing-dialog/i18n/ur.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2021 -# Viktor Varland , 2021 +# Philip Larsen Donnelly, 2021 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Urdu (https://www.transifex.com/hisp-uio/teams/100509/ur/)\n" +"Last-Translator: Viktor Varland , 2024\n" +"Language-Team: Urdu (https://app.transifex.com/hisp-uio/teams/100509/ur/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "داخلہ ممنوع ہے" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" +msgid "Choose a level" msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "داخلہ ممنوع ہے" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "صرف ویو" +msgid "User group" +msgstr "صارف گروپ" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "صارف" -msgid "Metadata" -msgstr "میٹا ڈیٹا" +msgid "Data" +msgstr "ڈیٹا" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "میٹا ڈیٹا" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/uz_UZ_Cyrl.po b/components/sharing-dialog/i18n/uz_UZ_Cyrl.po index 789f46e2ba..572f5c33af 100644 --- a/components/sharing-dialog/i18n/uz_UZ_Cyrl.po +++ b/components/sharing-dialog/i18n/uz_UZ_Cyrl.po @@ -1,13 +1,13 @@ # # Translators: -# Ibatov , 2023 +# Khurshid Ibatov , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Ibatov , 2023\n" +"Last-Translator: Khurshid Ibatov , 2024\n" "Language-Team: Uzbek (Cyrillic) (https://app.transifex.com/hisp-uio/teams/100509/uz@Cyrl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,18 +21,27 @@ msgstr "Фақат кўриш учун" msgid "View and edit" msgstr "Кўриш ва таҳрирлаш" +msgid "No access" +msgstr "Кириш ҳуқуқи мавжуд эмас" + msgid "Give access to a user or group" msgstr "Фойдаланувчи ёки гуруҳга киришга рухсат бериш" -msgid "Access level" -msgstr "Кириш мумкин бўлган босқичлар" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "Поғонани танланг" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "Оффлайн режимда мавжуд эмас" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "Кириш мумкин бўлган босқичлар" + msgid "Give access" msgstr "Рухсат бериш" @@ -45,21 +54,24 @@ msgstr "Фойдаланувчи/Гуруҳ" msgid "All users" msgstr "Барча фойдаланувчилар" -msgid "No access" -msgstr "Кириш ҳуқуқи мавжуд эмас" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Кўриш мумкин" +msgid "User group" +msgstr "Фойдаланувчи гуруҳи" -msgid "Can view and edit" -msgstr "Кўриш ва таҳрирлаш имкони" +msgid "User" +msgstr "Фойдаланувчи" -msgid "Metadata" -msgstr "МетаМаълумот" +msgid "Data" +msgstr "Маълумот" msgid "Remove access" msgstr "Рухсатни бекор қилиш" +msgid "Metadata" +msgstr "МетаМаълумот" + msgid "User or group" msgstr "Фойдаланувчи ёки гуруҳ" diff --git a/components/sharing-dialog/i18n/uz_UZ_Latn.po b/components/sharing-dialog/i18n/uz_UZ_Latn.po index 828770f525..4a46af20d0 100644 --- a/components/sharing-dialog/i18n/uz_UZ_Latn.po +++ b/components/sharing-dialog/i18n/uz_UZ_Latn.po @@ -1,13 +1,13 @@ # # Translators: -# Yury Rogachev , 2021 +# Yury Rogachev , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Yury Rogachev , 2021\n" +"Last-Translator: Yury Rogachev , 2024\n" "Language-Team: Uzbek (Latin) (https://app.transifex.com/hisp-uio/teams/100509/uz@Latn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,18 +21,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Kirish taʼqiqlangan" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" -msgstr "Pogʼonani tanlang" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -45,21 +54,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Kirish taʼqiqlangan" - -msgid "Can view" -msgstr "Кўриш мумкин" +msgid "Anyone logged in" +msgstr "" -msgid "Can view and edit" +msgid "User group" msgstr "" -msgid "Metadata" -msgstr "Metadata" +msgid "User" +msgstr "Foydalanuvchi" + +msgid "Data" +msgstr "Маълумот" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Metadata" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/vi.po b/components/sharing-dialog/i18n/vi.po index 05fa82f245..a7bfa6ab5b 100644 --- a/components/sharing-dialog/i18n/vi.po +++ b/components/sharing-dialog/i18n/vi.po @@ -1,14 +1,14 @@ # # Translators: # Philip Larsen Donnelly, 2021 -# Viktor Varland , 2021 # Mai Nguyen , 2021 +# Viktor Varland , 2024 # Thuy Nguyen , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" "Last-Translator: Thuy Nguyen , 2024\n" "Language-Team: Vietnamese (https://app.transifex.com/hisp-uio/teams/100509/vi/)\n" @@ -24,18 +24,27 @@ msgstr "Chỉ xem" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "Không truy cập" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" +msgid "Data access level" msgstr "" -msgid "Select a level" -msgstr "Chọn mức" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "" + msgid "Give access" msgstr "" @@ -48,21 +57,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "Không truy cập" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "Có thể xem" +msgid "User group" +msgstr "Nhóm Người Dùng" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "Người dùng" -msgid "Metadata" -msgstr "Siêu dữ liệu" +msgid "Data" +msgstr "Dữ liệu" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "Siêu dữ liệu" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/i18n/zh.po b/components/sharing-dialog/i18n/zh.po index 8cb3054afa..b4c4cdad9c 100644 --- a/components/sharing-dialog/i18n/zh.po +++ b/components/sharing-dialog/i18n/zh.po @@ -1,16 +1,16 @@ # # Translators: -# Viktor Varland , 2021 # 晓东 林 <13981924470@126.com>, 2021 -# easylin , 2021 # Philip Larsen Donnelly, 2024 +# Viktor Varland , 2024 +# easylin , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: Philip Larsen Donnelly, 2024\n" +"Last-Translator: easylin , 2024\n" "Language-Team: Chinese (https://app.transifex.com/hisp-uio/teams/100509/zh/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,18 +24,27 @@ msgstr "只读" msgid "View and edit" msgstr "查看和编辑" +msgid "No access" +msgstr "不能访问" + msgid "Give access to a user or group" msgstr "授予用户或组访问权限" -msgid "Access level" -msgstr "访问等级" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "选择一个等级" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "离线不可用" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "访问等级" + msgid "Give access" msgstr "授予访问权限" @@ -48,21 +57,24 @@ msgstr "用户/组" msgid "All users" msgstr "全部用户" -msgid "No access" -msgstr "不能访问" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "可查看" +msgid "User group" +msgstr "用户组" -msgid "Can view and edit" -msgstr "可以查看和编辑" +msgid "User" +msgstr "用户" -msgid "Metadata" -msgstr "元数据" +msgid "Data" +msgstr "数据" msgid "Remove access" msgstr "删除访问权限" +msgid "Metadata" +msgstr "元数据" + msgid "User or group" msgstr "用户或组" diff --git a/components/sharing-dialog/i18n/zh_CN.po b/components/sharing-dialog/i18n/zh_CN.po index 9014cf151b..8cd72313df 100644 --- a/components/sharing-dialog/i18n/zh_CN.po +++ b/components/sharing-dialog/i18n/zh_CN.po @@ -1,14 +1,14 @@ # # Translators: -# 晓东 林 <13981924470@126.com>, 2021 -# easylin , 2023 +# easylin , 2024 +# 晓东 林 <13981924470@126.com>, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2021-11-25T09:59:40.995Z\n" +"POT-Creation-Date: 2024-11-07T15:20:34.373Z\n" "PO-Revision-Date: 2021-10-01 23:39+0000\n" -"Last-Translator: easylin , 2023\n" +"Last-Translator: 晓东 林 <13981924470@126.com>, 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/hisp-uio/teams/100509/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,18 +22,27 @@ msgstr "" msgid "View and edit" msgstr "" +msgid "No access" +msgstr "不能访问" + msgid "Give access to a user or group" msgstr "" -msgid "Access level" -msgstr "访问等级" +msgid "Data access level" +msgstr "" -msgid "Select a level" -msgstr "选择一个等级" +msgid "Choose a level" +msgstr "" msgid "Not available offline" msgstr "" +msgid "Metadata access level" +msgstr "" + +msgid "Access level" +msgstr "访问等级" + msgid "Give access" msgstr "" @@ -46,21 +55,24 @@ msgstr "" msgid "All users" msgstr "" -msgid "No access" -msgstr "不能访问" +msgid "Anyone logged in" +msgstr "" -msgid "Can view" -msgstr "可查看" +msgid "User group" +msgstr "User组" -msgid "Can view and edit" -msgstr "" +msgid "User" +msgstr "用户" -msgid "Metadata" -msgstr "元数据" +msgid "Data" +msgstr "数据" msgid "Remove access" msgstr "" +msgid "Metadata" +msgstr "元数据" + msgid "User or group" msgstr "" diff --git a/components/sharing-dialog/package.json b/components/sharing-dialog/package.json index 9e42c4d139..c5507aa8fb 100644 --- a/components/sharing-dialog/package.json +++ b/components/sharing-dialog/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/sharing-dialog", - "version": "9.12.0", + "version": "9.14.1", "description": "UI SharingDialog", "repository": { "type": "git", @@ -29,28 +29,28 @@ "peerDependencies": { "@dhis2/app-runtime": "^3", "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/card": "9.12.0", - "@dhis2-ui/divider": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/layer": "9.12.0", - "@dhis2-ui/menu": "9.12.0", - "@dhis2-ui/modal": "9.12.0", - "@dhis2-ui/notice-box": "9.12.0", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/select": "9.12.0", - "@dhis2-ui/tab": "9.12.0", - "@dhis2-ui/tooltip": "9.12.0", - "@dhis2-ui/user-avatar": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/card": "9.14.1", + "@dhis2-ui/divider": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/layer": "9.14.1", + "@dhis2-ui/menu": "9.14.1", + "@dhis2-ui/modal": "9.14.1", + "@dhis2-ui/notice-box": "9.14.1", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/select": "9.14.1", + "@dhis2-ui/tab": "9.14.1", + "@dhis2-ui/tooltip": "9.14.1", + "@dhis2-ui/user-avatar": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "@react-hook/size": "^2.1.2", "classnames": "^2.3.1", "prop-types": "^15.7.2" @@ -62,8 +62,8 @@ "devDependencies": { "@dhis2/app-runtime": "^3.9.0", "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/sharing-dialog/src/access-add/access-add.js b/components/sharing-dialog/src/access-add/access-add.js index b1d7f6c4f0..56ad8da119 100644 --- a/components/sharing-dialog/src/access-add/access-add.js +++ b/components/sharing-dialog/src/access-add/access-add.js @@ -5,15 +5,20 @@ import { SingleSelectField, SingleSelectOption } from '@dhis2-ui/select' import PropTypes from 'prop-types' import React, { useState, useContext } from 'react' import { SharingAutocomplete } from '../autocomplete/index.js' -import { ACCESS_VIEW_ONLY, ACCESS_VIEW_AND_EDIT } from '../constants.js' +import { + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, +} from '../constants.js' import { FetchingContext } from '../fetching-context/index.js' import i18n from '../locales/index.js' import { Title } from '../text/index.js' -export const AccessAdd = ({ onAdd }) => { +export const AccessAdd = ({ onAdd, dataSharing }) => { const isFetching = useContext(FetchingContext) const [entity, setEntity] = useState(null) - const [access, setAccess] = useState('') + const [dataAccess, setDataAccess] = useState('') + const [metadataAccess, setMetadataAccess] = useState('') const { isDisconnected: offline } = useDhis2ConnectionStatus() const onSubmit = (e) => { @@ -23,14 +28,15 @@ export const AccessAdd = ({ onAdd }) => { type: entity.type, id: entity.id, name: entity.displayName || entity.name, - access, + access: { data: dataAccess, metadata: metadataAccess }, }) setEntity(null) - setAccess('') + setDataAccess('') + setMetadataAccess('') } - const accessOptions = [ + const accessOptionsMetadata = [ { value: ACCESS_VIEW_ONLY, label: i18n.t('View only'), @@ -41,41 +47,109 @@ export const AccessAdd = ({ onAdd }) => { }, ] + const accessOptionsData = [ + ...accessOptionsMetadata, + { + value: ACCESS_NONE, + label: i18n.t('No access'), + }, + ] + return ( <> {i18n.t('Give access to a user or group')}
- -
- + +
+
+ {dataSharing && ( +
+ + setDataAccess(selected) + } + > + {accessOptionsData.map(({ value, label }) => ( + + ))} + +
+ )} +
+ + setMetadataAccess(selected) + } + > + {(dataSharing + ? accessOptionsData + : accessOptionsMetadata + ).map(({ value, label }) => ( + + ))} + +
+
- ) @@ -99,4 +194,5 @@ export const AccessAdd = ({ onAdd }) => { AccessAdd.propTypes = { onAdd: PropTypes.func.isRequired, + dataSharing: PropTypes.bool, } diff --git a/components/sharing-dialog/src/access-list/access-list.js b/components/sharing-dialog/src/access-list/access-list.js index 8949cf73ba..e71faa95a6 100644 --- a/components/sharing-dialog/src/access-list/access-list.js +++ b/components/sharing-dialog/src/access-list/access-list.js @@ -20,121 +20,178 @@ export const AccessList = ({ allowPublicAccess, users, groups, -}) => ( - <> - {i18n.t('Users and groups that currently have access')} -
-
{i18n.t('User / Group')}
-
{i18n.t('Access level')}
-
-
- - onChange({ type: 'public', access: newAccess }) - } - /> - {groups.map(({ id, name, access }) => ( + dataSharing, +}) => { + const accessOptions = [ACCESS_NONE, ACCESS_VIEW_ONLY, ACCESS_VIEW_AND_EDIT] + return ( + <> + + {i18n.t('Users and groups that currently have access')} + +
+
+ {i18n.t('User / Group')} +
+
+ {i18n.t('Access level')} +
+
+
- onChange({ - type: 'group', - id, - access: newAccess, - }) + onChange({ type: 'public', access: newAccess }) } - onRemove={() => onRemove({ type: 'group', id })} + dataSharing={dataSharing} + allUsersItem={true} /> - ))} - {users.map( - ({ id, name, access }) => - access && ( - - onChange({ - type: 'user', - id, - access: newAccess, - }) - } - onRemove={() => onRemove({ type: 'user', id })} - /> - ) - )} -
- - -) + .header-end-column-data { + margin-inline-start: auto; + width: 65%; + } + + .hea { + display: inline-block; + margin-inline-start: 8px; + } + + .list { + display: flex; + flex-direction: column; + overflow-y: auto; + } + `} + + ) +} AccessList.propTypes = { allowPublicAccess: PropTypes.bool.isRequired, + dataSharing: PropTypes.bool.isRequired, groups: PropTypes.arrayOf( PropTypes.shape({ - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, + access: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }), }) ).isRequired, - publicAccess: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + publicAccess: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, users: PropTypes.arrayOf( PropTypes.shape({ - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + access: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }) diff --git a/components/sharing-dialog/src/access-list/list-item-context.js b/components/sharing-dialog/src/access-list/list-item-context.js index e996cfee97..894fa4a73a 100644 --- a/components/sharing-dialog/src/access-list/list-item-context.js +++ b/components/sharing-dialog/src/access-list/list-item-context.js @@ -2,32 +2,22 @@ import { colors } from '@dhis2/ui-constants' import PropTypes from 'prop-types' import React from 'react' import { - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, + SHARE_TARGET_PUBLIC, + SHARE_TARGET_GROUP, + SHARE_TARGET_USER, } from '../constants.js' import i18n from '../locales/index.js' -export const ListItemContext = ({ access }) => { - let message - - switch (access) { - case ACCESS_NONE: - message = i18n.t('No access') - break - case ACCESS_VIEW_ONLY: - message = i18n.t('Can view') - break - case ACCESS_VIEW_AND_EDIT: - message = i18n.t('Can view and edit') - break - default: - message = '' - } +const LABELS = { + [SHARE_TARGET_PUBLIC]: i18n.t('Anyone logged in'), + [SHARE_TARGET_GROUP]: i18n.t('User group'), + [SHARE_TARGET_USER]: i18n.t('User'), +} +export const ListItemContext = ({ target, id }) => { return ( -

- {message} + <> +

{target === SHARE_TARGET_USER ? id : LABELS[target] ?? ''}

-

+ ) } ListItemContext.propTypes = { - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, + target: PropTypes.oneOf([ + SHARE_TARGET_PUBLIC, + SHARE_TARGET_GROUP, + SHARE_TARGET_USER, ]).isRequired, + id: PropTypes.string, } diff --git a/components/sharing-dialog/src/access-list/list-item.js b/components/sharing-dialog/src/access-list/list-item.js index 207824b1a4..e9c7809531 100644 --- a/components/sharing-dialog/src/access-list/list-item.js +++ b/components/sharing-dialog/src/access-list/list-item.js @@ -19,14 +19,24 @@ import i18n from '../locales/index.js' import { ListItemContext } from './list-item-context.js' import { ListItemIcon } from './list-item-icon.js' +const isRemoveEnabled = ({ dataSharing, accessOtherField }) => { + if (!dataSharing) { + return true + } + return accessOtherField === ACCESS_NONE +} + export const ListItem = ({ name, + id, target, access, accessOptions, disabled, onChange, onRemove, + dataSharing, + allUsersItem = false, }) => { const isFetching = useContext(FetchingContext) const { isDisconnected: offline } = useDhis2ConnectionStatus() @@ -39,38 +49,97 @@ export const ListItem = ({ return ( <>
-
+

{name}

- +
-
- onChange(selected)} - > - {accessOptions.map((value) => ( - - ))} - {isRemovableTarget(target) && ( - - )} - +
+ {dataSharing && ( +
+ + onChange({ ...access, data: selected }) + } + > + {accessOptions.map((value) => ( + + ))} + {isRemovableTarget(target) && + isRemoveEnabled({ + accessOtherField: access.metadata, + dataSharing, + }) && ( + + )} + +
+ )} +
+ + onChange({ ...access, metadata: selected }) + } + > + {accessOptions.map((value) => ( + + ))} + {isRemovableTarget(target) && + isRemoveEnabled({ + accessOtherField: access.data, + dataSharing, + }) && ( + + )} + +
@@ -78,11 +147,17 @@ export const ListItem = ({ .wrapper { display: flex; padding: 4px 8px; + justify-content: space-between; + } + + .detailsMetadata { + display: flex; + width: 65%; } - .details { + .detailsWithData { display: flex; - flex: 2; + width: 35%; } .details-text { @@ -97,7 +172,16 @@ export const ListItem = ({ padding: 0; } + .selectWrapperMetadata { + display: flex; + width: 35%; + } + .selectWrapperWithData { + display: flex; + width: 65%; + } .select { + margin-inline-start: 8px; flex: 1; } `} @@ -106,14 +190,22 @@ export const ListItem = ({ } ListItem.propTypes = { - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + access: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, accessOptions: PropTypes.arrayOf( PropTypes.oneOf([ACCESS_NONE, ACCESS_VIEW_ONLY, ACCESS_VIEW_AND_EDIT]) ).isRequired, + dataSharing: PropTypes.bool.isRequired, name: PropTypes.string.isRequired, target: PropTypes.oneOf([ SHARE_TARGET_PUBLIC, @@ -121,6 +213,8 @@ ListItem.propTypes = { SHARE_TARGET_USER, ]).isRequired, onChange: PropTypes.func.isRequired, + allUsersItem: PropTypes.bool, disabled: PropTypes.bool, + id: PropTypes.string, onRemove: PropTypes.func, } diff --git a/components/sharing-dialog/src/autocomplete/sharing-autocomplete.js b/components/sharing-dialog/src/autocomplete/sharing-autocomplete.js index 45b45fe2f7..6a64510c20 100644 --- a/components/sharing-dialog/src/autocomplete/sharing-autocomplete.js +++ b/components/sharing-dialog/src/autocomplete/sharing-autocomplete.js @@ -70,7 +70,7 @@ export const SharingAutocomplete = ({ selected, onSelection }) => { return ( { ) const searchString = userDisplayName.slice(0, 3) - userEvent.type(screen.getByRole('textbox'), searchString) + await userEvent.type(screen.getByRole('textbox'), searchString) expect(screen.getByRole('textbox')).toHaveValue(searchString) - await waitForElementToBeRemoved(() => screen.getByRole('progressbar')) - - userEvent.click(screen.getByRole('menuitem')) + await userEvent.click(screen.getByRole('menuitem')) expect(screen.getByRole('textbox')).toHaveValue(userDisplayName) try { diff --git a/components/sharing-dialog/src/features/access-level-change.feature b/components/sharing-dialog/src/features/access-level-change.feature index b1b97d1ab7..e4af4fa902 100644 --- a/components/sharing-dialog/src/features/access-level-change.feature +++ b/components/sharing-dialog/src/features/access-level-change.feature @@ -4,7 +4,7 @@ Feature: Allows users to view and change the access level for specific entities Given a sharing dialog with item with is visible When the user sets the access level to Then the access control should be set to - And the section should be labeled for + And the section should be labeled for Scenarios: | initial | target | changed | diff --git a/components/sharing-dialog/src/features/access-level-change/index.js b/components/sharing-dialog/src/features/access-level-change/index.js index 099ceecc1c..3245328b1c 100644 --- a/components/sharing-dialog/src/features/access-level-change/index.js +++ b/components/sharing-dialog/src/features/access-level-change/index.js @@ -22,7 +22,7 @@ Given('a sharing dialog with all users item with no access is visible', () => { cy.contains('.details-text', 'All users') .should('be.visible') - .contains('No access') + .contains('Anyone logged in') .should('be.visible') .closest('.wrapper') .as('all-users-list-item') @@ -45,7 +45,7 @@ Given('a sharing dialog with user item with view is visible', () => { cy.contains('.details-text', 'A user') .should('be.visible') - .contains('Can view') + .contains('user-1') .should('be.visible') .closest('.wrapper') .as('user-list-item') @@ -68,7 +68,7 @@ Given('a sharing dialog with group item with view is visible', () => { cy.contains('.details-text', 'A group') .should('be.visible') - .contains('Can view') + .contains('User group') .should('be.visible') .closest('.wrapper') .as('group-list-item') @@ -235,26 +235,20 @@ Then('the group access control should be set to view and edit', () => { * the section should be labeled for */ -Then('the all users section should be labeled for view only', () => { +Then('the all users section should be labeled for all users', () => { cy.get('@all-users-list-item') - .contains('.details-text', 'Can view') + .contains('.details-text', 'Anyone logged in') .should('be.visible') }) -Then('the all users section should be labeled for view and edit', () => { - cy.get('@all-users-list-item') - .contains('.details-text', 'Can view and edit') - .should('be.visible') -}) - -Then('the user section should be labeled for view and edit', () => { +Then('the user section should be labeled for user', () => { cy.get('@user-list-item') - .contains('.details-text', 'Can view and edit') + .contains('.details-text', 'user-1') .should('be.visible') }) -Then('the group section should be labeled for view and edit', () => { +Then('the group section should be labeled for group', () => { cy.get('@group-list-item') - .contains('.details-text', 'Can view and edit') + .contains('.details-text', 'User group') .should('be.visible') }) diff --git a/components/sharing-dialog/src/features/access-level-remove/index.js b/components/sharing-dialog/src/features/access-level-remove/index.js index 998224fdba..9029c1560a 100644 --- a/components/sharing-dialog/src/features/access-level-remove/index.js +++ b/components/sharing-dialog/src/features/access-level-remove/index.js @@ -21,10 +21,14 @@ Given('a sharing dialog with user item with view is visible', () => { cy.contains('.details-text', 'A user') .should('be.visible') - .contains('Can view') + .contains('user-1') .should('be.visible') .closest('.wrapper') .as('user-list-item') + + cy.get('@user-list-item') + .contains('[data-test="dhis2-uicore-singleselect"]', 'View only') + .should('be.visible') }) Given('a sharing dialog with user item with view and edit is visible', () => { @@ -36,10 +40,14 @@ Given('a sharing dialog with user item with view and edit is visible', () => { cy.contains('.details-text', 'A user') .should('be.visible') - .contains('Can view and edit') + .contains('user-1') .should('be.visible') .closest('.wrapper') .as('user-list-item') + + cy.get('@user-list-item') + .contains('[data-test="dhis2-uicore-singleselect"]', 'View and edit') + .should('be.visible') }) Given('a sharing dialog with group item with view is visible', () => { @@ -51,10 +59,14 @@ Given('a sharing dialog with group item with view is visible', () => { cy.contains('.details-text', 'A group') .should('be.visible') - .contains('Can view') + .contains('User group') .should('be.visible') .closest('.wrapper') .as('group-list-item') + + cy.get('@group-list-item') + .contains('[data-test="dhis2-uicore-singleselect"]', 'View only') + .should('be.visible') }) Given('a sharing dialog with group item with view and edit is visible', () => { @@ -66,10 +78,14 @@ Given('a sharing dialog with group item with view and edit is visible', () => { cy.contains('.details-text', 'A group') .should('be.visible') - .contains('Can view and edit') + .contains('User group') .should('be.visible') .closest('.wrapper') .as('group-list-item') + + cy.get('@group-list-item') + .contains('[data-test="dhis2-uicore-singleselect"]', 'View and edit') + .should('be.visible') }) /** diff --git a/components/sharing-dialog/src/features/add-entity/index.js b/components/sharing-dialog/src/features/add-entity/index.js index b64dbc7d61..8dfea087db 100644 --- a/components/sharing-dialog/src/features/add-entity/index.js +++ b/components/sharing-dialog/src/features/add-entity/index.js @@ -42,7 +42,7 @@ When('the user gives user view only access', () => { cy.get('[placeholder="Search"]').type('A user') cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A user').click() - cy.contains('Select a level').click() + cy.contains('Choose a level').click() cy.contains( '[data-test="dhis2-uicore-singleselectoption"]', 'View only' @@ -69,7 +69,7 @@ When('the user gives user view and edit access', () => { cy.get('[placeholder="Search"]').type('A user') cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A user').click() - cy.contains('Select a level').click() + cy.contains('Choose a level').click() cy.contains( '[data-test="dhis2-uicore-singleselectoption"]', 'View and edit' @@ -96,7 +96,7 @@ When('the user gives group view only access', () => { cy.get('[placeholder="Search"]').type('A group') cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A group').click() - cy.contains('Select a level').click() + cy.contains('Choose a level').click() cy.contains( '[data-test="dhis2-uicore-singleselectoption"]', 'View only' @@ -123,7 +123,7 @@ When('the user gives group view and edit access', () => { cy.get('[placeholder="Search"]').type('A group') cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A group').click() - cy.contains('Select a level').click() + cy.contains('Choose a level').click() cy.contains( '[data-test="dhis2-uicore-singleselectoption"]', 'View and edit' @@ -152,7 +152,7 @@ Then( () => { cy.contains('.wrapper', 'A user').should('be.visible').as('user-item') - cy.get('@user-item').contains('Can view').should('be.visible') + cy.get('@user-item').contains('user-1').should('be.visible') cy.get('@user-item').contains('View only').should('be.visible') } ) @@ -162,7 +162,7 @@ Then( () => { cy.contains('.wrapper', 'A user').should('be.visible').as('user-item') - cy.get('@user-item').contains('Can view and edit').should('be.visible') + cy.get('@user-item').contains('user-1').should('be.visible') cy.get('@user-item').contains('View and edit').should('be.visible') } ) @@ -172,7 +172,7 @@ Then( () => { cy.contains('.wrapper', 'A group').should('be.visible').as('group-item') - cy.get('@group-item').contains('Can view').should('be.visible') + cy.get('@group-item').contains('User group').should('be.visible') cy.get('@group-item').contains('View only').should('be.visible') } ) @@ -182,7 +182,7 @@ Then( () => { cy.contains('.wrapper', 'A group').should('be.visible').as('group-item') - cy.get('@group-item').contains('Can view and edit').should('be.visible') + cy.get('@group-item').contains('User group').should('be.visible') cy.get('@group-item').contains('View and edit').should('be.visible') } ) diff --git a/components/sharing-dialog/src/features/data-sharing.feature b/components/sharing-dialog/src/features/data-sharing.feature new file mode 100644 index 0000000000..35f8d0f70b --- /dev/null +++ b/components/sharing-dialog/src/features/data-sharing.feature @@ -0,0 +1,91 @@ +Feature: Setting data sharing is possible when sharing dialog is set to include data sharing + + + + Scenario Outline: User can add a new entity with specified data and metadata sharing + Given a sharing dialog that allows adding user and group entities with data sharing is visible + When the user selects a new entity + And the user chooses metadata access + And the user chooses data access + And the user clicks Give access button to give target data access and metadata access + Then the should be added to the access list + And the should have metadata access + And the should have data access + And the autocomplete input should be cleared + + Scenarios: + | target | datalevel | metadatalevel | datalevelstring | metadatalevelstring | + | user | view only | view only | "View only" | "View only" | + | group | view only | view only | "View only" | "View only" | + +# Scenario: user can change access type + + Scenario Outline: User can change the data access level from to for with metadata access + Given a sharing dialog with item with data access and metadata access + When the user sets the data access level to , and leaves metadata as + Then the data access control should be set to + And the metadata access control should remain + + Scenarios: + | target | initial | changed | metadata | + | all users | "No access" | "View and edit" | "No access" | + | user | "View only" | "View and edit" | "No access" | + | group | "View and edit" | "View only" | "View only" | + + +# Scenario: user can remove access from data access select if metadata is No access + + Scenario Outline: User can remove access for a if metadata access is No access and data access is + Given a sharing dialog with item with data access and "No access" metadata access + When the user clicks to remove the access for the from the "Data" access select + Then the item should be removed + + Scenarios: + | target | data-access-level | + | user | "View only" | + | group | "View only" | + +# Scenario: user can remove access from metadata access select if data is No access + Scenario Outline: User can remove access for a if data access is No access and metadata access is + Given a sharing dialog with item with "No access" data access and metadata access + When the user clicks to remove the access for the from the "Metadata" access select + Then the item should be removed + + Scenarios: + | target | metadata-access-level | + | user | "View only" | + | group | "View and edit" | + +# Scenario: user cannot remove access from Data access level by if and are both not No access + + Scenario Outline: User cannot remove access for a from Data access when metadata access is set to something other than No access + Given a sharing dialog with item with data access and metadata access + Then the "Data" access level options do not contain Remove access + + Scenarios: + | target | data-access-level | metadata-access-level | + | user | "View only" | "View only" | + | group | "View and edit" | "View only" | + +# Scenario: user cannot remove access from Data access level for all users + + Scenario Outline: User cannot remove access for all users + Given a sharing dialog with item with data access and metadata access + Then the "Data" access level options do not contain Remove access + + Scenarios: + | target | data-access-level | metadata-access-level | + | all users | "No access" | "No access" | + +# Scenario: user can remove access from data access level by first setting metadata to No Access + + Scenario Outline: User can remove access for a from data access when metadata access is set to No access + Given a sharing dialog with item with data access and metadata access + When the user sets the metadata access level to No access and leaves data access as + And the user clicks to remove the access for the from the access select + Then the item should be removed + + Scenarios: + | target | data-access-level | metadata-access-level | type | + | user | "View only" | "View only" | "Data" | + | group | "View only" | "View and edit" | "Data" | diff --git a/components/sharing-dialog/src/features/data-sharing/index.js b/components/sharing-dialog/src/features/data-sharing/index.js new file mode 100644 index 0000000000..96d4e634c3 --- /dev/null +++ b/components/sharing-dialog/src/features/data-sharing/index.js @@ -0,0 +1,773 @@ +import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor' +import { + noAccess, + searchUser, + userNoAccess, + searchGroup, + getGroupWithDataAndMetadataAccess, + getUserWithDataAndMetadataAccess, + getAllUsersWithDataAndMetadataAccess, + groupNoAccess, +} from '../fixtures/index.js' + +/** + * a sharing dialog that allows adding entities is visible + */ + +Given( + 'a sharing dialog that allows adding user and group entities with data sharing is visible', + () => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: noAccess, + }) + + cy.visitStory('sharing-dialog', 'data') + cy.contains('Give access to a user or group').should('be.visible') + cy.contains('Data access level').should('be.visible') + cy.contains('Metadata access level').should('be.visible') + } +) + +When('the user selects a new user entity', () => { + cy.intercept('GET', '/api/38/sharing/search?key=A%20user', { + body: searchUser, + }) + cy.get('[placeholder="Search"]').type('A user') + cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A user').click() +}) + +When('the user selects a new group entity', () => { + cy.intercept('GET', '/api/38/sharing/search?key=A%20group', { + body: searchGroup, + }) + cy.get('[placeholder="Search"]').type('A group') + cy.contains('[data-test="dhis2-uicore-menuitem"]', 'A group').click() +}) + +When('the user chooses view only data access', () => { + cy.contains('Data access level') + .parent() + .within(() => { + cy.contains('Choose a level').click() + }) + cy.contains( + '[data-test="dhis2-uicore-singleselectoption"]', + 'View only' + ).click() +}) + +When('the user chooses view only metadata access', () => { + cy.contains('Metadata access level') + .parent() + .within(() => { + cy.contains('Choose a level').click() + }) + cy.contains( + '[data-test="dhis2-uicore-singleselectoption"]', + 'View only' + ).click() +}) + +When( + 'the user clicks Give access button to give target user {string} data access and {string} metadata access', + (dataaccess, metadataaccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getUserWithDataAndMetadataAccess( + metadataaccess, + dataaccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getUserWithDataAndMetadataAccess(metadataaccess, dataaccess), + }) + + cy.contains('button', 'Give access').click() + } +) + +When( + 'the user clicks Give access button to give target group {string} data access and {string} metadata access', + (dataaccess, metadataaccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getGroupWithDataAndMetadataAccess( + metadataaccess, + dataaccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getGroupWithDataAndMetadataAccess(metadataaccess, dataaccess), + }) + + cy.contains('button', 'Give access').click() + } +) + +Then('the user should be added to the access list', () => { + cy.contains('.wrapper', 'A user').should('be.visible').as('user-item') + + cy.get('@user-item').contains('user-1').should('be.visible') +}) + +Then('the group should be added to the access list', () => { + cy.contains('.wrapper', 'A group').should('be.visible').as('group-item') + + cy.get('@group-item').contains('User group').should('be.visible') +}) + +Then('the user should have {string} metadata access', (metadataString) => { + cy.contains('.wrapper', 'A user').as('user-item') + + cy.get('@user-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadataString).should('be.visible') + }) + }) +}) + +Then('the group should have {string} metadata access', (metadataString) => { + cy.contains('.wrapper', 'A group').as('group-item') + + cy.get('@group-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadataString).should('be.visible') + }) + }) +}) + +Then('the user should have {string} data access', (dataString) => { + cy.contains('.wrapper', 'A user').as('user-item') + + cy.get('@user-item').within(() => { + cy.contains('[data-test="dhis2-uicore-singleselect"]', 'Data').within( + () => { + cy.contains(dataString).should('be.visible') + } + ) + }) +}) + +Then('the group should have {string} data access', (dataString) => { + cy.contains('.wrapper', 'A group').as('group-item') + + cy.get('@group-item').within(() => { + cy.contains('[data-test="dhis2-uicore-singleselect"]', 'Data').within( + () => { + cy.contains(dataString).should('be.visible') + } + ) + }) +}) + +Then('the autocomplete input should be cleared', () => { + cy.get('form input').invoke('val').should('be.empty') +}) + +Given( + 'a sharing dialog with user item with {string} data access and {string} metadata access', + (datalevel, metadatalevel) => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getUserWithDataAndMetadataAccess(metadatalevel, datalevel), + }) + cy.visitStory('sharing-dialog', 'data') + cy.contains('Sharing and access').should('be.visible') + + cy.contains('.details-text', 'A user') + .should('be.visible') + .contains('user-1') + .should('be.visible') + .closest('.wrapper') + .as('user-list-item') + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(datalevel).should('be.visible') + }) + }) + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadatalevel).should('be.visible') + }) + }) + } +) + +Given( + 'a sharing dialog with group item with {string} data access and {string} metadata access', + (datalevel, metadatalevel) => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getGroupWithDataAndMetadataAccess(metadatalevel, datalevel), + }) + cy.visitStory('sharing-dialog', 'data') + cy.contains('Sharing and access').should('be.visible') + + cy.contains('.details-text', 'A group') + .should('be.visible') + .contains('User group') + .should('be.visible') + .closest('.wrapper') + .as('group-list-item') + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(datalevel).should('be.visible') + }) + }) + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadatalevel).should('be.visible') + }) + }) + } +) + +Given( + 'a sharing dialog with all users item with {string} data access and {string} metadata access', + (datalevel, metadatalevel) => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getAllUsersWithDataAndMetadataAccess( + metadatalevel, + datalevel + ), + }) + cy.visitStory('sharing-dialog', 'data') + cy.contains('Sharing and access').should('be.visible') + + cy.contains('.details-text', 'All users') + .should('be.visible') + .contains('Anyone logged in') + .should('be.visible') + .closest('.wrapper') + .as('all-users-list-item') + + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(datalevel).should('be.visible') + }) + }) + + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadatalevel).should('be.visible') + }) + }) + } +) + +When( + 'the user sets the user data access level to {string}, and leaves metadata as {string}', + (dataAccess, metadataAccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getUserWithDataAndMetadataAccess( + metadataAccess, + dataAccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getUserWithDataAndMetadataAccess(metadataAccess, dataAccess), + }) + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).click() + }) + + cy.contains( + '[data-test="dhis2-uicore-select-menu-menuwrapper"] [data-test="dhis2-uicore-singleselectoption"]', + dataAccess + ) + .should('be.visible') + .click() + + // Menu should be closed before continuing + cy.get('[data-test="dhis2-uicore-select-menu-menuwrapper"]').should( + 'not.exist' + ) + } +) + +When( + 'the user sets the group data access level to {string}, and leaves metadata as {string}', + (dataAccess, metadataAccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getGroupWithDataAndMetadataAccess( + metadataAccess, + dataAccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getGroupWithDataAndMetadataAccess(metadataAccess, dataAccess), + }) + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).click() + }) + + cy.contains( + '[data-test="dhis2-uicore-select-menu-menuwrapper"] [data-test="dhis2-uicore-singleselectoption"]', + dataAccess + ) + .should('be.visible') + .click() + + // Menu should be closed before continuing + cy.get('[data-test="dhis2-uicore-select-menu-menuwrapper"]').should( + 'not.exist' + ) + } +) + +When( + 'the user sets the all users data access level to {string}, and leaves metadata as {string}', + (dataAccess, metadataAccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getAllUsersWithDataAndMetadataAccess( + metadataAccess, + dataAccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getAllUsersWithDataAndMetadataAccess( + metadataAccess, + dataAccess + ), + }) + + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).click() + }) + + cy.contains( + '[data-test="dhis2-uicore-select-menu-menuwrapper"] [data-test="dhis2-uicore-singleselectoption"]', + dataAccess + ) + .should('be.visible') + .click() + + // Menu should be closed before continuing + cy.get('[data-test="dhis2-uicore-select-menu-menuwrapper"]').should( + 'not.exist' + ) + } +) + +Then( + 'the user data access control should be set to {string}', + (newDataAccess) => { + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(newDataAccess).should('be.visible') + }) + }) + } +) + +Then( + 'the group data access control should be set to {string}', + (newDataAccess) => { + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(newDataAccess).should('be.visible') + }) + }) + } +) + +Then( + 'the all users data access control should be set to {string}', + (newDataAccess) => { + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(newDataAccess).should('be.visible') + }) + }) + } +) + +Then( + 'the user metadata access control should remain {string}', + (metadataAccess) => { + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadataAccess).should('be.visible') + }) + }) + } +) + +Then( + 'the group metadata access control should remain {string}', + (metadataAccess) => { + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadataAccess).should('be.visible') + }) + }) + } +) + +Then( + 'the all users metadata access control should remain {string}', + (metadataAccess) => { + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains(metadataAccess).should('be.visible') + }) + }) + } +) + +// a sharing dialog with item with for data and No access for metadata is visible + +When( + 'a sharing dialog with user item with {string} for data and No access for metadata is visible', + (dataAccess) => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getUserWithDataAndMetadataAccess('No access', dataAccess), + }) + cy.visitStory('sharing-dialog', 'data') + cy.contains('Sharing and access').should('be.visible') + + cy.contains('.details-text', 'A user') + .should('be.visible') + .contains('user-1') + .should('be.visible') + .closest('.wrapper') + .as('user-list-item') + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(dataAccess).should('be.visible') + }) + }) + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains('No access').should('be.visible') + }) + }) + } +) + +When( + 'a sharing dialog with group item with {string} for data and No access for metadata is visible', + (dataAccess) => { + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getGroupWithDataAndMetadataAccess('No access', dataAccess), + }) + cy.visitStory('sharing-dialog', 'data') + cy.contains('Sharing and access').should('be.visible') + + cy.contains('.details-text', 'A group') + .should('be.visible') + .contains('User group') + .should('be.visible') + .closest('.wrapper') + .as('group-list-item') + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Data' + ).within(() => { + cy.contains(dataAccess).should('be.visible') + }) + }) + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).within(() => { + cy.contains('No access').should('be.visible') + }) + }) + } +) + +When( + 'the user clicks to remove the access for the user from the {string} access select', + (type) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: userNoAccess.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: userNoAccess, + }) + + cy.get('@user-list-item').within(() => { + cy.contains('[data-test="dhis2-uicore-singleselect"]', type).click() + }) + + cy.contains('Remove access').should('be.visible').click() + } +) + +When( + 'the user clicks to remove the access for the group from the {string} access select', + (type) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: groupNoAccess.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: groupNoAccess, + }) + + cy.get('@group-list-item').within(() => { + cy.contains('[data-test="dhis2-uicore-singleselect"]', type).click() + }) + + cy.contains('Remove access').should('be.visible').click() + } +) + +Then('the user item should be removed', () => { + cy.contains('.details-text', 'A user').should('not.exist') +}) + +Then('the group item should be removed', () => { + cy.contains('.details-text', 'A group').should('not.exist') +}) + +When( + 'the user sets the user metadata access level to No access and leaves data access as {string}', + (dataAccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getUserWithDataAndMetadataAccess( + 'No access', + dataAccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getUserWithDataAndMetadataAccess('No access', dataAccess), + }) + + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).click() + }) + + cy.contains( + '[data-test="dhis2-uicore-select-menu-menuwrapper"] [data-test="dhis2-uicore-singleselectoption"]', + 'No access' + ) + .should('be.visible') + .click() + + // Menu should be closed before continuing + cy.get('[data-test="dhis2-uicore-select-menu-menuwrapper"]').should( + 'not.exist' + ) + } +) + +When( + 'the user sets the group metadata access level to No access and leaves data access as {string}', + (dataAccess) => { + cy.intercept( + 'PUT', + '/api/38/sharing?type=visualization&id=id', + (req) => { + const expected = { + object: getGroupWithDataAndMetadataAccess( + 'No access', + dataAccess + )?.object, + } + expect(req.body).to.deep.equal(expected) + req.reply({ statusCode: 200 }) + } + ) + cy.intercept('GET', '/api/38/sharing?type=visualization&id=id', { + body: getGroupWithDataAndMetadataAccess('No access', dataAccess), + }) + + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + 'Metadata' + ).click() + }) + + cy.contains( + '[data-test="dhis2-uicore-select-menu-menuwrapper"] [data-test="dhis2-uicore-singleselectoption"]', + 'No access' + ) + .should('be.visible') + .click() + + // Menu should be closed before continuing + cy.get('[data-test="dhis2-uicore-select-menu-menuwrapper"]').should( + 'not.exist' + ) + } +) + +Then( + 'the user {string} access level options do not contain Remove access', + (sharingType) => { + cy.get('@user-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + sharingType + ).click() + }) + + cy.contains('Remove access').should('not.exist') + } +) + +Then( + 'the group {string} access level options do not contain Remove access', + (sharingType) => { + cy.get('@group-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + sharingType + ).click() + }) + + cy.contains('Remove access').should('not.exist') + } +) + +Then( + 'the all users {string} access level options do not contain Remove access', + (sharingType) => { + cy.get('@all-users-list-item').within(() => { + cy.contains( + '[data-test="dhis2-uicore-singleselect"]', + sharingType + ).click() + }) + + cy.contains('Remove access').should('not.exist') + } +) diff --git a/components/sharing-dialog/src/features/fixtures/get-object-data-metadata-access.js b/components/sharing-dialog/src/features/fixtures/get-object-data-metadata-access.js new file mode 100644 index 0000000000..144fa4c196 --- /dev/null +++ b/components/sharing-dialog/src/features/fixtures/get-object-data-metadata-access.js @@ -0,0 +1,84 @@ +const convertAccess = (access) => { + if (access === 'View only') { + return 'r-' + } + if (access === 'View and edit') { + return 'rw' + } + return '--' +} + +export const getUserWithDataAndMetadataAccess = ( + metadataaccess, + dataaccess +) => ({ + meta: { + allowExternalAccess: false, + allowPublicAccess: false, + }, + object: { + id: 'id', + name: '', + displayName: '', + externalAccess: false, + publicAccess: '--------', + userAccesses: [ + { + id: 'user-1', + name: 'A user', + access: `${convertAccess(metadataaccess)}${convertAccess( + dataaccess + )}----`, + }, + ], + userGroupAccesses: [], + }, +}) + +export const getGroupWithDataAndMetadataAccess = ( + metadataaccess, + dataaccess +) => ({ + meta: { + allowExternalAccess: false, + allowPublicAccess: false, + }, + object: { + id: 'id', + name: '', + displayName: '', + externalAccess: false, + publicAccess: '--------', + userAccesses: [], + userGroupAccesses: [ + { + id: 'group-1', + name: 'A group', + access: `${convertAccess(metadataaccess)}${convertAccess( + dataaccess + )}----`, + }, + ], + }, +}) + +export const getAllUsersWithDataAndMetadataAccess = ( + metadataaccess, + dataaccess +) => ({ + meta: { + allowExternalAccess: true, + allowPublicAccess: true, + }, + object: { + id: 'id', + name: '', + displayName: '', + externalAccess: false, + publicAccess: `${convertAccess(metadataaccess)}${convertAccess( + dataaccess + )}----`, + userAccesses: [], + userGroupAccesses: [], + }, +}) diff --git a/components/sharing-dialog/src/features/fixtures/index.js b/components/sharing-dialog/src/features/fixtures/index.js index c29b40e121..b6b41b2039 100644 --- a/components/sharing-dialog/src/features/fixtures/index.js +++ b/components/sharing-dialog/src/features/fixtures/index.js @@ -4,6 +4,11 @@ import allUsersViewEditAccess from './all-users-view-edit-access.json' import dashboardSharing from './dashboard-sharing.json' import dashboards from './dashboards.json' import disabledAccess from './disabled-access.json' +import { + getUserWithDataAndMetadataAccess, + getGroupWithDataAndMetadataAccess, + getAllUsersWithDataAndMetadataAccess, +} from './get-object-data-metadata-access.js' import groupNoAccess from './group-no-access.json' import groupViewAccess from './group-view-access.json' import groupViewEditAccess from './group-view-edit-access.json' @@ -34,4 +39,7 @@ export { userViewEditAccess, withDisplayname, withoutDisplayname, + getGroupWithDataAndMetadataAccess, + getUserWithDataAndMetadataAccess, + getAllUsersWithDataAndMetadataAccess, } diff --git a/components/sharing-dialog/src/helpers/__tests__/helpers.test.js b/components/sharing-dialog/src/helpers/__tests__/helpers.test.js index a1d95b1d9a..7c8679dce4 100644 --- a/components/sharing-dialog/src/helpers/__tests__/helpers.test.js +++ b/components/sharing-dialog/src/helpers/__tests__/helpers.test.js @@ -6,70 +6,85 @@ import { SHARE_TARGET_PUBLIC, } from '../../constants.js' import { - convertAccessToConstant, - convertConstantToAccess, + convertAccessToConstantObject, + convertConstantObjectToAccess, isRemovableTarget, } from '../helpers.js' describe('helpers', () => { - describe('convertAccessToConstant', () => { + describe('convertAccessToConstantObject', () => { it('disallows access if the access string is undefined', () => { - expect(convertAccessToConstant()).toEqual(ACCESS_NONE) + const NO_ACCESS_OBJECT = { + data: ACCESS_NONE, + metadata: ACCESS_NONE, + } + expect(convertAccessToConstantObject()).toEqual(NO_ACCESS_OBJECT) }) it('disallows access if the access string is invalid', () => { - expect(convertAccessToConstant('invalid-access-string')).toEqual( - ACCESS_NONE - ) + const NO_ACCESS_OBJECT = { + data: ACCESS_NONE, + metadata: ACCESS_NONE, + } + expect( + convertAccessToConstantObject('invalid-access-string') + ).toEqual(NO_ACCESS_OBJECT) }) const cases = [ - ['--------', ACCESS_NONE], - ['r-------', ACCESS_VIEW_ONLY], - ['r-r-----', ACCESS_VIEW_ONLY], - ['rw------', ACCESS_VIEW_AND_EDIT], - ['rwrw----', ACCESS_VIEW_AND_EDIT], + ['--------', { data: ACCESS_NONE, metadata: ACCESS_NONE }], + ['r-------', { data: ACCESS_NONE, metadata: ACCESS_VIEW_ONLY }], + [ + 'r-r-----', + { data: ACCESS_VIEW_ONLY, metadata: ACCESS_VIEW_ONLY }, + ], + ['rw------', { data: ACCESS_NONE, metadata: ACCESS_VIEW_AND_EDIT }], + [ + 'rwrw----', + { data: ACCESS_VIEW_AND_EDIT, metadata: ACCESS_VIEW_AND_EDIT }, + ], ] it.each(cases)( 'parses the metadata portion of the access string correctly for %s', (accessString, accessConstant) => { - expect(convertAccessToConstant(accessString)).toEqual( + expect(convertAccessToConstantObject(accessString)).toEqual( accessConstant ) } ) }) - describe('convertConstantToAccess', () => { + describe('convertConstantObjectToAccess', () => { it('returns the default access string if the access constant is not recognised', () => { const expected = '--------' - expect(convertConstantToAccess('NOT_RECOGNISED')).toEqual(expected) + expect( + convertConstantObjectToAccess({ + data: 'NOT_RECOGNISED', + metadata: 'NOT_RECOGNISED', + }) + ).toEqual(expected) }) const cases = [ - [ACCESS_NONE, '--------', false], - [ACCESS_VIEW_ONLY, 'r-------', true], - [ACCESS_VIEW_AND_EDIT, 'rw------', true], + [{ data: ACCESS_NONE, metadata: ACCESS_NONE }, '--------'], + [{ data: ACCESS_NONE, metadata: ACCESS_VIEW_ONLY }, 'r-------'], + [{ data: ACCESS_NONE, metadata: ACCESS_VIEW_AND_EDIT }, 'rw------'], + [{ data: ACCESS_VIEW_ONLY, metadata: ACCESS_NONE }, '--r-----'], + [ + { data: ACCESS_VIEW_AND_EDIT, metadata: ACCESS_VIEW_AND_EDIT }, + 'rwrw----', + ], ] it.each(cases)( 'returns the correct metadata access string for %s', (accessConstant, accessString) => { - expect(convertConstantToAccess(accessConstant)).toEqual( + expect(convertConstantObjectToAccess(accessConstant)).toEqual( accessString ) } ) - - it.each(cases)( - 'returns the correct boolean value for %s', - (accessConstant, accessString, accessBoolean) => { - expect(convertConstantToAccess(accessConstant, true)).toEqual( - accessBoolean - ) - } - ) }) describe('isRemovableTarget', () => { diff --git a/components/sharing-dialog/src/helpers/helpers.js b/components/sharing-dialog/src/helpers/helpers.js index 5fcd25529c..56a928c082 100644 --- a/components/sharing-dialog/src/helpers/helpers.js +++ b/components/sharing-dialog/src/helpers/helpers.js @@ -41,7 +41,7 @@ export const debounce = (func, wait, immediate) => { * Access and constant conversion */ -export const convertAccessToConstant = (access) => { +const convertAccessStringToConstant = (access) => { if (access === undefined) { return ACCESS_NONE } @@ -59,26 +59,48 @@ export const convertAccessToConstant = (access) => { } } -export const convertConstantToAccess = (constant, useBoolean) => { +export const convertAccessToConstantObject = (accessString) => { + if (typeof accessString === 'boolean') { + return { + data: ACCESS_NONE, + metadata: convertAccessStringToConstant(accessString), + } + } + const metadataAccessString = accessString?.substring(0, 2) + const dataAccessString = accessString?.substring(2, 4) + + return { + data: convertAccessStringToConstant(dataAccessString), + metadata: convertAccessStringToConstant(metadataAccessString), + } +} + +export const convertConstantToAccessString = (constant) => { switch (constant) { case ACCESS_NONE: - return useBoolean ? false : '--------' + return '--' case ACCESS_VIEW_ONLY: - return useBoolean ? true : 'r-------' + return 'r-' case ACCESS_VIEW_AND_EDIT: - return useBoolean ? true : 'rw------' + return 'rw' default: - return useBoolean ? false : '--------' + return '--' } } +export const convertConstantObjectToAccess = (accessObject) => { + return `${convertConstantToAccessString( + accessObject.metadata + )}${convertConstantToAccessString(accessObject.data)}----` +} + /** * Replaces access property with constants used internally */ export const replaceAccessWithConstant = ({ access, ...rest }) => ({ ...rest, - access: convertAccessToConstant(access), + access: convertAccessToConstantObject(access), }) /** @@ -102,7 +124,7 @@ export const createOnChangePayload = ({ object, type, access, id }) => { const data = { object: { ...object, - publicAccess: convertConstantToAccess(access), + publicAccess: convertConstantObjectToAccess(access), }, } return data @@ -115,7 +137,7 @@ export const createOnChangePayload = ({ object, type, access, id }) => { return { ...group, - access: convertConstantToAccess(access), + access: convertConstantObjectToAccess(access), } }) const data = { @@ -124,6 +146,7 @@ export const createOnChangePayload = ({ object, type, access, id }) => { userGroupAccesses, }, } + console.log(data) return data } case 'user': { @@ -134,7 +157,7 @@ export const createOnChangePayload = ({ object, type, access, id }) => { return { ...user, - access: convertConstantToAccess(access), + access: convertConstantObjectToAccess(access), } }) const data = { @@ -159,7 +182,7 @@ export const createOnAddPayload = ({ object, type, id, access, name }) => { { id, name, - access: convertConstantToAccess(access), + access: convertConstantObjectToAccess(access), }, ], }, @@ -175,7 +198,7 @@ export const createOnAddPayload = ({ object, type, id, access, name }) => { { id, name, - access: convertConstantToAccess(access), + access: convertConstantObjectToAccess(access), }, ], }, diff --git a/components/sharing-dialog/src/sharing-dialog.e2e.stories.js b/components/sharing-dialog/src/sharing-dialog.e2e.stories.js index 2410271765..94b19b743c 100644 --- a/components/sharing-dialog/src/sharing-dialog.e2e.stories.js +++ b/components/sharing-dialog/src/sharing-dialog.e2e.stories.js @@ -23,3 +23,9 @@ export const Dashboard = () => ( ) + +export const Data = () => ( + + + +) diff --git a/components/sharing-dialog/src/sharing-dialog.js b/components/sharing-dialog/src/sharing-dialog.js index 21490420ab..e5412d72c8 100644 --- a/components/sharing-dialog/src/sharing-dialog.js +++ b/components/sharing-dialog/src/sharing-dialog.js @@ -9,7 +9,7 @@ import { } from './constants.js' import { FetchingContext } from './fetching-context/index.js' import { - convertAccessToConstant, + convertAccessToConstantObject, replaceAccessWithConstant, createOnChangePayload, createOnAddPayload, @@ -39,13 +39,49 @@ const mutation = { } const emptyFunction = () => {} + const defaultInitialSharingSettings = { name: '', allowPublic: true, - public: ACCESS_NONE, - groups: {}, - users: {}, + public: { data: ACCESS_NONE, metadata: ACCESS_NONE }, + groups: [], + users: [], } + +const mapInitialSharingSettings = (originalSharingSettings) => { + const mappedSharingSettings = { ...originalSharingSettings } + if ( + originalSharingSettings.public && + typeof originalSharingSettings.public === 'string' + ) { + mappedSharingSettings.public = { + data: ACCESS_NONE, + metadata: originalSharingSettings.public, + } + } + mappedSharingSettings.groups = originalSharingSettings.groups.map( + (group) => { + if (group.access && typeof group.access === 'string') { + return { + ...group, + access: { data: ACCESS_NONE, metadata: group.access }, + } + } + return group + } + ) + mappedSharingSettings.users = originalSharingSettings.users.map((user) => { + if (user.access && typeof user.access === 'string') { + return { + ...user, + access: { data: ACCESS_NONE, metadata: user.access }, + } + } + return user + }) + return mappedSharingSettings +} + export const SharingDialog = ({ id, type, @@ -54,8 +90,12 @@ export const SharingDialog = ({ onSave = emptyFunction, initialSharingSettings = defaultInitialSharingSettings, dataTest = 'dhis2-uicore-sharingdialog', + dataSharing = false, }) => { const { show: showError } = useAlert((error) => error, { critical: true }) + const mappedInitialSharingSettings = mapInitialSharingSettings( + initialSharingSettings + ) /** * Data fetching @@ -112,12 +152,15 @@ export const SharingDialog = ({ id={id} users={users} groups={groups} - publicAccess={initialSharingSettings.public} - allowPublicAccess={initialSharingSettings.allowPublic} + publicAccess={mappedInitialSharingSettings.public} + allowPublicAccess={ + mappedInitialSharingSettings.allowPublic + } type={type} onAdd={() => {}} onChange={() => {}} onRemove={() => {}} + dataSharing={dataSharing} /> @@ -125,7 +168,7 @@ export const SharingDialog = ({ } const { object, meta } = data.sharing - const publicAccess = convertAccessToConstant(object.publicAccess) + const publicAccess = convertAccessToConstantObject(object.publicAccess) const users = object.userAccesses.map(replaceAccessWithConstant) const groups = object.userGroupAccesses.map(replaceAccessWithConstant) @@ -180,6 +223,7 @@ export const SharingDialog = ({ onAdd={onAdd} onChange={onChange} onRemove={onRemove} + dataSharing={dataSharing} /> @@ -191,28 +235,80 @@ SharingDialog.propTypes = { id: PropTypes.string.isRequired, /** The type of object to share */ type: PropTypes.oneOf(DIALOG_TYPES_LIST).isRequired, + /** Whether to expose the ability to set data sharing (in addition to metadata sharing) */ + dataSharing: PropTypes.bool, dataTest: PropTypes.string, /** Used to seed the component with data to show whilst loading */ initialSharingSettings: PropTypes.shape({ allowPublic: PropTypes.bool.isRequired, groups: PropTypes.objectOf( PropTypes.shape({ - access: PropTypes.string.isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, + access: PropTypes.oneOfType([ + PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }), + PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + ]), }) ), name: PropTypes.string, - public: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, + public: PropTypes.oneOfType([ + PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }), + PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), ]), users: PropTypes.objectOf( PropTypes.shape({ - access: PropTypes.string.isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, + access: PropTypes.oneOfType([ + PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }), + PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + ]), }) ), }), diff --git a/components/sharing-dialog/src/sharing-dialog.prod.stories.js b/components/sharing-dialog/src/sharing-dialog.prod.stories.js index 72181e4479..232f09dd9b 100644 --- a/components/sharing-dialog/src/sharing-dialog.prod.stories.js +++ b/components/sharing-dialog/src/sharing-dialog.prod.stories.js @@ -129,7 +129,7 @@ const customDataWithUserGroupAccesses = { { id: 'user-1', name: 'Kvist', - access: 'rw------', + access: 'rwr-----', }, ], userGroupAccesses: [ @@ -200,6 +200,15 @@ export const WithUserAndGroupAccesses = (args) => ( ) WithUserAndGroupAccesses.storyName = 'With user and group accesses' +export const WithDataUserAndGroupAccesses = (args) => ( + + + +) +WithDataUserAndGroupAccesses.storyName = + 'With data sharing, user and group accesses' +WithDataUserAndGroupAccesses.args = { dataSharing: true } + export const ForDashboard = (args) => ( diff --git a/components/sharing-dialog/src/tabs/tabbed-content.js b/components/sharing-dialog/src/tabs/tabbed-content.js index 82c6d9cf73..76de4ffec9 100644 --- a/components/sharing-dialog/src/tabs/tabbed-content.js +++ b/components/sharing-dialog/src/tabs/tabbed-content.js @@ -23,6 +23,7 @@ export const TabbedContent = ({ onAdd, onChange, onRemove, + dataSharing, }) => { const [activeTabIndex, setActiveTabIndex] = useState(0) @@ -46,7 +47,10 @@ export const TabbedContent = ({
{activeTabIndex === 0 && ( <> - + )} @@ -70,7 +75,7 @@ export const TabbedContent = ({ return ( <> - + ) @@ -85,31 +91,53 @@ export const TabbedContent = ({ TabbedContent.propTypes = { allowPublicAccess: PropTypes.bool.isRequired, + dataSharing: PropTypes.bool.isRequired, groups: PropTypes.arrayOf( PropTypes.shape({ - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + access: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }) ).isRequired, id: PropTypes.string.isRequired, - publicAccess: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + publicAccess: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, type: PropTypes.oneOf(DIALOG_TYPES_LIST).isRequired, users: PropTypes.arrayOf( PropTypes.shape({ - access: PropTypes.oneOf([ - ACCESS_NONE, - ACCESS_VIEW_ONLY, - ACCESS_VIEW_AND_EDIT, - ]).isRequired, + access: PropTypes.shape({ + data: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + metadata: PropTypes.oneOf([ + ACCESS_NONE, + ACCESS_VIEW_ONLY, + ACCESS_VIEW_AND_EDIT, + ]), + }).isRequired, id: PropTypes.string.isRequired, name: PropTypes.string.isRequired, }) diff --git a/components/sharing-dialog/types/index.d.ts b/components/sharing-dialog/types/index.d.ts index 1cdecbddf6..90b68873ec 100644 --- a/components/sharing-dialog/types/index.d.ts +++ b/components/sharing-dialog/types/index.d.ts @@ -1,13 +1,19 @@ import * as React from 'react' -import { ModalOnCloseEventHandler } from '../modal' +import { LayerBackdropClickHandler } from '@dhis2-ui/layer' -interface SharingObject { - access: string +type ModalOnCloseEventHandler = LayerBackdropClickHandler + +type SharingAccess = { + data: 'ACCESS_NONE' | 'ACCESS_VIEW_ONLY' | 'ACCESS_VIEW_AND_EDIT' + metadata: 'ACCESS_NONE' | 'ACCESS_VIEW_ONLY' | 'ACCESS_VIEW_AND_EDIT' +} + +type SharingObject = { + access: SharingAccess id: string name: string } -type SharingPublic = 'ACCESS_NONE' | 'ACCESS_VIEW_ONLY' | 'ACCESS_VIEW_AND_EDIT' type SharingType = | 'aggregateDataExchange' | 'apiToken' @@ -67,10 +73,10 @@ type SharingType = export interface SharingDialogInitialSharingSettings { allowPublic: boolean - groups?: SharingObject + groups?: SharingObject[] name?: string - public?: SharingPublic - users?: SharingObject + public?: SharingAccess + users?: SharingObject[] } export interface SharingDialogProps { @@ -86,6 +92,7 @@ export interface SharingDialogProps { * Used to seed the component with data to show whilst loading */ initialSharingSettings?: SharingDialogInitialSharingSettings + dataSharing?: boolean onClose?: ModalOnCloseEventHandler onError?: (error: any) => void onSave?: () => void diff --git a/components/status-icon/package.json b/components/status-icon/package.json index 0372236323..8524b5eb89 100644 --- a/components/status-icon/package.json +++ b/components/status-icon/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/status-icon", - "version": "9.12.0", + "version": "9.14.1", "description": "UI StatusIcon", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/loader": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/loader": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/switch/package.json b/components/switch/package.json index 828cba4944..9f8916a3f5 100644 --- a/components/switch/package.json +++ b/components/switch/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/switch", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Switch", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/required": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/required": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/tab/package.json b/components/tab/package.json index 08419e3767..63881a1dd2 100644 --- a/components/tab/package.json +++ b/components/tab/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/tab", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Tabs", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { - "@dhis2-ui/tooltip": "9.12.0", + "@dhis2-ui/tooltip": "9.14.1", "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/table/package.json b/components/table/package.json index f8bc6a6130..6c80dc7afb 100644 --- a/components/table/package.json +++ b/components/table/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/table", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Table", "repository": { "type": "git", @@ -28,14 +28,14 @@ }, "peerDependencies": { "@dhis2/d2-i18n": "^1", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -45,8 +45,8 @@ ], "devDependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/tag/package.json b/components/tag/package.json index 1586604d3a..2ef0c631bc 100644 --- a/components/tag/package.json +++ b/components/tag/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/tag", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Tag", "repository": { "type": "git", @@ -27,13 +27,13 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -42,8 +42,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/text-area/package.json b/components/text-area/package.json index 01244a0568..f6a27a3b63 100644 --- a/components/text-area/package.json +++ b/components/text-area/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/text-area", - "version": "9.12.0", + "version": "9.14.1", "description": "UI TextArea", "repository": { "type": "git", @@ -27,18 +27,18 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/box": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2-ui/status-icon": "9.12.0", - "@dhis2/ui-constants": "9.12.0", - "@dhis2/ui-icons": "9.12.0", + "@dhis2-ui/box": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2-ui/status-icon": "9.14.1", + "@dhis2/ui-constants": "9.14.1", + "@dhis2/ui-icons": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -47,8 +47,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/tooltip/package.json b/components/tooltip/package.json index b83a0c9faa..afc4b74eb5 100644 --- a/components/tooltip/package.json +++ b/components/tooltip/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/tooltip", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Tooltip", "repository": { "type": "git", @@ -27,15 +27,15 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/popper": "9.12.0", - "@dhis2-ui/portal": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/popper": "9.14.1", + "@dhis2-ui/portal": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/transfer/package.json b/components/transfer/package.json index f9af8d3d83..1066e68b89 100644 --- a/components/transfer/package.json +++ b/components/transfer/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/transfer", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Transfer", "repository": { "type": "git", @@ -27,18 +27,18 @@ "test": "d2-app-scripts test --jestConfig ../../jest.config.shared.js" }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2-ui/button": "9.12.0", - "@dhis2-ui/field": "9.12.0", - "@dhis2-ui/input": "9.12.0", - "@dhis2-ui/intersection-detector": "9.12.0", - "@dhis2-ui/loader": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/button": "9.14.1", + "@dhis2-ui/field": "9.14.1", + "@dhis2-ui/input": "9.14.1", + "@dhis2-ui/intersection-detector": "9.14.1", + "@dhis2-ui/loader": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -47,8 +47,8 @@ "types" ], "devDependencies": { - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/components/user-avatar/package.json b/components/user-avatar/package.json index 2945a20987..371c0f78f9 100644 --- a/components/user-avatar/package.json +++ b/components/user-avatar/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2-ui/user-avatar", - "version": "9.12.0", + "version": "9.14.1", "description": "UI User Avatar", "repository": { "type": "git", @@ -28,13 +28,13 @@ }, "peerDependencies": { "@dhis2/app-runtime": "^3", - "react": "^16.13", - "react-dom": "^16.13", + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18", "styled-jsx": "^4" }, "dependencies": { "@dhis2/prop-types": "^3.1.2", - "@dhis2/ui-constants": "9.12.0", + "@dhis2/ui-constants": "9.14.1", "classnames": "^2.3.1", "prop-types": "^15.7.2" }, @@ -44,8 +44,8 @@ ], "devDependencies": { "@dhis2/app-runtime": "^3.9.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "styled-jsx": "^4.0.1" }, "types": "types" diff --git a/constants/package.json b/constants/package.json index cfd013ba2b..de74ec229c 100644 --- a/constants/package.json +++ b/constants/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/ui-constants", - "version": "9.12.0", + "version": "9.14.1", "description": "Constants used in the UI libs", "main": "./build/cjs/index.js", "module": "./build/es/index.js", diff --git a/docs/package.json b/docs/package.json index afefeea500..5915638f0c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "ui-docusaurus", - "version": "9.12.0", + "version": "9.14.1", "private": true, "description": "UI Docusaurus", "repository": { @@ -30,9 +30,13 @@ "prop-types": "^15.7.2", "url-loader": "^4.1.1" }, + "devDependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13", + "react": ">=16.13", + "react-dom": ">=16.13", "styled-jsx": "^4" }, "browserslist": { diff --git a/icons/package.json b/icons/package.json index 3a00566aeb..909a04d321 100644 --- a/icons/package.json +++ b/icons/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/ui-icons", - "version": "9.12.0", + "version": "9.14.1", "description": "Icons used in the UI libs", "main": "./build/cjs/react/index.js", "module": "./build/es/react/index.js", @@ -34,13 +34,13 @@ "types" ], "peerDependencies": { - "react": "^16.13", - "react-dom": "^16.13" + "react": "^16.13 || ^18", + "react-dom": "^16.13 || ^18" }, "dependencies": {}, "devDependencies": { - "react": "16.13", - "react-dom": "16.13" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "types": "types" } diff --git a/jest.config.js b/jest.config.js index aa4854cadf..3dceec90ee 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,7 +1,6 @@ module.exports = { rootDir: '.', setupFilesAfterEnv: [ - '@testing-library/jest-dom/extend-expect', '/jest.enzyme.config.js', '/jest.testing-library.config.js', ], diff --git a/jest.config.shared.js b/jest.config.shared.js index 9502138f46..d890c23981 100644 --- a/jest.config.shared.js +++ b/jest.config.shared.js @@ -1,6 +1,5 @@ module.exports = { setupFilesAfterEnv: [ - '@testing-library/jest-dom/extend-expect', `${__dirname}/jest.enzyme.config.js`, `${__dirname}/jest.testing-library.config.js`, ], diff --git a/jest.enzyme.config.js b/jest.enzyme.config.js index 3d6cd1d53a..927d103227 100644 --- a/jest.enzyme.config.js +++ b/jest.enzyme.config.js @@ -1,4 +1,9 @@ +import util from 'util' +import Adapter from '@cfaester/enzyme-adapter-react-18' import { configure } from 'enzyme' -import Adapter from 'enzyme-adapter-react-16' configure({ adapter: new Adapter() }) + +Object.defineProperty(global, 'TextEncoder', { + value: util.TextEncoder, +}) diff --git a/jest.testing-library.config.js b/jest.testing-library.config.js index 446c378d50..979703723c 100644 --- a/jest.testing-library.config.js +++ b/jest.testing-library.config.js @@ -1,4 +1,5 @@ import { configure } from '@testing-library/dom' +import '@testing-library/jest-dom' configure({ testIdAttribute: 'data-test', diff --git a/package.json b/package.json index b9cb990859..094506c280 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/ui-root", - "version": "9.12.0", + "version": "9.14.1", "repository": { "type": "git", "url": "https://github.com/dhis2/ui.git" @@ -43,8 +43,8 @@ }, "dependencies": { "@dhis2/d2-i18n": "^1.1.0", - "react": "16.13", - "react-dom": "16.13", + "react": "^18.3.1", + "react-dom": "^18.3.1", "react-scripts": "^5.0.1", "styled-jsx": "^4.0.1" }, @@ -54,24 +54,25 @@ "devDependencies": { "@babel/parser": "^7.17.0", "@badeball/cypress-cucumber-preprocessor": "^20.0.2", + "@cfaester/enzyme-adapter-react-18": "^0.8.0", "@cypress/webpack-preprocessor": "^6.0.1", - "@dhis2/app-runtime": "^3.9.0", - "@dhis2/cli-app-scripts": "^11.7.0", + "@dhis2/app-runtime": "^3.11.2", + "@dhis2/cli-app-scripts": "^12.0.0-alpha.19", "@dhis2/cli-style": "10.4.2", "@dhis2/cli-utils-docsite": "^3.1.2", "@dhis2/cypress-commands": "^10.0.5", "@dhis2/cypress-plugins": "^10.0.5", "@manypkg/cli": "^0.18.0", "@svgr/cli": "^5.5.0", - "@testing-library/jest-dom": "^5.16.1", - "@testing-library/react": "^12.1.2", - "@testing-library/react-hooks": "^7.0.1", - "@testing-library/user-event": "^13.5.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.6.2", + "@testing-library/react": "^16.0.1", + "@testing-library/user-event": "^14.5.2", + "@types/react": "^18", "ast-types": "^0.14.2", "concurrently": "^6.2.1", "cypress": "^13.8.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.8", "execa": "^5.1.1", "fast-glob": "^3.2.7", "find-up": "^5.0.0", diff --git a/storybook/package.json b/storybook/package.json index cfe4d1cf0c..9a8ccfe8ab 100644 --- a/storybook/package.json +++ b/storybook/package.json @@ -1,6 +1,6 @@ { "name": "ui-storybook", - "version": "9.12.0", + "version": "9.14.1", "description": "UI Storybook", "repository": { "type": "git", @@ -22,8 +22,8 @@ "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-private-methods": "^7.13.0", "@babel/plugin-proposal-private-property-in-object": "^7.14.0", - "@dhis2-ui/css": "9.12.0", - "@dhis2/ui-constants": "9.12.0", + "@dhis2-ui/css": "9.14.1", + "@dhis2/ui-constants": "9.14.1", "@fontsource/roboto": "^4.5.0", "@storybook/addon-a11y": "^8.3.3", "@storybook/addon-console": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 576e9005a5..ba8059fdf6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@adobe/css-tools@^4.0.1": +"@adobe/css-tools@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz" integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== @@ -196,18 +196,19 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.8.3": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.8.3": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.0.tgz#9374b5cd068d128dac0b94ff482594273b1c2815" + integrity sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g== dependencies: - "@babel/highlight" "^7.24.7" + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz" - integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.0.tgz#f02ba6d34e88fadd5e8861e8b38902f43cc1c819" + integrity sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA== "@babel/core@7.12.9": version "7.12.9" @@ -231,21 +232,21 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.18.6", "@babel/core@^7.18.9", "@babel/core@^7.19.6", "@babel/core@^7.6.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz" - integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== +"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.18.6", "@babel/core@^7.18.9", "@babel/core@^7.19.6", "@babel/core@^7.24.4", "@babel/core@^7.25.2", "@babel/core@^7.6.2", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/helper-compilation-targets" "^7.25.2" - "@babel/helper-module-transforms" "^7.25.2" - "@babel/helpers" "^7.25.0" - "@babel/parser" "^7.25.0" - "@babel/template" "^7.25.0" - "@babel/traverse" "^7.25.2" - "@babel/types" "^7.25.2" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -261,15 +262,16 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.25.0", "@babel/generator@^7.7.2": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz" - integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.0.tgz#505cc7c90d92513f458a477e5ef0703e7c91b8d7" + integrity sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w== dependencies: - "@babel/types" "^7.25.0" + "@babel/parser" "^7.26.0" + "@babel/types" "^7.26.0" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" + jsesc "^3.0.2" "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.24.7": version "7.24.7" @@ -286,14 +288,14 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz" - integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2", "@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== dependencies: - "@babel/compat-data" "^7.25.2" - "@babel/helper-validator-option" "^7.24.8" - browserslist "^4.23.1" + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" @@ -338,23 +340,22 @@ "@babel/traverse" "^7.24.8" "@babel/types" "^7.24.8" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.24.7", "@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz" - integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/traverse" "^7.25.2" + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" "@babel/helper-optimise-call-expression@^7.24.7": version "7.24.7" @@ -368,10 +369,10 @@ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.24.8" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz" - integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== "@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": version "7.25.0" @@ -407,20 +408,20 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-string-parser@^7.24.8": - version "7.24.8" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" - integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== -"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== +"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.24.7", "@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== -"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": - version "7.24.8" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz" - integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8", "@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== "@babel/helper-wrap-function@^7.25.0": version "7.25.0" @@ -431,15 +432,15 @@ "@babel/traverse" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.25.0": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz" - integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== +"@babel/helpers@^7.12.5", "@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== dependencies: - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.0" + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.0" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7", "@babel/highlight@^7.8.3": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3": version "7.24.7" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== @@ -449,12 +450,12 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.7.0", "@babel/parser@^7.9.4": - version "7.25.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz" - integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.4": + version "7.26.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.1.tgz#44e02499960df2cdce2c456372a3e8e0c3c5c975" + integrity sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw== dependencies: - "@babel/types" "^7.25.2" + "@babel/types" "^7.26.0" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": version "7.25.3" @@ -1085,6 +1086,20 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.24.7" +"@babel/plugin-transform-react-jsx-self@^7.24.7": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858" + integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-react-jsx-source@^7.24.7": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503" + integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-react-jsx@^7.24.7": version "7.25.2" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz" @@ -1363,32 +1378,32 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4": version "7.25.0" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz" integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.12.7", "@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.3.3": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" - -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.18.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.25.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz" - integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.2" +"@babel/template@^7.12.7", "@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.25.9", "@babel/template@^7.3.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.18.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" debug "^4.3.1" globals "^11.1.0" @@ -1400,14 +1415,13 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz" - integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" + integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" "@badeball/cypress-configuration@^6.1.1": version "6.1.1" @@ -1462,6 +1476,17 @@ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@cfaester/enzyme-adapter-react-18@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cfaester/enzyme-adapter-react-18/-/enzyme-adapter-react-18-0.8.0.tgz#313814eb79658a6e74209f9f1743bcefff14a46f" + integrity sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ== + dependencies: + enzyme-shallow-equal "^1.0.0" + function.prototype.name "^1.1.6" + has "^1.0.4" + react-is "^18.2.0" + react-shallow-renderer "^16.15.0" + "@changesets/types@^0.4.0": version "0.4.0" resolved "https://registry.npmjs.org/@changesets/types/-/types-0.4.0.tgz" @@ -1896,94 +1921,243 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@dhis2/app-adapter@11.7.0": - version "11.7.0" - resolved "https://registry.npmjs.org/@dhis2/app-adapter/-/app-adapter-11.7.0.tgz" - integrity sha512-GeswzYbVr5vAKqHgFeVTM/3igRoX7KuR7bhDU7tPjHfcouLUm4MbIWG4dK70GiWKyGBNlLtudJcz2FkhFaRcdg== +"@dhis2-ui/box@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.12.0.tgz#2136bb0c2df9295101209f9f626c2ac1f643b36d" + integrity sha512-GkYpyzEY59My6RFhFC9clr6psOII/5K13AspnIG0/KOWsS8I6KNiCbW1etsLIcLp9OSlPUQTrARt3RHzASD/cA== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/button@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.12.0.tgz#2f87c6db1c6c35b6050f2df8402edba92d281d31" + integrity sha512-klAcDRnf+E+tsmKzBTTjsAsa5+s5dM6wraDEj84G2mrQSxptuH+5R/wK+OEf5usRGqjzYtUMkxBpz4STlFtGSg== + dependencies: + "@dhis2-ui/layer" "9.12.0" + "@dhis2-ui/loader" "9.12.0" + "@dhis2-ui/popper" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + "@dhis2/ui-icons" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/field@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.12.0.tgz#678ca7474c645fff0ccab53e7fcacf63049b3ec9" + integrity sha512-fEDVqMptD0lqBhFDqmSg75TlclR5D6n5br+W6t0HXzej23wdGUBycXUhY1X2Nu8PHg2IDiGNiVmI3sV9GQeN5Q== + dependencies: + "@dhis2-ui/box" "9.12.0" + "@dhis2-ui/help" "9.12.0" + "@dhis2-ui/label" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/help@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.12.0.tgz#79428e6bea09f7f18a7e244774de25cc49002b9e" + integrity sha512-IUEO3VUZxXOka/gEcI60rVoSKDwH7fTu6B8pA9VgIrIPdFKCx3fnH1q14f2jxS0CnScmZ0aoiWGyKzJL/zHjgg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/input@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.12.0.tgz#da65bf08839484f8b65f124202b58af09cad8a3c" + integrity sha512-cfw9S3cHXt5I9WWsMxhB+JaJweCRM2qdutbjiDUpyGBiSTk1WkYjW1ZhwSqbJgWR64IkwVEmuunJWx1Pb41zNw== + dependencies: + "@dhis2-ui/box" "9.12.0" + "@dhis2-ui/field" "9.12.0" + "@dhis2-ui/input" "9.12.0" + "@dhis2-ui/loader" "9.12.0" + "@dhis2-ui/status-icon" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + "@dhis2/ui-icons" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/intersection-detector@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.12.0.tgz#48dc0ef4fba060c2796183c5661a47e8fd5aa1c1" + integrity sha512-mzR/X8AmwYK3Z7OummKtZHWPXUnwn0ahb8BDFocj4SnZwLizVS2pVRP1o5FpDYU9TrrJjDHy+jShldWhLilK3Q== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/label@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.12.0.tgz#b9051e690f139f675673f1da43bcb8e1a3909b90" + integrity sha512-EDS55WGWipaUiDKivSJDu3XfSrtPQIHImgZsRsnJk4No2qcQ0ocn9vR5WTH7s8CN6RnzlfKfMn5EO9Bqyp1zyw== + dependencies: + "@dhis2-ui/required" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/layer@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.12.0.tgz#edc1e2f7ad5cee13eea66223a9254795bfb20c0f" + integrity sha512-jDSeINun8q5tSBnDiKkhsK+8hVSipgBc9W83nTH8YX375aXsD/aFuN0Das1pefVXJ2g90F1864iecAcwt9XYjg== + dependencies: + "@dhis2-ui/portal" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/loader@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.12.0.tgz#53670cb7eb74c4e25cf44ff70368d7876c75656e" + integrity sha512-uvd49p4iM/e6BY5Bb4P1Big273vmE6iAWkpDcqBqkNHk49+MHQ7AUQuSDDxmjmqLZAK4pMIToituHa/NB45Siw== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/popper@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.12.0.tgz#99ca976c46249faedfefcc5fbf0b8c67d613d926" + integrity sha512-xMkmKoLgFw7COW7g+JMcURZdGSN1BcIG8SUphomBYmS3Zirzu2iOqykMO7c9I7dT+QQaiUPObJq5Lp7+5ZJD0A== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + "@popperjs/core" "^2.10.1" + classnames "^2.3.1" + prop-types "^15.7.2" + react-popper "^2.2.5" + resize-observer-polyfill "^1.5.1" + +"@dhis2-ui/portal@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.12.0.tgz#9307fefa09a0c8d9b725ff9b0007be70e8664da3" + integrity sha512-X+rVroUEW9qP5XYnLABAU5everTtsPxhseeeuCSHomQqDIqq+oSF7Fg0oyU2NXQjADNGCVrrFGW5wV2Zcd/gng== + dependencies: + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/required@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.12.0.tgz#78f57e51d7f2524a3a674f8d6977545bc44db6ae" + integrity sha512-ge5rpvtDHLCtM7EbjbDRXOSxWMpjErkpPH7BAr9ABpg/Aak/KbkWtZj0D4hFUi0DFr+R9zzjRagExjC5f6gwQA== dependencies: - "@dhis2/pwa" "11.7.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2-ui/status-icon@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.12.0.tgz#68213976a8786db516400a23bcee00df5cca710c" + integrity sha512-cU/Jq9OelDXkzLrpRB8IlnyIfYnxxRk6vcP1+OWWYcgcObIspJ/zL/em7W36X8qA3sI0CkgkJJ2X15hQgyV6aQ== + dependencies: + "@dhis2-ui/loader" "9.12.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.12.0" + "@dhis2/ui-icons" "9.12.0" + classnames "^2.3.1" + prop-types "^15.7.2" + +"@dhis2/app-adapter@12.0.0-alpha.19": + version "12.0.0-alpha.19" + resolved "https://registry.yarnpkg.com/@dhis2/app-adapter/-/app-adapter-12.0.0-alpha.19.tgz#6c346dd79f81107c95d3ce2bc153aacbb9469893" + integrity sha512-zZLWYIRcmQJFcUc5fTS+Gw/ynfAB7QRT1O5S/uTZHnvD/MxvU8n6Znuf+WEOy42RbDJw0qQF6Sf/btq1WoU8cA== + dependencies: + "@dhis2/pwa" "12.0.0-alpha.19" moment "^2.24.0" -"@dhis2/app-runtime@^3.10.4", "@dhis2/app-runtime@^3.9.0": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-runtime/-/app-runtime-3.10.6.tgz" - integrity sha512-WfC+AHkw0V3V3/wyLPHoTyAf8i4btLl/R2nMBVs3NEXLwA9mekG/gXs7AEPnK2/p6FVoqXMDwJHEH2b8Iw4UFw== +"@dhis2/app-runtime@^3.11.1", "@dhis2/app-runtime@^3.11.2", "@dhis2/app-runtime@^3.9.0": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-runtime/-/app-runtime-3.11.2.tgz#410ecb2f84a74f41eaaf89ace0f1ee44b8b0818d" + integrity sha512-JXxJKw3tkSyYLXsjZcRLjqZF/VPbCFrr60VHvs4nfMWpjTEsqEVyXoPR/G+HaJvAih2OAVr2INdUFwpUehYDCA== dependencies: - "@dhis2/app-service-alerts" "3.10.6" - "@dhis2/app-service-config" "3.10.6" - "@dhis2/app-service-data" "3.10.6" - "@dhis2/app-service-offline" "3.10.6" - "@dhis2/app-service-plugin" "3.10.6" + "@dhis2/app-service-alerts" "3.11.2" + "@dhis2/app-service-config" "3.11.2" + "@dhis2/app-service-data" "3.11.2" + "@dhis2/app-service-offline" "3.11.2" + "@dhis2/app-service-plugin" "3.11.2" -"@dhis2/app-service-alerts@3.10.6": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-service-alerts/-/app-service-alerts-3.10.6.tgz" - integrity sha512-2r9IUBp5Z5zuSqjTEWpt+rx7tP5AqrtkPJ8ZVOKW5YBn1DB4bQ5ti9GOevHM4othr7Mrmt22UADPgfEkfc7XzQ== +"@dhis2/app-service-alerts@3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-alerts/-/app-service-alerts-3.11.2.tgz#c5a013b524facfc79a0be6e83870a4c593c686cb" + integrity sha512-MLkDhrka66cO7lAOE4RaN/m+4l4NwagUxw4j3qhh4YXEihIJmH+kticEHCvuqYT3ySYPjkC74jrjl7CID08Yiw== -"@dhis2/app-service-config@3.10.6": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-service-config/-/app-service-config-3.10.6.tgz" - integrity sha512-Z/rSBjCc8kP78QYhKNyGoCafGfwpqMDg8mV2x/H6CavgEicOa+qHX3bkKV6+fC9Sw2FnsWHRemxYRkgbW/BD3g== +"@dhis2/app-service-config@3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-config/-/app-service-config-3.11.2.tgz#c8bcd95b4f97668d96dc8b8e2b225eac9cf91b5d" + integrity sha512-ik184s/zlUJ1y92EK2IfkYduauDnUj2mX97SKLIfrTAEAJXzGirdpgjCTuB4pEEO+fjHV7hjXRZbNlWKCT4bbQ== -"@dhis2/app-service-data@3.10.6": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-service-data/-/app-service-data-3.10.6.tgz" - integrity sha512-9RH3Dn0shcVdF7itgKy9cK3yMEcyP5xXjNzYPGzWf+3q9aGlzjh22pHE4p+C9OV+SeVO2q+5GcNOk7rdZvS+Cg== +"@dhis2/app-service-data@3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-data/-/app-service-data-3.11.2.tgz#207970c8aebcf772b37cd430b3280687a0a78252" + integrity sha512-psS5NntXtZ/RDRvUvYTTHMyPeG/9/Qi0t1NrZByVq6WgDjy3gxsceQVct1tRh+62h0ukIPzh4eBa0a/2tyC8+w== dependencies: react-query "^3.13.11" -"@dhis2/app-service-offline@3.10.6": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-service-offline/-/app-service-offline-3.10.6.tgz" - integrity sha512-179QXdUOFgPPIOhY5HD+C6GzzJDvhR8GW7jXT4LtjCeO/4EbA3r9sycyrYpLZL66GtpGHkeV5g4slxM1t+63cw== +"@dhis2/app-service-offline@3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-offline/-/app-service-offline-3.11.2.tgz#97cbb520935226d8e394d77d64d97a65085e2f4a" + integrity sha512-ZFgdEey/bz3SGCn1TEDbQJZHwPNwLsfMGfSHjDUz+xdmo3qITV2e6scLD0NhPNWPwBSQtwSdwej5WlHmDzn6TQ== dependencies: lodash "^4.17.21" -"@dhis2/app-service-plugin@3.10.6": - version "3.10.6" - resolved "https://registry.npmjs.org/@dhis2/app-service-plugin/-/app-service-plugin-3.10.6.tgz" - integrity sha512-um4ONieW+xpWfagt+QNF4ZtzzFpm8KeA9tlBomamOfhGIpi9mkCWtaY0Mw2IUWO+d0Uh4cfmeQV6w6jOX6xJzw== +"@dhis2/app-service-plugin@3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@dhis2/app-service-plugin/-/app-service-plugin-3.11.2.tgz#c966c0576be6da88fa41d02cd0767cb9f1a7df80" + integrity sha512-8zAEhDaqq7OQvxbpJF7rkkQt6/0iCF1EqWkA9q3ssngTp7kMZ55EGye4g1VoupcSV30atUost+9LDsBouxqW7w== dependencies: post-robot "^10.0.46" -"@dhis2/app-shell@11.7.0": - version "11.7.0" - resolved "https://registry.npmjs.org/@dhis2/app-shell/-/app-shell-11.7.0.tgz" - integrity sha512-esx449gAHBo3gB1RRZXhuigT5OcUfW0ckf2yKsOzjsw7iznDuHCv1X/ypZpkO5gVlGNxX/LaCOaPZ38/FDBCAA== +"@dhis2/app-shell@12.0.0-alpha.19": + version "12.0.0-alpha.19" + resolved "https://registry.yarnpkg.com/@dhis2/app-shell/-/app-shell-12.0.0-alpha.19.tgz#af80fdecea8c7cd539ae15c32e3387c641c2798e" + integrity sha512-p5iRbjg5PCIYfJ1BaSRVQhmfrkIAl4JrFvPQjP4ukFTOY6oLoKOrxsMkyYHqWpjofNlsJyga15JFtg5Bi7SNsA== dependencies: - "@dhis2/app-adapter" "11.7.0" - "@dhis2/app-runtime" "^3.10.4" + "@dhis2/app-adapter" "12.0.0-alpha.19" + "@dhis2/app-runtime" "^3.11.1" "@dhis2/d2-i18n" "^1.1.1" - "@dhis2/pwa" "11.7.0" - "@dhis2/ui" "^9.8.9" + "@dhis2/pwa" "12.0.0-alpha.19" + "@dhis2/ui" "^9.11.7" classnames "^2.2.6" moment "^2.29.1" post-robot "^10.0.46" prop-types "^15.7.2" - react "^16.8.6" - react-dom "^16.8.6" - react-scripts "^5.0.1" + react "^18" + react-dom "^18" source-map-explorer "^2.1.0" styled-jsx "^4.0.1" typeface-roboto "^0.0.75" typescript "^3.6.3" -"@dhis2/cli-app-scripts@^11.7.0": - version "11.7.0" - resolved "https://registry.npmjs.org/@dhis2/cli-app-scripts/-/cli-app-scripts-11.7.0.tgz" - integrity sha512-S3lkVz/BGyoZARC4yLcIxD0fkKr3XZo2Mh6wS+lPjucLLmTcZFObi1ozxm5OzOK3KPHSEvQQug8LLD8eVh2ERg== +"@dhis2/cli-app-scripts@^12.0.0-alpha.19": + version "12.0.0-alpha.19" + resolved "https://registry.yarnpkg.com/@dhis2/cli-app-scripts/-/cli-app-scripts-12.0.0-alpha.19.tgz#0a8ca99bd5b32d0fb4c58a291013a10cbeb9f707" + integrity sha512-qIM2qmDyqH/LSDZBRZMX1AftGBvRBHLsbSxQ5fopyqbrXVC4/2owp+9rxcEXNfb9WClwKnJmIBYfO32OonRiaw== dependencies: "@babel/core" "^7.6.2" "@babel/plugin-proposal-class-properties" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-flow" "^7.24.7" "@babel/preset-env" "^7.14.7" "@babel/preset-react" "^7.0.0" "@babel/preset-typescript" "^7.6.0" - "@dhis2/app-shell" "11.7.0" - "@dhis2/cli-helpers-engine" "^3.2.0" + "@dhis2/app-shell" "12.0.0-alpha.19" + "@dhis2/cli-helpers-engine" "^3.2.2" "@jest/core" "^27.0.6" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.4" + "@vitejs/plugin-react" "^4.2.1" "@yarnpkg/lockfile" "^1.1.0" archiver "^3.1.1" axios "^0.25.0" @@ -1996,6 +2170,7 @@ detect-port "^1.3.0" dotenv "^8.1.0" dotenv-expand "^5.1.0" + fast-glob "^3.3.2" file-loader "^6.2.0" form-data "^3.0.0" fs-extra "^8.1.0" @@ -2017,10 +2192,11 @@ style-loader "^3.3.1" styled-jsx "^4.0.1" terser-webpack-plugin "^5.3.1" + vite "^5.2.9" + vite-plugin-dynamic-import "^1.5.0" webpack "^5.41.1" webpack-dev-server "^4.7.4" - workbox-build "^6.1.5" - workbox-webpack-plugin "^6.5.4" + workbox-build "^7.1.1" "@dhis2/cli-helpers-engine@^1.5.0": version "1.5.0" @@ -2034,9 +2210,9 @@ update-notifier "^3.0.0" yargs "^13.1.0" -"@dhis2/cli-helpers-engine@^3.0.0", "@dhis2/cli-helpers-engine@^3.2.0": +"@dhis2/cli-helpers-engine@^3.0.0", "@dhis2/cli-helpers-engine@^3.2.2": version "3.2.2" - resolved "https://registry.npmjs.org/@dhis2/cli-helpers-engine/-/cli-helpers-engine-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/@dhis2/cli-helpers-engine/-/cli-helpers-engine-3.2.2.tgz#e3ab24d3da46c7ecb79a31cb332548ebdac72d1c" integrity sha512-zMBm33WzYbjmb/eqIfpZS1ZZWbFaRHoHZoVhKWvOX0TDAEmdPtEmfG5fc5keV3CU9lDBIyXCfmca0KJeNvs5/w== dependencies: chalk "^3.0.0" @@ -2138,16 +2314,27 @@ resolved "https://registry.npmjs.org/@dhis2/prop-types/-/prop-types-3.1.2.tgz" integrity sha512-eM0jjLOWvtXWqSFp5YC4DHFpkP8Y1D2eUwGV7MBWjni+o27oesVan+oT7WHeOeLdlAd4acRJrnaaAyB4Ck1wGQ== -"@dhis2/pwa@11.7.0": - version "11.7.0" - resolved "https://registry.npmjs.org/@dhis2/pwa/-/pwa-11.7.0.tgz" - integrity sha512-Ia85clJGfq6NBZwH++a5SP3guC/YJJPkTVxEeThFyQW5HSuSiahb93pWLyUyOm2SfjXgPVcSJLMr1GY6Az9yPw== +"@dhis2/pwa@12.0.0-alpha.19": + version "12.0.0-alpha.19" + resolved "https://registry.yarnpkg.com/@dhis2/pwa/-/pwa-12.0.0-alpha.19.tgz#7634cc8888fccfa0f5a91c7e1137b30fb530c6b3" + integrity sha512-ytOuvK/HRoqidDxw/9MEJiMvBBbuuU1ZXjGDahsiVa3Y/vgn8HhPeUUQxVu3kxJECXr//gxa+SpCDoR1UzP4tw== dependencies: idb "^6.0.0" - workbox-core "^6.1.5" - workbox-precaching "^6.1.5" - workbox-routing "^6.1.5" - workbox-strategies "^6.1.5" + workbox-precaching "^7.1.0" + workbox-routing "^7.1.0" + workbox-strategies "^7.1.0" + +"@dhis2/ui-constants@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.12.0.tgz#e0dc9a82fe40959ecba4ca06bb9b351d0ce759b6" + integrity sha512-tC9XwxKfrd0aedPlPBgkJvRS2FMdp2o3SEXyoYS8XAkqwnrNRIpE1PhAIrsB2ITFNNpqXZvjSMSvy+4TSRRcwg== + dependencies: + prop-types "^15.7.2" + +"@dhis2/ui-icons@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.12.0.tgz#97de32cb43c599ca99cd4bcc881354f4591e3e02" + integrity sha512-LgUQTG90ftJgExCRlzarkIF69vvrS+N0EZkVfMsC/OvSdHBDM/U+NgxuSrqhJneFr3XKpDrrj02TRbAFYEqz/g== "@discoveryjs/json-ext@0.5.7": version "0.5.7" @@ -2590,6 +2777,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== +"@esbuild/aix-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" + integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== + "@esbuild/android-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" @@ -2600,6 +2792,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== +"@esbuild/android-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" + integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== + "@esbuild/android-arm@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" @@ -2610,6 +2807,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== +"@esbuild/android-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" + integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== + "@esbuild/android-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" @@ -2620,6 +2822,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== +"@esbuild/android-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" + integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== + "@esbuild/darwin-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" @@ -2630,6 +2837,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== +"@esbuild/darwin-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" + integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== + "@esbuild/darwin-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" @@ -2640,6 +2852,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== +"@esbuild/darwin-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" + integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== + "@esbuild/freebsd-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" @@ -2650,6 +2867,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== +"@esbuild/freebsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" + integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== + "@esbuild/freebsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" @@ -2660,6 +2882,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== +"@esbuild/freebsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" + integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== + "@esbuild/linux-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" @@ -2670,6 +2897,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== +"@esbuild/linux-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" + integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== + "@esbuild/linux-arm@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" @@ -2680,6 +2912,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== +"@esbuild/linux-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" + integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== + "@esbuild/linux-ia32@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" @@ -2690,6 +2927,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== +"@esbuild/linux-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" + integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== + "@esbuild/linux-loong64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" @@ -2700,6 +2942,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== +"@esbuild/linux-loong64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" + integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== + "@esbuild/linux-mips64el@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" @@ -2710,6 +2957,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== +"@esbuild/linux-mips64el@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" + integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== + "@esbuild/linux-ppc64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" @@ -2720,6 +2972,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== +"@esbuild/linux-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" + integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== + "@esbuild/linux-riscv64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" @@ -2730,6 +2987,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== +"@esbuild/linux-riscv64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" + integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== + "@esbuild/linux-s390x@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" @@ -2740,6 +3002,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== +"@esbuild/linux-s390x@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" + integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== + "@esbuild/linux-x64@0.19.12": version "0.19.12" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz" @@ -2750,6 +3017,11 @@ resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== +"@esbuild/linux-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" + integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== + "@esbuild/netbsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" @@ -2760,6 +3032,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== +"@esbuild/netbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" + integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== + +"@esbuild/openbsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" + integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== + "@esbuild/openbsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" @@ -2770,6 +3052,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== +"@esbuild/openbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" + integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== + "@esbuild/sunos-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" @@ -2780,6 +3067,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== +"@esbuild/sunos-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" + integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== + "@esbuild/win32-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" @@ -2790,6 +3082,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== +"@esbuild/win32-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" + integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== + "@esbuild/win32-ia32@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" @@ -2800,6 +3097,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== +"@esbuild/win32-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" + integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== + "@esbuild/win32-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" @@ -2810,6 +3112,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== +"@esbuild/win32-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" + integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" @@ -3003,13 +3310,6 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" @@ -3440,6 +3740,17 @@ is-module "^1.0.0" resolve "^1.19.0" +"@rollup/plugin-node-resolve@^15.2.3": + version "15.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz#efbb35515c9672e541c08d59caba2eff492a55d5" + integrity sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.22.1" + "@rollup/plugin-replace@^2.4.1": version "2.4.2" resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz" @@ -3448,6 +3759,15 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" +"@rollup/plugin-terser@^0.4.3": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" + integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== + dependencies: + serialize-javascript "^6.0.1" + smob "^1.0.0" + terser "^5.17.4" + "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz" @@ -3457,6 +3777,105 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^5.0.1": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf" + integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.2.tgz#07db37fcd9d401aae165f662c0069efd61d4ffcc" + integrity sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA== + +"@rollup/rollup-android-arm64@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.2.tgz#160975402adf85ecd58a0721ad60ae1779a68147" + integrity sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA== + +"@rollup/rollup-darwin-arm64@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.2.tgz#2b126f0aa4349694fe2941bcbcc4b0982b7f1a49" + integrity sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg== + +"@rollup/rollup-darwin-x64@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.2.tgz#3f4987eff6195532037c50b8db92736e326b5bb2" + integrity sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA== + +"@rollup/rollup-freebsd-arm64@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.2.tgz#15fe184ecfafc635879500f6985c954e57697c44" + integrity sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw== + +"@rollup/rollup-freebsd-x64@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.2.tgz#c72d37315d36b6e0763b7aabb6ae53c361b45e05" + integrity sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg== + +"@rollup/rollup-linux-arm-gnueabihf@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.2.tgz#f274f81abf845dcca5f1f40d434a09a79a3a73a0" + integrity sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig== + +"@rollup/rollup-linux-arm-musleabihf@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.2.tgz#9edaeb1a9fa7d4469917cb0614f665f1cf050625" + integrity sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw== + +"@rollup/rollup-linux-arm64-gnu@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.2.tgz#6eb6851f594336bfa00f074f58a00a61e9751493" + integrity sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ== + +"@rollup/rollup-linux-arm64-musl@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.2.tgz#9d8dc8e80df8f156d2888ecb8d6c96d653580731" + integrity sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.2.tgz#358e3e7dda2d60c46ff7c74f7075045736df5b50" + integrity sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw== + +"@rollup/rollup-linux-riscv64-gnu@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.2.tgz#b08461ace599c3f0b5f27051f1756b6cf1c78259" + integrity sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg== + +"@rollup/rollup-linux-s390x-gnu@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.2.tgz#daab36c9b5c8ac4bfe5a9c4c39ad711464b7dfee" + integrity sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q== + +"@rollup/rollup-linux-x64-gnu@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.2.tgz#4cc3a4f31920bdb028dbfd7ce0e972a17424a63c" + integrity sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ== + +"@rollup/rollup-linux-x64-musl@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.2.tgz#59800e26c538517ee05f4645315d9e1aded93200" + integrity sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q== + +"@rollup/rollup-win32-arm64-msvc@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.2.tgz#c80e2c33c952b6b171fa6ad9a97dfbb2e4ebee44" + integrity sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw== + +"@rollup/rollup-win32-ia32-msvc@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.2.tgz#a1e9d275cb16f6d5feb9c20aee7e897b1e193359" + integrity sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw== + +"@rollup/rollup-win32-x64-msvc@4.24.2": + version "4.24.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.2.tgz#0610af0fb8fec52be779d5b163bbbd6930150467" + integrity sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA== + "@rushstack/eslint-patch@^1.1.0": version "1.10.4" resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz" @@ -3660,12 +4079,12 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack5@8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.3.3.tgz#85a20e5cf7ed95cfa0f83981aa0f885cda137c11" - integrity sha512-4zBvHZoKjm+ZgZ6CpGEFlgGMfoSbHiKdwFLG+t/hV6zKDN/tmBC65KCjZ6pq/RUukvDJyfFLOiOZpc8JyTVFZw== +"@storybook/builder-webpack5@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.3.6.tgz#dbe5ddd9db2f760d60036ea4fb8a674658ca5006" + integrity sha512-Eqn2k8aA9f0o6IMQNAxGAMfSDeTP3YYCQAtOL5Gt5lgrqLV5JMTbZOfmaRBZ82ej/BBSAopnQKIJjQBBFx6kAQ== dependencies: - "@storybook/core-webpack" "8.3.3" + "@storybook/core-webpack" "8.3.6" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" browser-assert "^1.2.1" @@ -3698,28 +4117,28 @@ resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-8.3.3.tgz#0779bcbc95951cc6a552bf3af80f13bae18f747f" integrity sha512-uF63A176rbaI34Ev8aD7L1S8WuYCtnsJoje45q7lajvD4W1FrJNT3SuQ2nFTYvmKNlK97Um26lNUsRZdmXC/kw== -"@storybook/components@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.3.3.tgz#4b3ac4eedba3bca0884782916c4f6f1e7003b741" - integrity sha512-i2JYtesFGkdu+Hwuj+o9fLuO3yo+LPT1/8o5xBVYtEqsgDtEAyuRUWjSz8d8NPtzloGPOv5kvR6MokWDfbeMfw== +"@storybook/components@^8.3.3", "@storybook/components@^8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.3.6.tgz#2f5e9a755a964c94f0bab3cd400cc7a71d0489d2" + integrity sha512-TXuoGZY7X3iixF45lXkYOFk8k2q9OHcqHyHyem1gATLLQXgyOvDgzm+VB7uKBNzssRQPEE+La70nfG8bq/viRw== "@storybook/core-events@^8.3.3": version "8.3.3" resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-8.3.3.tgz#0b7cb3b737335a5d4091108a01352720e0e1f965" integrity sha512-YL+gBuCS81qktzTkvw0MXUJW0bYAXfRzMoiLfDBTrEKZfcJOB4JAlMGmvRRar0+jygK3icD42Rl5BwWoZY6KFQ== -"@storybook/core-webpack@8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.3.3.tgz#5398019f480481bb7915a5d4b112ed728487273c" - integrity sha512-GKEpGGe8gzf+2BCZ4PeUb5JBcLPF3TS5fRrm8Zp5+iOc8Y51xfys2ifL3KqqZR0KLig9LcLlKMnFlSXPb4a7Cw== +"@storybook/core-webpack@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.3.6.tgz#4e4d78e52fe88e8f325c7be21b05e7e42cbea730" + integrity sha512-ks306CFKD7FePQzRYyTjddiLsSriceblzv4rI+IjVtftkJvcEbxub2yWkV27kPP/e9kSd4Li3M34bX5mkiwkZA== dependencies: "@types/node" "^22.0.0" ts-dedent "^2.0.0" -"@storybook/core@8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.3.3.tgz#657ce39312ceec5ba03382fe4d4d83ca396bb9ab" - integrity sha512-pmf2bP3fzh45e56gqOuBT8sDX05hGdUKIZ/hcI84d5xmd6MeHiPW8th2v946wCHcxHzxib2/UU9vQUh+mB4VNw== +"@storybook/core@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.3.6.tgz#fb439d4edc0722e3bf6fdaff0469bb21566edab1" + integrity sha512-frwfgf0EJ7QL29DWZ5bla/g0eOOWqJGd14t+VUBlpP920zB6sdDfo7+p9JoCjD9u08lGeFDqbPNKayUk+0qDag== dependencies: "@storybook/csf" "^0.1.11" "@types/express" "^4.17.21" @@ -3759,10 +4178,10 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.2.12.tgz#3e4c939113b67df7ab17b78f805dbb57f4acf0db" integrity sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q== -"@storybook/manager-api@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.3.3.tgz#5518cc761264c9972732fcd9e025a7bc2fee7297" - integrity sha512-Na4U+McOeVUJAR6qzJfQ6y2Qt0kUgEDUriNoAn+curpoKPTmIaZ79RAXBzIqBl31VyQKknKpZbozoRGf861YaQ== +"@storybook/manager-api@^8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.3.6.tgz#6dfb268a5f1f8228d0bac69fd6e63f6bd2620c2d" + integrity sha512-Xt5VFZcL+G/9uzaHjzWFhxRNrP+4rPhSRKEvCZorAbC9+Hv+ZDs1JSZS5wMb4WKpXBZ0rwDVOLwngqbVtfRHuQ== "@storybook/node-logger@^8.3.3": version "8.3.3" @@ -3780,13 +4199,13 @@ pnp-webpack-plugin "^1.7.0" semver "^7.5.4" -"@storybook/preset-react-webpack@8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.3.3.tgz#f01e69640068101ad5dc4918dc7bd49b1f8f4596" - integrity sha512-uvGtGQ2BDzmHCDl0jCvoAzbD7AWPf9nU7zQsgvpCgs7BiHQVXq40ZU+aFhU74K/WLvdArMOoyZPU70dJGzvdKg== +"@storybook/preset-react-webpack@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.3.6.tgz#f1fd392ecfe9462b597d2d9cb5e5fadd69e61f5a" + integrity sha512-Ar0vhJITXa4xsXT3RdgYZ2mhXxE3jfUisQzsITey5a2RVgnSBIENggmRZ/6j1oVgEXFthbarNEsebGiA+2vDZg== dependencies: - "@storybook/core-webpack" "8.3.3" - "@storybook/react" "8.3.3" + "@storybook/core-webpack" "8.3.6" + "@storybook/react" "8.3.6" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" @@ -3799,10 +4218,10 @@ tsconfig-paths "^4.2.0" webpack "5" -"@storybook/preview-api@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.3.3.tgz#9f625a2d5e647137c5df7e419eda59e98f88cd44" - integrity sha512-GP2QlaF3BBQGAyo248N7549YkTQjCentsc1hUvqPnFWU4xfjkejbnFk8yLaIw0VbYbL7jfd7npBtjZ+6AnphMQ== +"@storybook/preview-api@^8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.3.6.tgz#7891b0d9f86bfb49c98eb34487c432354710b468" + integrity sha512-/Wxvb7wbI2O2iH63arRQQyyojA630vibdshkFjuC/u1nYdptEV1jkxa0OYmbZbKCn4/ze6uH4hfsKOpDPV9SWg== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -3822,27 +4241,32 @@ resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.3.3.tgz#0a23588f507c5c69b1153e43f16c37dbf38b82f1" integrity sha512-0dPC9K7+K5+X/bt3GwYmh+pCpisUyKVjWsI+PkzqGnWqaXFakzFakjswowIAIO1rf7wYZR591x3ehUAyL2bJiQ== +"@storybook/react-dom-shim@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.3.6.tgz#40ce82a4e6559a617c4a7288b532652fefcd271e" + integrity sha512-9BO6VXIdli4GHSfiP/Z0gwAf7oQig3D/yWK2U1+91UWDV8nIAgnNBAi76U4ORC6MiK5MdkDfIikIxnLLeLnahA== + "@storybook/react-webpack5@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.3.3.tgz#a6245d758e992c25ab318e974cba43800e2e2c7b" - integrity sha512-ikD48XvgmP/kegnjJ9+RoiKGF9IdVjOc1MFUnnIU1TNLwCsqkwf5jGcOvFTAzK8Phu/ykwUBWT41UqBptkrHEQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.3.6.tgz#5f8aa77bdd66a7d6774ec25ef208fd5639f14c36" + integrity sha512-8HBnBab6kPJuX0gQGIl6voZXLRdvyXxd5wmHXc0db0T9Ozq5iuNbo9sUEk9QCwJpuQc7lDDmuOkXHVq1WjSibw== dependencies: - "@storybook/builder-webpack5" "8.3.3" - "@storybook/preset-react-webpack" "8.3.3" - "@storybook/react" "8.3.3" + "@storybook/builder-webpack5" "8.3.6" + "@storybook/preset-react-webpack" "8.3.6" + "@storybook/react" "8.3.6" "@types/node" "^22.0.0" -"@storybook/react@8.3.3", "@storybook/react@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.3.3.tgz#87d16b3a22f4ace86747f6a382f506a7550a31dc" - integrity sha512-fHOW/mNqI+sZWttGOE32Q+rAIbN7/Oib091cmE8usOM0z0vPNpywUBtqC2cCQH39vp19bhTsQaSsTcoBSweAHw== +"@storybook/react@8.3.6", "@storybook/react@^8.3.3": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.3.6.tgz#da7dedf28c9985476409ab118142337db1bd03d0" + integrity sha512-s3COryqIOYK7urgZaCPb77zlxGjPKr6dIsYmblQJcsFY2ZlG2x0Ysm8b5oRgD8Pv71hCJ0PKYA4RzDgBVYJS9A== dependencies: - "@storybook/components" "^8.3.3" + "@storybook/components" "^8.3.6" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "^8.3.3" - "@storybook/preview-api" "^8.3.3" - "@storybook/react-dom-shim" "8.3.3" - "@storybook/theming" "^8.3.3" + "@storybook/manager-api" "^8.3.6" + "@storybook/preview-api" "^8.3.6" + "@storybook/react-dom-shim" "8.3.6" + "@storybook/theming" "^8.3.6" "@types/escodegen" "^0.0.6" "@types/estree" "^0.0.51" "@types/node" "^22.0.0" @@ -3868,10 +4292,10 @@ lodash "^4.17.21" prettier "^3.1.1" -"@storybook/theming@^8.3.3": - version "8.3.3" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.3.3.tgz#38f2fb24e719f7a97c359a84c93be86ca2c9a20e" - integrity sha512-gWJKetI6XJQgkrvvry4ez10+jLaGNCQKi5ygRPM9N+qrjA3BB8F2LCuFUTBuisa4l64TILDNjfwP/YTWV5+u5A== +"@storybook/theming@^8.3.3", "@storybook/theming@^8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.3.6.tgz#57c5789903e50b84844aa8e7ce0e1f031e98a948" + integrity sha512-LQjUk6GXRW9ELkoBKuqzQKFUW+ajfGPfVELcfs3/VQX61VhthJ4olov4bGPc04wsmmFMgN/qODxT485IwOHfPQ== "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" @@ -4117,61 +4541,44 @@ resolved "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-3.0.0.tgz" integrity sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q== -"@testing-library/dom@^8.0.0": - version "8.20.1" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz" - integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== +"@testing-library/dom@^10.4.0": + version "10.4.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" + integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" "@types/aria-query" "^5.0.1" - aria-query "5.1.3" + aria-query "5.3.0" chalk "^4.1.0" dom-accessibility-api "^0.5.9" lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.16.1": - version "5.17.0" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz" - integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== +"@testing-library/jest-dom@^6.6.2": + version "6.6.3" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz#26ba906cf928c0f8172e182c6fe214eb4f9f2bd2" + integrity sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA== dependencies: - "@adobe/css-tools" "^4.0.1" - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" + "@adobe/css-tools" "^4.4.0" aria-query "^5.0.0" chalk "^3.0.0" css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" + dom-accessibility-api "^0.6.3" + lodash "^4.17.21" redent "^3.0.0" -"@testing-library/react-hooks@^7.0.1": - version "7.0.2" - resolved "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz" - integrity sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg== +"@testing-library/react@^16.0.1": + version "16.0.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.0.1.tgz#29c0ee878d672703f5e7579f239005e4e0faa875" + integrity sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg== dependencies: "@babel/runtime" "^7.12.5" - "@types/react" ">=16.9.0" - "@types/react-dom" ">=16.9.0" - "@types/react-test-renderer" ">=16.9.0" - react-error-boundary "^3.1.0" -"@testing-library/react@^12.1.2": - version "12.1.5" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" - -"@testing-library/user-event@^13.5.0": - version "13.5.0" - resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== - dependencies: - "@babel/runtime" "^7.12.5" +"@testing-library/user-event@^14.5.2": + version "14.5.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" + integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== "@tootallnate/once@1": version "1.1.2" @@ -4185,10 +4592,10 @@ "@types/aria-query@^5.0.1": version "5.0.4" - resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.18.0": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.18.0", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -4258,7 +4665,7 @@ "@types/doctrine@^0.0.9": version "0.0.9" - resolved "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz" + resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.9.tgz#d86a5f452a15e3e3113b99e39616a9baa0f9863f" integrity sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA== "@types/escodegen@^0.0.6": @@ -4266,15 +4673,7 @@ resolved "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz" integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== -"@types/eslint-scope@^3.7.3": - version "3.7.7" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": +"@types/eslint@^7.29.0 || ^8.4.1": version "8.56.11" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz" integrity sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q== @@ -4282,10 +4681,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/estree@0.0.39": version "0.0.39" @@ -4392,14 +4791,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*": - version "29.5.12" - resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" @@ -4524,13 +4915,6 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@<18.0.0", "@types/react-dom@>=16.9.0": - version "17.0.25" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz" - integrity sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA== - dependencies: - "@types/react" "^17" - "@types/react-router-config@*", "@types/react-router-config@^5.0.6": version "5.0.11" resolved "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz" @@ -4557,20 +4941,12 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-test-renderer@>=16.9.0": - version "18.3.0" - resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.0.tgz" - integrity sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@>=16.9.0", "@types/react@^16.8.0 || ^17.0.0 || ^18.0.0", "@types/react@^17": - version "17.0.80" - resolved "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz" - integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA== +"@types/react@*", "@types/react@^16.8.0 || ^17.0.0 || ^18.0.0", "@types/react@^18": + version "18.3.12" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" + integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== dependencies: "@types/prop-types" "*" - "@types/scheduler" "^0.16" csstype "^3.0.2" "@types/resolve@1.17.1": @@ -4580,6 +4956,11 @@ dependencies: "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + "@types/resolve@^1.20.2": version "1.20.6" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz" @@ -4597,11 +4978,6 @@ dependencies: "@types/node" "*" -"@types/scheduler@^0.16": - version "0.16.8" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - "@types/semver@^6.0.1": version "6.2.7" resolved "https://registry.npmjs.org/@types/semver/-/semver-6.2.7.tgz" @@ -4658,28 +5034,21 @@ resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.9" - resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz" - integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== - dependencies: - "@types/jest" "*" - "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== -"@types/unist@*", "@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.10" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" - integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== - -"@types/unist@^3.0.0": +"@types/unist@*", "@types/unist@^3.0.0": version "3.0.2" resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz" integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== +"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.10" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + "@types/uuid@9.0.8", "@types/uuid@^9.0.1": version "9.0.8" resolved "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz" @@ -4814,6 +5183,17 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@vitejs/plugin-react@^4.2.1": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.3.tgz#28301ac6d7aaf20b73a418ee5c65b05519b4836c" + integrity sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA== + dependencies: + "@babel/core" "^7.25.2" + "@babel/plugin-transform-react-jsx-self" "^7.24.7" + "@babel/plugin-transform-react-jsx-source" "^7.24.7" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.2" + "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" @@ -5079,21 +5459,6 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -airbnb-prop-types@^2.16.0: - version "2.16.0" - resolved "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz" - integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== - dependencies: - array.prototype.find "^2.1.1" - function.prototype.name "^1.1.2" - is-regex "^1.1.0" - object-is "^1.1.2" - object.assign "^4.1.0" - object.entries "^1.1.2" - prop-types "^15.7.2" - prop-types-exact "^1.2.0" - react-is "^16.13.1" - ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" @@ -5342,7 +5707,14 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@5.1.3, aria-query@^5.0.0, aria-query@~5.1.3: +aria-query@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@^5.0.0, aria-query@~5.1.3: version "5.1.3" resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz" integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== @@ -5452,17 +5824,6 @@ array.prototype.filter@^1.0.0: es-object-atoms "^1.0.0" is-string "^1.0.7" -array.prototype.find@^2.1.1: - version "2.2.3" - resolved "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.3.tgz" - integrity sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - array.prototype.findlast@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz" @@ -5557,7 +5918,7 @@ asap@~2.0.3, asap@~2.0.6: asn1.js@^4.10.1: version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" @@ -5604,7 +5965,7 @@ ast-types@0.14.2, ast-types@^0.14.2: ast-types@^0.16.1: version "0.16.1" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.16.1.tgz#7a9da1617c9081bc121faafe91711b4c8bb81da2" integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== dependencies: tslib "^2.0.1" @@ -6025,18 +6386,18 @@ bluebird@^3.5.3, bluebird@^3.7.2: bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.2.1: +bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" content-type "~1.0.5" @@ -6046,7 +6407,7 @@ body-parser@1.20.2: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.11.0" + qs "6.13.0" raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -6160,12 +6521,12 @@ broadcast-channel@^3.4.1: brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-assert@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== browser-process-hrtime@^1.0.0: @@ -6180,7 +6541,7 @@ browser-stdout@^1.3.1: browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -6190,9 +6551,9 @@ browserify-aes@^1.0.4, browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: +browserify-cipher@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -6201,7 +6562,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -6210,16 +6571,17 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + version "4.1.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz#06e530907fe2949dc21fc3c2e2302e10b1437238" + integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" + bn.js "^5.2.1" + randombytes "^2.1.0" + safe-buffer "^5.2.1" -browserify-sign@^4.0.0: +browserify-sign@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== dependencies: bn.js "^5.2.1" @@ -6243,15 +6605,15 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.0, browserslist@^4.23.1: - version "4.23.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" - integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.0, browserslist@^4.24.0: + version "4.24.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" + integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== dependencies: - caniuse-lite "^1.0.30001646" - electron-to-chromium "^1.5.4" + caniuse-lite "^1.0.30001669" + electron-to-chromium "^1.5.41" node-releases "^2.0.18" - update-browserslist-db "^1.1.0" + update-browserslist-db "^1.1.1" bser@2.1.1: version "2.1.1" @@ -6282,7 +6644,7 @@ buffer-from@^1.0.0: buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@^5.1.0, buffer@^5.5.0, buffer@^5.7.1: @@ -6441,10 +6803,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001599, caniuse-lite@^1.0.30001646: - version "1.0.30001646" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz" - integrity sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001599, caniuse-lite@^1.0.30001669: + version "1.0.30001673" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001673.tgz#5aa291557af1c71340e809987367410aab7a5a9e" + integrity sha512-WTrjUCSMp3LYX0nE12ECkV0a+e6LC85E0Auz75555/qr78Oc8YWhEPNfDd6SHdtlCMSzqtuXY0uyEMNRcsKpKw== capital-case@^1.0.4: version "1.0.4" @@ -6634,16 +6996,16 @@ ci-info@^3.2.0: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.3: - version "1.3.1" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + version "1.4.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170" + integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== class-transformer@0.5.1: version "0.5.1" @@ -7118,7 +7480,7 @@ consola@^2.15.3: constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== content-disposition@0.5.2: @@ -7184,10 +7546,10 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== copy-descriptor@^0.1.0: version "0.1.1" @@ -7298,9 +7660,9 @@ crc@^3.4.4: dependencies: buffer "^5.1.0" -create-ecdh@^4.0.0: +create-ecdh@^4.0.4: version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -7308,7 +7670,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -7317,9 +7679,9 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -7378,21 +7740,22 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: which "^2.0.1" crypto-browserify@^3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + version "3.12.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac" + integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" + browserify-cipher "^1.0.1" + browserify-sign "^4.2.3" + create-ecdh "^4.0.4" + create-hash "^1.2.0" + create-hmac "^1.1.7" + diffie-hellman "^5.0.3" + hash-base "~3.0.4" + inherits "^2.0.4" + pbkdf2 "^3.1.2" + public-encrypt "^4.0.3" + randombytes "^2.1.0" + randomfill "^1.0.4" crypto-random-string@^1.0.0: version "1.0.0" @@ -7943,14 +8306,14 @@ depd@~1.1.2: resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -dequal@^2.0.2: +dequal@^2.0.2, dequal@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== des.js@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" @@ -8009,11 +8372,6 @@ diff-sequences@^27.5.1: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" @@ -8024,9 +8382,9 @@ diff@^5.2.0: resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz" integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== -diffie-hellman@^5.0.0: +diffie-hellman@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -8104,11 +8462,16 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: +dom-accessibility-api@^0.5.9: version "0.5.16" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" @@ -8281,15 +8644,15 @@ ejs@^3.1.5, ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.3.378, electron-to-chromium@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz" - integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.5.41: + version "1.5.47" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.47.tgz#ef0751bc19b28be8ee44cd8405309de3bf3b20c7" + integrity sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ== elliptic@^6.5.3, elliptic@^6.5.5: - version "6.5.6" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz" - integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ== + version "6.6.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.0.tgz#5919ec723286c1edf28685aa89261d4761afa210" + integrity sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA== dependencies: bn.js "^4.11.9" brorand "^1.1.0" @@ -8344,6 +8707,11 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + encoding@^0.1.12: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" @@ -8367,7 +8735,7 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.5" -enhanced-resolve@^5.17.0: +enhanced-resolve@^5.17.1: version "5.17.1" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== @@ -8403,35 +8771,7 @@ env-paths@^2.2.1: resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -enzyme-adapter-react-16@^1.15.8: - version "1.15.8" - resolved "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.8.tgz" - integrity sha512-uYGC31eGZBp5nGsr4nKhZKvxGQjyHGjS06BJsUlWgE29/hvnpgCsT1BJvnnyny7N3GIIVyxZ4O9GChr6hy2WQA== - dependencies: - enzyme-adapter-utils "^1.14.2" - enzyme-shallow-equal "^1.0.7" - hasown "^2.0.0" - object.assign "^4.1.5" - object.values "^1.1.7" - prop-types "^15.8.1" - react-is "^16.13.1" - react-test-renderer "^16.0.0-0" - semver "^5.7.2" - -enzyme-adapter-utils@^1.14.2: - version "1.14.2" - resolved "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz" - integrity sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA== - dependencies: - airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.6" - hasown "^2.0.0" - object.assign "^4.1.5" - object.fromentries "^2.0.7" - prop-types "^15.8.1" - semver "^6.3.1" - -enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.7: +enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: version "1.0.7" resolved "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz" integrity sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg== @@ -8590,7 +8930,7 @@ es-iterator-helpers@^1.0.19: iterator.prototype "^1.1.2" safe-array-concat "^1.1.2" -es-module-lexer@^1.2.1, es-module-lexer@^1.5.0: +es-module-lexer@^1.2.1, es-module-lexer@^1.5.0, es-module-lexer@^1.5.4: version "1.5.4" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz" integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== @@ -8602,7 +8942,7 @@ es-object-atoms@^1.0.0: dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.1, es-set-tostringtag@^2.0.3: +es-set-tostringtag@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== @@ -8629,39 +8969,40 @@ es-to-primitive@^1.2.1: esbuild-register@^3.5.0: version "3.6.0" - resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d" integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== dependencies: debug "^4.3.4" -"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", esbuild@^0.21.5: - version "0.21.5" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== +"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0": + version "0.23.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8" + integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" + "@esbuild/aix-ppc64" "0.23.1" + "@esbuild/android-arm" "0.23.1" + "@esbuild/android-arm64" "0.23.1" + "@esbuild/android-x64" "0.23.1" + "@esbuild/darwin-arm64" "0.23.1" + "@esbuild/darwin-x64" "0.23.1" + "@esbuild/freebsd-arm64" "0.23.1" + "@esbuild/freebsd-x64" "0.23.1" + "@esbuild/linux-arm" "0.23.1" + "@esbuild/linux-arm64" "0.23.1" + "@esbuild/linux-ia32" "0.23.1" + "@esbuild/linux-loong64" "0.23.1" + "@esbuild/linux-mips64el" "0.23.1" + "@esbuild/linux-ppc64" "0.23.1" + "@esbuild/linux-riscv64" "0.23.1" + "@esbuild/linux-s390x" "0.23.1" + "@esbuild/linux-x64" "0.23.1" + "@esbuild/netbsd-x64" "0.23.1" + "@esbuild/openbsd-arm64" "0.23.1" + "@esbuild/openbsd-x64" "0.23.1" + "@esbuild/sunos-x64" "0.23.1" + "@esbuild/win32-arm64" "0.23.1" + "@esbuild/win32-ia32" "0.23.1" + "@esbuild/win32-x64" "0.23.1" esbuild@^0.19.4: version "0.19.12" @@ -8692,10 +9033,39 @@ esbuild@^0.19.4: "@esbuild/win32-ia32" "0.19.12" "@esbuild/win32-x64" "0.19.12" -escalade@^3.1.1, escalade@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== +esbuild@^0.21.3, esbuild@^0.21.5: + version "0.21.5" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-goat@^2.0.0: version "2.1.1" @@ -9092,6 +9462,11 @@ estree-walker@^1.0.1: resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" @@ -9145,7 +9520,7 @@ events@^3.2.0: evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -9229,48 +9604,37 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0: - version "29.7.0" - resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - express@^4.17.3, express@^4.19.2: - version "4.19.2" - resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + version "4.21.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281" + integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.2" + body-parser "1.20.3" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.7.1" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + finalhandler "1.3.1" fresh "0.5.2" http-errors "2.0.0" - merge-descriptors "1.0.1" + merge-descriptors "1.0.3" methods "~1.1.2" on-finished "2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.7" + path-to-regexp "0.1.10" proxy-addr "~2.0.7" - qs "6.11.0" + qs "6.13.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" + send "0.19.0" + serve-static "1.16.2" setprototypeof "1.2.0" statuses "2.0.1" type-is "~1.6.18" @@ -9353,7 +9717,7 @@ fast-glob@^2.0.2, fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -9548,13 +9912,13 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" on-finished "2.4.1" parseurl "~1.3.3" @@ -9722,7 +10086,7 @@ fork-ts-checker-webpack-plugin@^6.5.0: fork-ts-checker-webpack-plugin@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz#dae45dfe7298aa5d553e2580096ced79b6179504" integrity sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg== dependencies: "@babel/code-frame" "^7.16.7" @@ -9879,7 +10243,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -10426,14 +10790,23 @@ has-yarn@^2.1.0: resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== -has@^1.0.3: +has@^1.0.3, has@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/has/-/has-1.0.4.tgz" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== -hash-base@^3.0.0, hash-base@~3.0: +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-base@~3.0, hash-base@~3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== dependencies: inherits "^2.0.1" @@ -10441,7 +10814,7 @@ hash-base@^3.0.0, hash-base@~3.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -10562,7 +10935,7 @@ history@^4.9.0: hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -11421,7 +11794,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.4: +is-regex@^1.0.5, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -11786,16 +12159,6 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - jest-docblock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" @@ -11844,11 +12207,6 @@ jest-get-type@^27.5.1: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - jest-haste-map@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" @@ -11910,16 +12268,6 @@ jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" @@ -11950,21 +12298,6 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" @@ -12425,10 +12758,10 @@ jsdom@^16.6.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== jsesc@~0.5.0: version "0.5.0" @@ -12977,7 +13310,7 @@ luxon@3.2.1: lz-string@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== magic-string@^0.25.0, magic-string@^0.25.7: @@ -12987,10 +13320,10 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.5: - version "0.30.11" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz" - integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== +magic-string@^0.30.11, magic-string@^0.30.5: + version "0.30.12" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" + integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -13118,7 +13451,7 @@ match-sorter@^6.0.2: md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -13209,10 +13542,10 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge-stream@^2.0.0: version "2.0.0" @@ -13268,7 +13601,7 @@ microseconds@0.2.0: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -13333,7 +13666,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== minimatch@3.0.4, minimatch@~3.0.2: @@ -13591,7 +13924,7 @@ no-case@^3.0.4: node-abort-controller@^3.0.1: version "3.1.1" - resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-dir@^0.1.10, node-dir@^0.1.17: @@ -13781,7 +14114,7 @@ object-inspect@^1.13.1, object-inspect@^1.7.0: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== -object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.5: +object-is@^1.0.2, object-is@^1.1.5: version "1.1.6" resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz" integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== @@ -13816,7 +14149,7 @@ object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.4, object.assign@ has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.8: +object.entries@^1.1.1, object.entries@^1.1.8: version "1.1.8" resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz" integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== @@ -14095,7 +14428,7 @@ parent-module@^1.0.0: parse-asn1@^5.0.0, parse-asn1@^5.1.7: version "5.1.7" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== dependencies: asn1.js "^4.10.1" @@ -14189,7 +14522,7 @@ pascalcase@^0.1.1: path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-dirname@^1.0.0: @@ -14240,10 +14573,10 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" + integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== path-to-regexp@2.2.1: version "2.2.1" @@ -14276,9 +14609,9 @@ pause-stream@0.0.11: dependencies: through "~2.3" -pbkdf2@^3.0.3, pbkdf2@^3.1.2: +pbkdf2@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -14307,16 +14640,21 @@ picocolors@^0.2.1: resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== -picocolors@^1.0.0, picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.0.0, picocolors@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" @@ -14979,14 +15317,14 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.4: - version "8.4.40" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz" - integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== +postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.4, postcss@^8.4.43: + version "8.4.47" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== dependencies: nanoid "^3.3.7" - picocolors "^1.0.1" - source-map-js "^1.2.0" + picocolors "^1.1.0" + source-map-js "^1.2.1" prelude-ls@^1.2.1: version "1.2.1" @@ -15045,15 +15383,6 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" @@ -15106,18 +15435,6 @@ prompts@^2.0.1, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types-exact@^1.2.0: - version "1.2.5" - resolved "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.5.tgz" - integrity sha512-wHDhA5TSSvU07gdzsdeT/FZg6zay94K4Y7swSK4YsRG3moWB0Qsp9g1Y5BBausP1HF8K4UeVe2Xt7ZFJByKp6A== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - hasown "^2.0.2" - isarray "^2.0.5" - object.assign "^4.1.5" - reflect.ownkeys "^1.1.4" - prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" @@ -15167,9 +15484,9 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -public-encrypt@^4.0.0: +public-encrypt@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -15238,16 +15555,9 @@ qs@6.10.4: dependencies: side-channel "^1.0.4" -qs@6.11.0: - 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" - -qs@^6.12.3: +qs@6.13.0, qs@^6.12.3: version "6.13.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: side-channel "^1.0.6" @@ -15306,9 +15616,9 @@ randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: +randomfill@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" @@ -15469,9 +15779,9 @@ react-docgen@^6.0.0-alpha.0: strip-indent "^4.0.0" react-docgen@^7.0.0: - version "7.0.3" - resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-7.0.3.tgz" - integrity sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-7.1.0.tgz#4b41e557dab939a5157be09ee532fd09c07d99fc" + integrity sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g== dependencies: "@babel/core" "^7.18.9" "@babel/traverse" "^7.18.9" @@ -15484,9 +15794,9 @@ react-docgen@^7.0.0: resolve "^1.22.1" strip-indent "^4.0.0" -react-dom@16.13, "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^16.8.6: +react-dom@16.13: version "16.13.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" @@ -15494,6 +15804,14 @@ react-dom@16.13, "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^16.8.6: prop-types "^15.6.2" scheduler "^0.19.1" +"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18, react-dom@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + react-element-to-jsx-string@^15.0.0: version "15.0.0" resolved "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz" @@ -15503,13 +15821,6 @@ react-element-to-jsx-string@^15.0.0: is-plain-object "5.0.0" react-is "18.1.0" -react-error-boundary@^3.1.0: - version "3.1.4" - resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz" - integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== - dependencies: - "@babel/runtime" "^7.12.5" - react-error-overlay@^6.0.11, react-error-overlay@^6.0.7: version "6.0.11" resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz" @@ -15538,12 +15849,17 @@ react-helmet-async@*, react-helmet-async@^1.3.0: react-fast-compare "^3.2.0" shallowequal "^1.1.0" -react-is@18.1.0, react-is@^18.0.0: +react-is@18.1.0: version "18.1.0" resolved "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz" integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.6: +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -15605,6 +15921,11 @@ react-refresh@^0.11.0: resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== +react-refresh@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== + react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz" @@ -15695,15 +16016,13 @@ react-scripts@^5.0.1: optionalDependencies: fsevents "^2.3.2" -react-test-renderer@^16.0.0-0: - version "16.14.0" - resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== +react-shallow-renderer@^16.15.0: + version "16.15.0" + resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" + integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== dependencies: object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" + react-is "^16.12.0 || ^17.0.0 || ^18.0.0" react-textarea-autosize@^8.3.2: version "8.5.3" @@ -15714,15 +16033,22 @@ react-textarea-autosize@^8.3.2: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react@16.13, "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^16.8.6: +react@16.13: version "16.13.1" - resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" +"react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18, react@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" @@ -15759,7 +16085,7 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.2.0, readable-stream@^3.4.0, readable-stream@^3.5.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.2.0, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -15814,7 +16140,7 @@ recast@^0.20.3: recast@^0.23.5: version "0.23.9" - resolved "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.9.tgz#587c5d3a77c2cfcb0c18ccce6da4361528c2587b" integrity sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q== dependencies: ast-types "^0.16.1" @@ -15897,17 +16223,6 @@ reflect.getprototypeof@^1.0.4: globalthis "^1.0.3" which-builtin-type "^1.1.3" -reflect.ownkeys@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-1.1.4.tgz" - integrity sha512-iUNmtLgzudssL+qnTUosCmnq3eczlrVd1wXrgx/GhiI/8FvwrTYWtCJ9PNvWIRX+4ftupj2WUfB5mu5s9t6LnA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - globalthis "^1.0.3" - regenerate-unicode-properties@^10.1.0: version "10.1.1" resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" @@ -16351,7 +16666,7 @@ rimraf@~2.6.2: ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -16374,6 +16689,33 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" +rollup@^4.20.0: + version "4.24.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.2.tgz#04bbe819c1a0cd933533b79687f5dc43efb7a7f0" + integrity sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.24.2" + "@rollup/rollup-android-arm64" "4.24.2" + "@rollup/rollup-darwin-arm64" "4.24.2" + "@rollup/rollup-darwin-x64" "4.24.2" + "@rollup/rollup-freebsd-arm64" "4.24.2" + "@rollup/rollup-freebsd-x64" "4.24.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.24.2" + "@rollup/rollup-linux-arm-musleabihf" "4.24.2" + "@rollup/rollup-linux-arm64-gnu" "4.24.2" + "@rollup/rollup-linux-arm64-musl" "4.24.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.24.2" + "@rollup/rollup-linux-riscv64-gnu" "4.24.2" + "@rollup/rollup-linux-s390x-gnu" "4.24.2" + "@rollup/rollup-linux-x64-gnu" "4.24.2" + "@rollup/rollup-linux-x64-musl" "4.24.2" + "@rollup/rollup-win32-arm64-msvc" "4.24.2" + "@rollup/rollup-win32-ia32-msvc" "4.24.2" + "@rollup/rollup-win32-x64-msvc" "4.24.2" + fsevents "~2.3.2" + rst-selector-parser@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz" @@ -16438,7 +16780,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -16491,12 +16833,19 @@ saxes@^5.0.1: scheduler@^0.19.1: version "0.19.1" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + schema-utils@2.7.0, schema-utils@^2.6.5: version "2.7.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" @@ -16578,7 +16927,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.4.1, semver@^5.6.0, semver@^5.7.2: +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.4.1, semver@^5.6.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -16607,7 +16956,26 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semve resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -send@0.18.0, send@latest: +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +send@latest: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== @@ -16667,15 +17035,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.19.0" set-blocking@^2.0.0: version "2.0.0" @@ -16731,7 +17099,7 @@ setprototypeof@1.2.0: sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -16874,6 +17242,11 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +smob@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" + integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" @@ -16955,10 +17328,10 @@ source-map-explorer@^2.1.0: temp "^0.9.4" yargs "^16.2.0" -source-map-js@^1.0.1, source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-loader@^3.0.0: version "3.0.2" @@ -17205,15 +17578,15 @@ stop-iteration-iterator@^1.0.0: internal-slot "^1.0.4" storybook@^8.3.3: - version "8.3.3" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.3.3.tgz#3de9be589815403539660653d2ec810348e7dafb" - integrity sha512-FG2KAVQN54T9R6voudiEftehtkXtLO+YVGP2gBPfacEdDQjY++ld7kTbHzpTT/bpCDx7Yq3dqOegLm9arVJfYw== + version "8.3.6" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.3.6.tgz#c5e733504fac26c1a31c527a645c04ec7da4222f" + integrity sha512-9GVbtej6ZzPRUM7KRQ7848506FfHrUiJGqPuIQdoSJd09EmuEoLjmLAgEOmrHBQKgGYMaM7Vh9GsTLim6vwZTQ== dependencies: - "@storybook/core" "8.3.3" + "@storybook/core" "8.3.6" stream-browserify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== dependencies: inherits "~2.0.4" @@ -17794,10 +18167,10 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.1, terser-webpack-plugi serialize-javascript "^6.0.1" terser "^5.26.0" -terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: - version "5.31.3" - resolved "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz" - integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== +terser@^5.0.0, terser@^5.10.0, terser@^5.17.4, terser@^5.26.0: + version "5.36.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" + integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -18101,7 +18474,7 @@ tsconfig-paths@^3.15.0: tsconfig-paths@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== dependencies: json5 "^2.2.2" @@ -18570,13 +18943,13 @@ upath@^1.1.1, upath@^1.2.0: resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" + escalade "^3.2.0" + picocolors "^1.1.0" update-notifier@^3.0.0: version "3.0.1" @@ -18666,7 +19039,7 @@ url-parse@^1.5.3: url@^0.11.0: version "0.11.4" - resolved "https://registry.npmjs.org/url/-/url-0.11.4.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== dependencies: punycode "^1.4.1" @@ -18721,7 +19094,7 @@ util.promisify@~1.0.0: util@^0.12.4, util@^0.12.5: version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -18898,6 +19271,27 @@ vinyl@^2.0.0, vinyl@^2.2.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +vite-plugin-dynamic-import@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/vite-plugin-dynamic-import/-/vite-plugin-dynamic-import-1.6.0.tgz#c9680b2093fc897721fe535202acc8af77537ae4" + integrity sha512-TM0sz70wfzTIo9YCxVFwS8OA9lNREsh+0vMHGSkWDTZ7bgd1Yjs5RV8EgB634l/91IsXJReg0xtmuQqP0mf+rg== + dependencies: + acorn "^8.12.1" + es-module-lexer "^1.5.4" + fast-glob "^3.3.2" + magic-string "^0.30.11" + +vite@^5.2.9: + version "5.4.10" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.10.tgz#d358a7bd8beda6cf0f3b7a450a8c7693a4f80c18" + integrity sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" @@ -19023,7 +19417,7 @@ webpack-dev-middleware@^5.3.4: webpack-dev-middleware@^6.1.2: version "6.1.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz#79f4103f8c898564c9e96c3a9c2422de50f249bc" integrity sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw== dependencies: colorette "^2.0.10" @@ -19070,7 +19464,7 @@ webpack-dev-server@^4.6.0, webpack-dev-server@^4.7.4, webpack-dev-server@^4.9.3: webpack-hot-middleware@^2.25.1: version "2.26.1" - resolved "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz#87214f1e3f9f3acab9271fef9e6ed7b637d719c0" integrity sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A== dependencies: ansi-html-community "0.0.8" @@ -19121,11 +19515,10 @@ webpack-virtual-modules@^0.6.0, webpack-virtual-modules@^0.6.2: integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== webpack@5, webpack@^5.41.1, webpack@^5.64.4, webpack@^5.73.0: - version "5.93.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz" - integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA== + version "5.95.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.95.0.tgz#8fd8c454fa60dad186fbe36c400a55848307b4c0" + integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" @@ -19134,7 +19527,7 @@ webpack@5, webpack@^5.41.1, webpack@^5.64.4, webpack@^5.73.0: acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -19338,6 +19731,14 @@ workbox-background-sync@6.6.1: idb "^7.0.1" workbox-core "6.6.1" +workbox-background-sync@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz#dac65e30af603511f1c92c3e99f53d6c064fde90" + integrity sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ== + dependencies: + idb "^7.0.1" + workbox-core "7.1.0" + workbox-broadcast-update@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz" @@ -19345,7 +19746,14 @@ workbox-broadcast-update@6.6.1: dependencies: workbox-core "6.6.1" -workbox-build@6.6.1, workbox-build@^6.1.5: +workbox-broadcast-update@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-7.1.0.tgz#fe21c491cc70f1e037898bba63de0752ef59bd82" + integrity sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ== + dependencies: + workbox-core "7.1.0" + +workbox-build@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.1.tgz" integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== @@ -19388,6 +19796,49 @@ workbox-build@6.6.1, workbox-build@^6.1.5: workbox-sw "6.6.1" workbox-window "6.6.1" +workbox-build@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-7.1.1.tgz#bfbd4c44848c175b7773f921be3597cbfaaef827" + integrity sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.24.4" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^15.2.3" + "@rollup/plugin-replace" "^2.4.1" + "@rollup/plugin-terser" "^0.4.3" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "7.1.0" + workbox-broadcast-update "7.1.0" + workbox-cacheable-response "7.1.0" + workbox-core "7.1.0" + workbox-expiration "7.1.0" + workbox-google-analytics "7.1.0" + workbox-navigation-preload "7.1.0" + workbox-precaching "7.1.0" + workbox-range-requests "7.1.0" + workbox-recipes "7.1.0" + workbox-routing "7.1.0" + workbox-strategies "7.1.0" + workbox-streams "7.1.0" + workbox-sw "7.1.0" + workbox-window "7.1.0" + workbox-cacheable-response@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz" @@ -19395,11 +19846,23 @@ workbox-cacheable-response@6.6.1: dependencies: workbox-core "6.6.1" -workbox-core@6.6.1, workbox-core@^6.1.5: +workbox-cacheable-response@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-7.1.0.tgz#d138cc8ef2c32a9f28f29c5b2b0a8681da846c33" + integrity sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q== + dependencies: + workbox-core "7.1.0" + +workbox-core@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.1.tgz" integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== +workbox-core@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-7.1.0.tgz#1867576f994f20d9991b71a7d0b2581af22db170" + integrity sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q== + workbox-expiration@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.1.tgz" @@ -19408,6 +19871,14 @@ workbox-expiration@6.6.1: idb "^7.0.1" workbox-core "6.6.1" +workbox-expiration@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-7.1.0.tgz#c9d348ffc8c3d1ffdddaf6c37bf5be830a69073e" + integrity sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ== + dependencies: + idb "^7.0.1" + workbox-core "7.1.0" + workbox-google-analytics@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz" @@ -19418,6 +19889,16 @@ workbox-google-analytics@6.6.1: workbox-routing "6.6.1" workbox-strategies "6.6.1" +workbox-google-analytics@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-7.1.0.tgz#25cca57a05554b6121521590543e59628eb15a65" + integrity sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew== + dependencies: + workbox-background-sync "7.1.0" + workbox-core "7.1.0" + workbox-routing "7.1.0" + workbox-strategies "7.1.0" + workbox-navigation-preload@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz" @@ -19425,7 +19906,14 @@ workbox-navigation-preload@6.6.1: dependencies: workbox-core "6.6.1" -workbox-precaching@6.6.1, workbox-precaching@^6.1.5: +workbox-navigation-preload@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-7.1.0.tgz#2610674d412a1774b5d9f03c9644c9964407b8b6" + integrity sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A== + dependencies: + workbox-core "7.1.0" + +workbox-precaching@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.1.tgz" integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== @@ -19434,6 +19922,15 @@ workbox-precaching@6.6.1, workbox-precaching@^6.1.5: workbox-routing "6.6.1" workbox-strategies "6.6.1" +workbox-precaching@7.1.0, workbox-precaching@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-7.1.0.tgz#71e27ec2e85661a41b48dec0c92dae707c429eaa" + integrity sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA== + dependencies: + workbox-core "7.1.0" + workbox-routing "7.1.0" + workbox-strategies "7.1.0" + workbox-range-requests@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz" @@ -19441,6 +19938,13 @@ workbox-range-requests@6.6.1: dependencies: workbox-core "6.6.1" +workbox-range-requests@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-7.1.0.tgz#8d4344cd85b87d8077289a64dda59fb614628783" + integrity sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ== + dependencies: + workbox-core "7.1.0" + workbox-recipes@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.1.tgz" @@ -19453,20 +19957,46 @@ workbox-recipes@6.6.1: workbox-routing "6.6.1" workbox-strategies "6.6.1" -workbox-routing@6.6.1, workbox-routing@^6.1.5: +workbox-recipes@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-7.1.0.tgz#37625cd2fe7e5decd70c8934a673a7cc080a7675" + integrity sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg== + dependencies: + workbox-cacheable-response "7.1.0" + workbox-core "7.1.0" + workbox-expiration "7.1.0" + workbox-precaching "7.1.0" + workbox-routing "7.1.0" + workbox-strategies "7.1.0" + +workbox-routing@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.1.tgz" integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== dependencies: workbox-core "6.6.1" -workbox-strategies@6.6.1, workbox-strategies@^6.1.5: +workbox-routing@7.1.0, workbox-routing@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-7.1.0.tgz#c44bda350d1c5eb633ee97a660e64ce5473250c4" + integrity sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg== + dependencies: + workbox-core "7.1.0" + +workbox-strategies@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.1.tgz" integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== dependencies: workbox-core "6.6.1" +workbox-strategies@7.1.0, workbox-strategies@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-7.1.0.tgz#a589f2adc0df8f33049c7f4d4cdf4c9556715918" + integrity sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew== + dependencies: + workbox-core "7.1.0" + workbox-streams@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.1.tgz" @@ -19475,12 +20005,25 @@ workbox-streams@6.6.1: workbox-core "6.6.1" workbox-routing "6.6.1" +workbox-streams@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-7.1.0.tgz#8e080e56b5dee7aa0f956fdd3a10506821d2e786" + integrity sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w== + dependencies: + workbox-core "7.1.0" + workbox-routing "7.1.0" + workbox-sw@6.6.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.1.tgz" integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== -workbox-webpack-plugin@^6.4.1, workbox-webpack-plugin@^6.5.4: +workbox-sw@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-7.1.0.tgz#3df97d7cccb647eb94d66be7dc733c9fda26b9fc" + integrity sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA== + +workbox-webpack-plugin@^6.4.1: version "6.6.1" resolved "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz" integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== @@ -19499,6 +20042,14 @@ workbox-window@6.6.1: "@types/trusted-types" "^2.0.2" workbox-core "6.6.1" +workbox-window@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-7.1.0.tgz#58a90ba89ca35d26f2b322223ee575c750bac7a1" + integrity sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "7.1.0" + worker-rpc@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz"