From e4c0f868801a2ae95f2157e9217dd2045d6175d6 Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Fri, 12 Jul 2024 09:29:34 -0400 Subject: [PATCH 01/11] Update README.md (#411) --- README.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 100 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8e5f7357..6ab64dda 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,106 @@ -# BCO Portal -The BCO Portal consists of two applications. + Biocompute logo and title image here +# BioCompute: A Platform for Bioinformatics Analysis Workflow +## Introduction +BioCompute is a platform designed to facilitate the documentation and communication of bioinformatics analysis workflows. Following the IEEE 2791-2020 standard, BioCompute aims to ease communication burdens between research centers, organizations, and industries by providing a standardized, human- and machine-readable format for BioCompute Objects (BCOs). -## BCO Portal Server (AKA UserDB) -The [`SERVER`](server/README.md) directory contains the UserDB application. It utilizes Django (Python) and a SQLite3 DB. +## Key Features +- **Standardized Documentation**: Adopts the IEEE 2791-2020 standard for bioinformatics analyses. +- **User-Friendly Interface**: Build BioCompute Objects through an intuitive web portal. +- **Extensible**: Supports integration with various bioinformatics tools and databases. +- **Community-Driven**: Open-source and welcoming contributions from the community. -## BCO Portal Client (AKA Portal) - The [`CLIENT`](client/README.md) directory contains the UI application. It utilizes React and Redux ToolKit. +## Quickstart Guide -## Deployment instructions can be found here: -- [Local deployment for devleopment](docs/localDeployment.md) -- [Production deployment](docs/productionDeployment.md) -- [Docker deployment](docs/dockerDeployment.md) [WIP] -- [FAQ and trouble shooting](docs/faq.md) +Follow these steps to get started with BioCompute: +1. Clone the Repository: + +`git clone https://github.com/biocompute/bcodb.git +cd bcodb` + +3. Set Up the Environment: + +Ensure you have Python and Node.js installed. + +Install dependencies: + +`pip install -r requirements.txt +npm install` + +4. Run the Server: + +`cd server +python manage.py runserver` + +5. Run the Client: + +`cd client +npm start` + +Access the Portal: +Open your web browser and navigate to **'http://localhost:3000'**. + +## Architecture + +BioCompute consists of two main components: + +- **BCO Portal Server (UserDB)**: + +Located in the **[`SERVER`](server/README.md)** directory. +Built with Django (Python) and uses SQLite3 for the database. + +- **BCO Portal Client (Portal)**: + +Located in the **[`CLIENT`](client/README.md)** directory. +Built with React and Redux ToolKit. + +## Workflow Diagram +![gitflow diagram drawio](https://github.com/biocompute-objects/portal_userdb/assets/56750374/90128e93-9e5a-4611-9621-204fc8c73774) + +## Installation +### Local Deployment for Development + +Clone the Repository: + +`git clone https://github.com/biocompute/bcodb.git +cd bcodb` + +Install Dependencies: + +`pip install -r requirements.txt +npm install +` + +Run the Applications: + +`cd server +python manage.py runserver +cd ../client +npm start` + +Follow the detailed instructions in our [Local deployment Guide](docs/localDeployment.md) +### Production Deployment +Follow the detailed instructions in our [Production deployment Guide](docs/productionDeployment.md). + +### Docker Deployment +Our [Docker deployment Guide](docs/dockerDeployment.md) is currently a work in progress. Stay tuned for updates. + +## Contributing +We welcome contributions from the community! To contribute: + +Fork the repository on GitHub. +Create a feature branch. +Commit your changes. +Submit a pull request. +Please refer to our [Contributing Guide]() for more details. + +## FAQ and Troubleshooting +Find solutions to common issues in our [FAQ and trouble shooting Guide](docs/faq.md). + +## License +BioCompute is licensed under the Apache 2.0 License. See the [LICENSE]() file for more details. + +## Acknowledgements +We thank all our contributors and the wider community for their support. From 95748075dbe8e462ca7acd564113b25a8e36d355 Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Mon, 15 Jul 2024 13:13:02 -0400 Subject: [PATCH 02/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ab64dda..2eb85e93 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Located in the **[`CLIENT`](client/README.md)** directory. Built with React and Redux ToolKit. ## Workflow Diagram -![gitflow diagram drawio](https://github.com/biocompute-objects/portal_userdb/assets/56750374/90128e93-9e5a-4611-9621-204fc8c73774) +![BCO Portal git workflow drawio](https://github.com/user-attachments/assets/5ebf19bd-a99a-4023-9be0-6f74930f891c) ## Installation ### Local Deployment for Development From ff632f00230430109ce1c4eeacac1985193bf6a1 Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Mon, 15 Jul 2024 13:15:05 -0400 Subject: [PATCH 03/11] Added Workflow diagram --- docs/BCO Portal git workflow.drawio.png | Bin 0 -> 178924 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/BCO Portal git workflow.drawio.png diff --git a/docs/BCO Portal git workflow.drawio.png b/docs/BCO Portal git workflow.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..0e507286cd5239f26db98f4525902b4a163e5ada GIT binary patch literal 178924 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 literal 0 HcmV?d00001 From b3bf7e8bc2e21e0c64fad7bddd2bb0d92967d53b Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Mon, 15 Jul 2024 13:21:38 -0400 Subject: [PATCH 04/11] Added logo image --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2eb85e93..6da456b4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ +![biocompute](https://github.com/user-attachments/assets/785e87f2-66a5-4a17-821b-c52bdf3c56e6) - Biocompute logo and title image here # BioCompute: A Platform for Bioinformatics Analysis Workflow ## Introduction BioCompute is a platform designed to facilitate the documentation and communication of bioinformatics analysis workflows. Following the IEEE 2791-2020 standard, BioCompute aims to ease communication burdens between research centers, organizations, and industries by providing a standardized, human- and machine-readable format for BioCompute Objects (BCOs). From d6be28fdd3b15335338b282d5acb6ce9e6c5e2db Mon Sep 17 00:00:00 2001 From: Tianyi Wang <90009613+tiwa1154@users.noreply.github.com> Date: Tue, 16 Jul 2024 02:18:32 -0400 Subject: [PATCH 05/11] fixed script driver not saving (#422) Co-authored-by: tianywan819 <57418894+tianywan819@users.noreply.github.com> --- client/src/components/builder/executionDomain.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/src/components/builder/executionDomain.js b/client/src/components/builder/executionDomain.js index 77f94aab..f6feadbd 100644 --- a/client/src/components/builder/executionDomain.js +++ b/client/src/components/builder/executionDomain.js @@ -42,9 +42,10 @@ export const ExecutionDomain = ({onSave}) => { { From 73c7cc546f36215657057f3bc958aafa6128f496 Mon Sep 17 00:00:00 2001 From: Tianyi Wang <90009613+tiwa1154@users.noreply.github.com> Date: Thu, 18 Jul 2024 18:23:54 -0400 Subject: [PATCH 06/11] Embargo saving issue (#426) * fixed script driver not saving * Fixed Embargo Time not saving and prepopulate issue --------- Co-authored-by: tianywan819 <57418894+tianywan819@users.noreply.github.com> --- .../components/builder/provenanceDomain.js | 12 ++- .../src/components/builder/specialFeilds.js | 85 +++++++++++++++---- 2 files changed, 77 insertions(+), 20 deletions(-) diff --git a/client/src/components/builder/provenanceDomain.js b/client/src/components/builder/provenanceDomain.js index 064c014b..b1d3f0ef 100644 --- a/client/src/components/builder/provenanceDomain.js +++ b/client/src/components/builder/provenanceDomain.js @@ -4,7 +4,7 @@ import {Card, CardContent, CardHeader, Typography, Grid, Button, TextField } fro import { Formik, Form, FieldArray } from "formik"; import { Contribution, FormObserver, Reviewer, Next } from "./components"; import { useSelector, useDispatch } from "react-redux" -import { BaisicDateTimePicker, MyTextField } from "./specialFeilds"; +import { BaisicDateTimePicker, MyTextField, EmbargoDateTimePicker } from "./specialFeilds"; import { updateProvenanceDomain, updateModified } from "../../slices/bcoSlice"; import "../../App.css"; import RemoveCircleIcon from "@mui/icons-material/RemoveCircle"; @@ -48,6 +48,10 @@ export const ProvenanceDomain = ({onSave} ) => { "obsolete_after": has_obsolete ? provenanceDomain["obsolete_after"] : [], "contributors": has_contributors ? provenanceDomain["contributors"] : [], "review": has_review ? provenanceDomain["review"] : [], + "embargo": embargo ? { + start_time: (provenanceDomain["embargo"] && provenanceDomain["embargo"].start_time) || null, + end_time: (provenanceDomain["embargo"] && provenanceDomain["embargo"].end_time) || null, + } : { start_time: null, end_time: null }, } } validationSchema={Yup.object().shape({ @@ -182,13 +186,13 @@ export const ProvenanceDomain = ({onSave} ) => { Start time: - + End Time: - + ) })) From 1fbc3a0a3555608f001797d41bfd1f87305c95db Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Thu, 25 Jul 2024 16:47:54 -0400 Subject: [PATCH 08/11] Contribution doc and related documentations. (#434) * Create Contribute doc * Create Contribute doc * Update CONTRIBUTING.md * Update code_of_conduct.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update * Added contribution documents * Update contribution doc --- .github/PULL_REQUEST_TEMPLATE.md | 0 CONTRIBUTING.md | 118 +++++++++++++++++++++++++ README.md | 2 +- docs/README.md | 0 docs/contributing/code_of_conduct.md | 64 ++++++++++++++ docs/contributing/development_setup.md | 26 ++++++ docs/contributing/index.md | 0 docs/contributing/license.md | 0 docs/contributing/style_guides.md | 1 + docs/contributing/testing.md | 0 10 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CONTRIBUTING.md create mode 100644 docs/README.md create mode 100644 docs/contributing/code_of_conduct.md create mode 100644 docs/contributing/development_setup.md create mode 100644 docs/contributing/index.md create mode 100644 docs/contributing/license.md create mode 100644 docs/contributing/style_guides.md create mode 100644 docs/contributing/testing.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..e69de29b diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..964e7dc9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,118 @@ +# Contributing to the Biocompute Project + +Thank you for considering contributing to the Biocompute project! This document outlines the process to help you contribute. + +All types of contributions are encouraged and valued. See the Table of Contents for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉 + +> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: +> - Star the project +> - Tweet about it +> - Refer this project in your project's readme +> - Mention the project at local meetups and tell your friends/colleagues + +## Table of Contents + +- [Code of Conduct](./docs/contributing/code_of_conduct.md) +- [How to Contribute](#how-to-contribute) + - [Reporting Bugs](#reporting-bugs) + - [Suggesting Enhancements](#suggesting-enhancements) + - [Submitting Code Changes](#submitting-code-changes) +- [Development Setup](#development-setup) +- [Style Guides](#style-guides) + - [Code Style](#code-style) + - [Commit Messages](#commit-messages) +- [Testing](#testing) +- [Documentation](#documentation) +- [License](#license) + +## Code of Conduct + +This project adheres to the Contributor Covenant [Code of Conduct](./docs/contributing/code_of_conduct.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the [Team](mailto:hadley_king@email.gwu.edu ). + +## I Have a Question + +> If you want to ask a question, we assume that you have read the available [Documentation](/README.md). + +Before you ask a question, it is best to search for existing [Issues](https://github.com/biocompute-objects/portal_userdb/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. + +If you then still feel the need to ask a question and need clarification, we recommend the following: + +- Open an [Issue](https://github.com/biocompute-objects/portal_userdb/issues/new/choose). +- Provide as much context as you can about what you're running into. +- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant. + +We will then take care of the issue as soon as possible. +## How to Contribute + +### Reporting Bugs + +#### Before Submitting a Bug Report +A good bug report shouldn’t leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. +If you find a bug, please create an issue on GitHub with the following information: + +- A clear and descriptive title. +- Steps to reproduce the issue. +- Expected and actual behavior. +- Screenshots or logs, if applicable. +- Any other information that might be helpful. + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for Biocompute project, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions. + + +#### Before Submitting an Enhancement + +- Make sure that you are using the latest version. +- Read the [documentation](/README.md) carefully and find out if the functionality is already covered, maybe by an individual configuration. +- Perform a [search](https://github.com/biocompute-objects/portal_userdb/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. +- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. + + +#### How Do I Submit a Good Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://github.com/biocompute-objects/portal_userdb/issues).Provide the following: + +- Use a clear and descriptive title for the issue. +- A detailed explanation of the enhancement and why it would be useful. +- Any relevant examples or references. + +### Submitting Code Changes + +1. Fork the repository. +2. Create a new branch from `Development` (e.g., `feature-branch`). +3. Make your changes. +4. Ensure your code adheres to the [code style](./docs/contributing/style_guides.md). +5. Commit your changes with a descriptive message. +6. Push your branch to your fork. +7. Create a pull request (PR) to the `Development` branch of the original repository. + +Please ensure your PR includes: + +- A clear title and description of the change. +- References to any related issues (e.g., `Closes #123`). +- Necessary documentation updates. + +## Development Setup + +To set up a local development environment, follow the instructions in the [Development Setup](./docs/contributing/development_setup.md) guide. + +## Style Guides + +### Code Style + +Follow the existing code style. We use ESLint for JavaScript. Run `npm run lint` to check your code. + +### Commit Messages + +- Use the present tense ("Add feature" not "Added feature"). +- Capitalize the first letter. +- No period at the end. +- Include references to issues and pull requests when relevant. + +## Testing + +Please add tests for your changes and ensure all existing tests pass. Run the tests with: + +```sh +npm test diff --git a/README.md b/README.md index 6da456b4..2188ceec 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Fork the repository on GitHub. Create a feature branch. Commit your changes. Submit a pull request. -Please refer to our [Contributing Guide]() for more details. +Please refer to our [Contributing Guide](/CONTRIBUTING.md) for more details. ## FAQ and Troubleshooting Find solutions to common issues in our [FAQ and trouble shooting Guide](docs/faq.md). diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/contributing/code_of_conduct.md b/docs/contributing/code_of_conduct.md new file mode 100644 index 00000000..61b6686e --- /dev/null +++ b/docs/contributing/code_of_conduct.md @@ -0,0 +1,64 @@ +# Code of Conduct - Biocompute project + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban +temporarily or permanently any contributor for other behaviors that they deem +inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at <>. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + diff --git a/docs/contributing/development_setup.md b/docs/contributing/development_setup.md new file mode 100644 index 00000000..977a0fe6 --- /dev/null +++ b/docs/contributing/development_setup.md @@ -0,0 +1,26 @@ +### Local Deployment for Development + +Clone the Repository: + +`git clone https://github.com/biocompute/bcodb.git +cd bcodb` + +Install Dependencies: + +`pip install -r requirements.txt +npm install +` + +Run the Applications: + +`cd server +python manage.py runserver +cd ../client +npm start` + +Follow the detailed instructions in our [Local deployment Guide](/docs/localDeployment.md) +### Production Deployment +Follow the detailed instructions in our [Production deployment Guide](/docs/productionDeployment.md). + +### Docker Deployment +Our [Docker deployment Guide](/docs/dockerDeployment.md) is currently a work in progress. Stay tuned for updates. diff --git a/docs/contributing/index.md b/docs/contributing/index.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/contributing/license.md b/docs/contributing/license.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/contributing/style_guides.md b/docs/contributing/style_guides.md new file mode 100644 index 00000000..b0283e6c --- /dev/null +++ b/docs/contributing/style_guides.md @@ -0,0 +1 @@ +TBD.. diff --git a/docs/contributing/testing.md b/docs/contributing/testing.md new file mode 100644 index 00000000..e69de29b From 8602d22cdcf98e5efaf27fdfd859244f0212693d Mon Sep 17 00:00:00 2001 From: Reeya Gupta <56750374+Reeya123@users.noreply.github.com> Date: Thu, 25 Jul 2024 16:49:13 -0400 Subject: [PATCH 09/11] PopUp box on Builder page on how to create bco (#435) --- client/package-lock.json | 675 +++++++++++----------- client/package.json | 5 +- client/src/App.css | 32 +- client/src/components/builder/HelpBox.jsx | 42 ++ client/src/components/builder/index.js | 6 +- 5 files changed, 418 insertions(+), 342 deletions(-) create mode 100644 client/src/components/builder/HelpBox.jsx diff --git a/client/package-lock.json b/client/package-lock.json index c1caa888..7438059c 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -51,6 +51,7 @@ "yup": "^0.32.11" }, "devDependencies": { + "cross-env": "^7.0.3", "eslint": "^8.31.0" } }, @@ -4778,6 +4779,95 @@ "version": "2.5.0", "license": "0BSD" }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "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" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@testing-library/jest-dom": { "version": "5.16.5", "license": "MIT", @@ -4881,6 +4971,12 @@ "node": ">=10.13.0" } }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.1.20", "license": "MIT", @@ -5825,10 +5921,11 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "license": "Apache-2.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-flatten": { @@ -5962,16 +6059,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axe-core": { "version": "4.5.2", "license": "MPL-2.0", @@ -6907,6 +6994,24 @@ "node": ">=10" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -7358,30 +7463,6 @@ "version": "0.7.0", "license": "MIT" }, - "node_modules/deep-equal": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", "license": "MIT" @@ -7792,23 +7873,6 @@ "version": "1.0.0", "license": "MIT" }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-module-lexer": { "version": "0.9.3", "license": "MIT" @@ -8943,13 +9007,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.2", "license": "MIT", @@ -9382,16 +9439,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.10", "license": "ISC" @@ -9814,20 +9861,6 @@ "node": ">= 10" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "license": "MIT" @@ -9947,13 +9980,6 @@ "version": "1.1.3", "license": "MIT" }, - "node_modules/is-map": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-module": { "version": "1.0.0", "license": "MIT" @@ -10044,13 +10070,6 @@ "node": ">=6" } }, - "node_modules/is-set": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "license": "MIT", @@ -10097,34 +10116,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "license": "MIT" }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "license": "MIT", @@ -10135,17 +10130,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "license": "MIT", @@ -10156,10 +10140,6 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "2.0.5", - "license": "MIT" - }, "node_modules/isexe": { "version": "2.0.0", "license": "ISC" @@ -13731,6 +13711,15 @@ "node": ">=10" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/magic-string": { "version": "0.25.9", "license": "MIT", @@ -13946,6 +13935,15 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" @@ -14140,20 +14138,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "license": "MIT", @@ -17965,6 +17949,19 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ua-parser-js": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", @@ -18676,37 +18673,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-collection": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "license": "MIT", @@ -20187,10 +20153,12 @@ } }, "@csstools/postcss-unset-value": { - "version": "1.0.2" + "version": "1.0.2", + "requires": {} }, "@csstools/selector-specificity": { - "version": "2.0.2" + "version": "2.0.2", + "requires": {} }, "@date-io/core": { "version": "2.16.0" @@ -20320,7 +20288,8 @@ "@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==" + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "requires": {} }, "@emotion/utils": { "version": "1.2.1", @@ -21331,7 +21300,8 @@ } }, "@material-ui/types": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "@material-ui/utils": { "version": "4.11.3", @@ -21497,7 +21467,8 @@ "@mui/types": { "version": "7.2.14", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", - "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==" + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "requires": {} }, "@mui/utils": { "version": "5.15.14", @@ -21639,7 +21610,8 @@ } }, "@rjsf/material-ui": { - "version": "5.0.0-beta.14" + "version": "5.0.0-beta.14", + "requires": {} }, "@rjsf/utils": { "version": "5.0.0-beta.14", @@ -21832,6 +21804,73 @@ } } }, + "@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "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" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@testing-library/jest-dom": { "version": "5.16.5", "requires": { @@ -21891,6 +21930,12 @@ "@trysound/sax": { "version": "0.2.0" }, + "@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "peer": true + }, "@types/babel__core": { "version": "7.1.20", "requires": { @@ -22408,10 +22453,12 @@ } }, "acorn-import-assertions": { - "version": "1.8.0" + "version": "1.8.0", + "requires": {} }, "acorn-jsx": { - "version": "5.3.2" + "version": "5.3.2", + "requires": {} }, "acorn-node": { "version": "1.8.2", @@ -22475,7 +22522,8 @@ } }, "ajv-keywords": { - "version": "3.5.2" + "version": "3.5.2", + "requires": {} }, "ajv8": { "version": "npm:ajv@8.11.2", @@ -22526,9 +22574,11 @@ } }, "aria-query": { - "version": "5.1.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "requires": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "array-flatten": { @@ -22601,9 +22651,6 @@ "postcss-value-parser": "^4.2.0" } }, - "available-typed-arrays": { - "version": "1.0.5" - }, "axe-core": { "version": "4.5.2" }, @@ -22737,7 +22784,8 @@ } }, "babel-plugin-named-asset-import": { - "version": "0.3.8" + "version": "0.3.8", + "requires": {} }, "babel-plugin-polyfill-corejs2": { "version": "0.3.3", @@ -22887,7 +22935,8 @@ "version": "1.0.0" }, "bootstrap": { - "version": "5.2.3" + "version": "5.2.3", + "requires": {} }, "brace-expansion": { "version": "1.1.11", @@ -23197,6 +23246,15 @@ "yaml": "^1.10.0" } }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -23223,7 +23281,8 @@ } }, "css-declaration-sorter": { - "version": "6.3.1" + "version": "6.3.1", + "requires": {} }, "css-has-pseudo": { "version": "3.0.4", @@ -23296,7 +23355,8 @@ } }, "css-prefers-color-scheme": { - "version": "6.0.3" + "version": "6.0.3", + "requires": {} }, "css-select": { "version": "4.3.0", @@ -23385,7 +23445,8 @@ } }, "cssnano-utils": { - "version": "3.1.0" + "version": "3.1.0", + "requires": {} }, "csso": { "version": "4.2.0", @@ -23453,26 +23514,6 @@ "dedent": { "version": "0.7.0" }, - "deep-equal": { - "version": "2.1.0", - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" - } - }, "deep-is": { "version": "0.1.4" }, @@ -23723,19 +23764,6 @@ "es-array-method-boxes-properly": { "version": "1.0.0" }, - "es-get-iterator": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, "es-module-lexer": { "version": "0.9.3" }, @@ -24059,7 +24087,8 @@ } }, "eslint-plugin-react-hooks": { - "version": "4.6.0" + "version": "4.6.0", + "requires": {} }, "eslint-plugin-testing-library": { "version": "5.9.1", @@ -24468,12 +24497,6 @@ "follow-redirects": { "version": "1.15.2" }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, "fork-ts-checker-webpack-plugin": { "version": "6.5.2", "requires": { @@ -24712,12 +24735,6 @@ "slash": "^3.0.0" } }, - "gopd": { - "version": "1.0.1", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, "graceful-fs": { "version": "4.2.10" }, @@ -24894,7 +24911,8 @@ } }, "icss-utils": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "idb": { "version": "7.1.1" @@ -24961,13 +24979,6 @@ "ipaddr.js": { "version": "2.0.1" }, - "is-arguments": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1" }, @@ -25026,9 +25037,6 @@ "is-in-browser": { "version": "1.1.3" }, - "is-map": { - "version": "2.0.2" - }, "is-module": { "version": "1.0.0" }, @@ -25069,9 +25077,6 @@ "is-root": { "version": "2.1.0" }, - "is-set": { - "version": "2.0.2" - }, "is-shared-array-buffer": { "version": "1.0.2", "requires": { @@ -25093,44 +25098,21 @@ "has-symbols": "^1.0.2" } }, - "is-typed-array": { - "version": "1.1.10", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, "is-typedarray": { "version": "1.0.0" }, - "is-weakmap": { - "version": "2.0.1" - }, "is-weakref": { "version": "1.0.2", "requires": { "call-bind": "^1.0.2" } }, - "is-weakset": { - "version": "2.0.2", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "is-wsl": { "version": "2.2.0", "requires": { "is-docker": "^2.0.0" } }, - "isarray": { - "version": "2.0.5" - }, "isexe": { "version": "2.0.0" }, @@ -26276,7 +26258,8 @@ } }, "jest-pnp-resolver": { - "version": "1.2.3" + "version": "1.2.3", + "requires": {} }, "jest-regex-util": { "version": "27.5.1" @@ -27430,6 +27413,12 @@ "yallist": "^4.0.0" } }, + "lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "peer": true + }, "magic-string": { "version": "0.25.9", "requires": { @@ -27550,6 +27539,12 @@ "minimist": "^1.2.6" } }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "peer": true + }, "ms": { "version": "2.1.2" }, @@ -27670,13 +27665,6 @@ "object-inspect": { "version": "1.12.2" }, - "object-is": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "object-keys": { "version": "1.1.1" }, @@ -27972,7 +27960,8 @@ } }, "postcss-browser-comments": { - "version": "4.0.0" + "version": "4.0.0", + "requires": {} }, "postcss-calc": { "version": "8.2.4", @@ -28046,16 +28035,20 @@ } }, "postcss-discard-comments": { - "version": "5.1.2" + "version": "5.1.2", + "requires": {} }, "postcss-discard-duplicates": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-discard-empty": { - "version": "5.1.1" + "version": "5.1.1", + "requires": {} }, "postcss-discard-overridden": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-double-position-gradients": { "version": "3.1.2", @@ -28071,7 +28064,8 @@ } }, "postcss-flexbugs-fixes": { - "version": "5.0.2" + "version": "5.0.2", + "requires": {} }, "postcss-focus-visible": { "version": "6.0.4", @@ -28086,10 +28080,12 @@ } }, "postcss-font-variant": { - "version": "5.0.0" + "version": "5.0.0", + "requires": {} }, "postcss-gap-properties": { - "version": "3.0.5" + "version": "3.0.5", + "requires": {} }, "postcss-image-set-function": { "version": "4.0.7", @@ -28106,7 +28102,8 @@ } }, "postcss-initial": { - "version": "4.0.1" + "version": "4.0.1", + "requires": {} }, "postcss-js": { "version": "4.0.0", @@ -28145,10 +28142,12 @@ } }, "postcss-logical": { - "version": "5.0.4" + "version": "5.0.4", + "requires": {} }, "postcss-media-minmax": { - "version": "5.0.0" + "version": "5.0.0", + "requires": {} }, "postcss-merge-longhand": { "version": "5.1.7", @@ -28195,7 +28194,8 @@ } }, "postcss-modules-extract-imports": { - "version": "3.0.0" + "version": "3.0.0", + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -28239,7 +28239,8 @@ } }, "postcss-normalize-charset": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -28308,7 +28309,8 @@ } }, "postcss-page-break": { - "version": "3.0.4" + "version": "3.0.4", + "requires": {} }, "postcss-place": { "version": "7.0.5", @@ -28390,7 +28392,8 @@ } }, "postcss-replace-overflow-wrap": { - "version": "4.0.0" + "version": "4.0.0", + "requires": {} }, "postcss-selector-not": { "version": "6.0.1", @@ -28782,7 +28785,8 @@ "react-multi-select-component": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/react-multi-select-component/-/react-multi-select-component-4.3.4.tgz", - "integrity": "sha512-Ui/bzCbROF4WfKq3OKWyQJHmy/bd1mW7CQM+L83TfiltuVvHElhKEyPM3JzO9urIcWplBUKv+kyxqmEnd9jPcA==" + "integrity": "sha512-Ui/bzCbROF4WfKq3OKWyQJHmy/bd1mW7CQM+L83TfiltuVvHElhKEyPM3JzO9urIcWplBUKv+kyxqmEnd9jPcA==", + "requires": {} }, "react-redux": { "version": "8.0.5", @@ -28878,7 +28882,8 @@ } }, "react-side-effect": { - "version": "2.1.2" + "version": "2.1.2", + "requires": {} }, "react-textarea-autosize": { "version": "8.4.0", @@ -28954,7 +28959,8 @@ } }, "redux-thunk": { - "version": "2.4.2" + "version": "2.4.2", + "requires": {} }, "regenerate": { "version": "1.4.2" @@ -29095,7 +29101,8 @@ "version": "1.0.4" }, "rifm": { - "version": "0.12.1" + "version": "0.12.1", + "requires": {} }, "rimraf": { "version": "3.0.2", @@ -29532,7 +29539,8 @@ "version": "3.1.1" }, "style-loader": { - "version": "3.3.1" + "version": "3.3.1", + "requires": {} }, "stylehacks": { "version": "5.1.1", @@ -29840,6 +29848,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true + }, "ua-parser-js": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", @@ -29920,12 +29934,14 @@ "use-composed-ref": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==" + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "requires": {} }, "use-isomorphic-layout-effect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==" + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "requires": {} }, "use-latest": { "version": "1.2.1", @@ -29936,7 +29952,8 @@ } }, "use-sync-external-store": { - "version": "1.2.0" + "version": "1.2.0", + "requires": {} }, "util-deprecate": { "version": "1.0.2" @@ -30185,7 +30202,8 @@ } }, "ws": { - "version": "8.11.0" + "version": "8.11.0", + "requires": {} } } }, @@ -30266,26 +30284,6 @@ "is-symbol": "^1.0.3" } }, - "which-collection": { - "version": "1.0.1", - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-typed-array": { - "version": "1.1.9", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, "word-wrap": { "version": "1.2.3" }, @@ -30543,7 +30541,8 @@ } }, "ws": { - "version": "7.5.9" + "version": "7.5.9", + "requires": {} }, "xml-name-validator": { "version": "3.0.0" diff --git a/client/package.json b/client/package.json index d6889ba1..4175486d 100644 --- a/client/package.json +++ b/client/package.json @@ -46,8 +46,8 @@ "yup": "^0.32.11" }, "scripts": { - "start": "DISABLE_ESLINT_PLUGIN=true react-scripts start", - "build": "DISABLE_ESLINT_PLUGIN=true react-scripts build", + "start": "cross-env DISABLE_ESLINT_PLUGIN=true react-scripts start", + "build": "cross-env DISABLE_ESLINT_PLUGIN=true react-scripts build", "test": "react-scripts test --transformIgnorePatterns \"node_modules/(?!@toolz/allow-react)/\" --env=jsdom", "eject": "react-scripts eject", "lint": "eslint \"src/**/*.{js,jsx}\"", @@ -72,6 +72,7 @@ ] }, "devDependencies": { + "cross-env": "^7.0.3", "eslint": "^8.31.0" } } diff --git a/client/src/App.css b/client/src/App.css index 1ce0c782..cdf74c90 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -450,4 +450,34 @@ border-style: inherit; width: max-content; grid-auto-rows: auto; -} \ No newline at end of file +} + +.popup { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.popup-content { + background: white; + padding: 20px; + border-radius: 5px; + text-align: center; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Add some shadow for better visibility */ + position: relative; +} + +.popup-content h2 { + margin-top: 0; +} + +.popup-content button { + margin: 10px; +} diff --git a/client/src/components/builder/HelpBox.jsx b/client/src/components/builder/HelpBox.jsx new file mode 100644 index 00000000..5bca90e0 --- /dev/null +++ b/client/src/components/builder/HelpBox.jsx @@ -0,0 +1,42 @@ +import React, { useState, useEffect } from 'react'; + +const HelpPopup = () => { + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + const showPopup = localStorage.getItem('showHelpPopup'); + if (showPopup !== 'false') { + setIsVisible(true); + } + }, []); + + const handleYesClick = () => { + window.open('https://wiki.biocomputeobject.org/Buildbcos', '_blank'); + }; + + const handleNoClick = () => { + setIsVisible(false); + }; + + const handleDontShowAgain = () => { + localStorage.setItem('showHelpPopup', 'false'); + setIsVisible(false); + }; + + if (!isVisible) return null; + + return ( +

+
+

Need help creating a BCO?

+

We have detailed instructions on our wiki page. Would you like to visit it?

+ + + + +
+
+ ); +}; + +export default HelpPopup; diff --git a/client/src/components/builder/index.js b/client/src/components/builder/index.js index f2377f60..8e7e7ca1 100644 --- a/client/src/components/builder/index.js +++ b/client/src/components/builder/index.js @@ -26,7 +26,7 @@ import { useDispatch, useSelector } from "react-redux" import biocomputing from "../../images/biocomputing.gif" import ThirdBox from "../ThirdBox"; import ErrorBoundary from "../ErrorBoundry"; - +import HelpPopup from "./HelpBox"; import { getDraftBco, getTempDraftBco, @@ -104,10 +104,14 @@ export default function BuilderColorCode () { }, [bco]) return ( + + + + Object ID: {bco.object_id} From 75f7be58b69c0df368559a1bbccc362cb8284489 Mon Sep 17 00:00:00 2001 From: tianywan819 <57418894+tianywan819@users.noreply.github.com> Date: Mon, 29 Jul 2024 13:48:15 -0400 Subject: [PATCH 10/11] Added placeholder in the text box for advanced search --- client/src/pages/Bcodbs.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/pages/Bcodbs.js b/client/src/pages/Bcodbs.js index 19eee10e..206646f7 100644 --- a/client/src/pages/Bcodbs.js +++ b/client/src/pages/Bcodbs.js @@ -424,7 +424,10 @@ export default function BcoDbs () { 3. Enter search term: - + From 74790c9f2c31c17b4f4c81d4ce3a3b6d3f13be8f Mon Sep 17 00:00:00 2001 From: tianywan819 <57418894+tianywan819@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:27:50 -0400 Subject: [PATCH 11/11] added floating icon of Give Us Feedback on builder page --- .../src/components/FloatingIconComponent.js | 26 +++++++++++++++++++ client/src/components/builder/index.js | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 client/src/components/FloatingIconComponent.js diff --git a/client/src/components/FloatingIconComponent.js b/client/src/components/FloatingIconComponent.js new file mode 100644 index 00000000..6907374f --- /dev/null +++ b/client/src/components/FloatingIconComponent.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Fab from '@mui/material/Fab'; +import TextsmsOutlinedIcon from '@mui/icons-material/TextsmsOutlined'; + +export default function FloatingActionButtons() { + return ( + :not(style)': { m: 1 }, + }} + > + + + Give Us Feedback + + + ); +} diff --git a/client/src/components/builder/index.js b/client/src/components/builder/index.js index 8e7e7ca1..03ed8ae6 100644 --- a/client/src/components/builder/index.js +++ b/client/src/components/builder/index.js @@ -27,6 +27,7 @@ import biocomputing from "../../images/biocomputing.gif" import ThirdBox from "../ThirdBox"; import ErrorBoundary from "../ErrorBoundry"; import HelpPopup from "./HelpBox"; +import FloatingActionButtons from '../FloatingIconComponent'; import { getDraftBco, getTempDraftBco, @@ -203,6 +204,7 @@ export default function BuilderColorCode () { ) )} + ) } \ No newline at end of file