From fcad04461fbb791d44a9aa46d3c798503a04ae99 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Tue, 5 Mar 2024 21:33:07 +0530 Subject: [PATCH] refactor: remove microfrontend --- Makefile | 3 +- apps/OpenSign/Dockerhubfile | 1 - apps/OpenSign/src/App.js | 4 +- apps/OpenSign/src/routes/Form.js | 5 +- microfrontends/SignDocuments/.gitignore | 23 - microfrontends/SignDocuments/README.md | 70 - .../SignDocuments/moduleFederation.config.js | 29 - .../SignDocuments/package-lock.json | 21890 ---------------- microfrontends/SignDocuments/package.json | 68 - .../SignDocuments/public/favicon.ico | Bin 3870 -> 0 bytes .../SignDocuments/public/index.html | 81 - .../SignDocuments/public/logo192.png | Bin 5347 -> 0 bytes .../SignDocuments/public/logo512.png | Bin 9664 -> 0 bytes .../SignDocuments/public/manifest.json | 25 - .../SignDocuments/public/robots.txt | 3 - microfrontends/SignDocuments/src/App.js | 51 - .../src/Component/Certificate/Certificate.js | 277 - .../src/Component/Certificate/certificate.css | 9 - .../SignDocuments/src/Component/DebugUi.js | 429 - .../src/Component/DraftDocument.js | 94 - .../FolderDrive/legaDriveComponent.js | 764 - .../src/Component/LegaDrive/LegaDrive.css | 560 - .../src/Component/LegaDrive/LegaDrive.js | 763 - .../SignDocuments/src/Component/ManageSign.js | 695 - .../src/Component/PageNotFound.js | 16 - .../src/Component/PdfRequestFiles.js | 1472 -- .../src/Component/SignYourselfPdf.js | 1244 - .../src/Component/TemplatePlaceholder.js | 1505 -- .../Component/WidgetComponent/NameModal.js | 284 - .../Component/WidgetComponent/allWidgets.js | 36 - .../WidgetComponent/dropdownWidgetOption.js | 367 - .../WidgetComponent/inputValidation.js | 131 - .../Component/WidgetComponent/placeholder.js | 622 - .../WidgetComponent/placeholderBorder.js | 32 - .../WidgetComponent/placeholderType.js | 749 - .../src/Component/component/AddRoleModal.js | 67 - .../src/Component/component/CustomModal.js | 68 - .../src/Component/component/DragElement.js | 13 - .../src/Component/component/EditTemplate.js | 142 - .../src/Component/component/HandleError.js | 18 - .../src/Component/component/LinkUserModal.js | 35 - .../src/Component/component/Nodata.js | 18 - .../Component/component/PlaceholderCopy.js | 264 - .../src/Component/component/RenderDebugPdf.js | 83 - .../src/Component/component/Title.js | 19 - .../src/Component/component/alertComponent.js | 79 - .../src/Component/component/borderResize.js | 17 - .../Component/component/defaultSignature.js | 79 - .../src/Component/component/emailComponent.js | 430 - .../src/Component/component/emailToast.js | 21 - .../Component/component/fieldsComponent.js | 419 - .../src/Component/component/header.js | 784 - .../src/Component/component/loader.js | 28 - .../src/Component/component/modalComponent.js | 63 - .../src/Component/component/prevNext.js | 58 - .../Component/component/renderAllPdfPage.js | 103 - .../src/Component/component/renderPdf.js | 688 - .../src/Component/component/signPad.js | 680 - .../src/Component/component/signedby.js | 70 - .../Component/component/signerListPlace.js | 36 - .../SignDocuments/src/Component/login.js | 282 - .../src/Component/placeHolderSign.js | 1757 -- microfrontends/SignDocuments/src/Routes.js | 60 - .../SignDocuments/src/assests/blackPen.png | Bin 430 -> 0 bytes .../SignDocuments/src/assests/bluePen.png | Bin 574 -> 0 bytes .../SignDocuments/src/assests/certificate.png | Bin 448 -> 0 bytes .../SignDocuments/src/assests/draftDoc1.png | Bin 78196 -> 0 bytes .../SignDocuments/src/assests/folder.png | Bin 4496 -> 0 bytes .../SignDocuments/src/assests/loader2.gif | Bin 62248 -> 0 bytes .../SignDocuments/src/assests/newCeleb.gif | Bin 239101 -> 0 bytes .../src/assests/open-sign-logo.png | Bin 88554 -> 0 bytes .../SignDocuments/src/assests/pdf3.png | Bin 11944 -> 0 bytes .../SignDocuments/src/assests/redPen.png | Bin 569 -> 0 bytes microfrontends/SignDocuments/src/bootstrap.js | 7 - .../SignDocuments/src/css/AddUser.css | 79 - .../SignDocuments/src/css/LoginPage.css | 210 - .../SignDocuments/src/css/ModalUi.css | 137 - .../SignDocuments/src/css/custom.css | 225 - .../SignDocuments/src/css/customModal.css | 60 - .../SignDocuments/src/css/selectFolder.css | 6 - .../SignDocuments/src/css/signature.css | 1134 - .../SignDocuments/src/css/signerListPlace.css | 16 - .../SignDocuments/src/hook/useWindowSize.js | 25 - microfrontends/SignDocuments/src/index.js | 1 - .../SignDocuments/src/premitives/AddUser.js | 293 - .../SignDocuments/src/premitives/Alert.js | 57 - .../src/premitives/CreateFolder.js | 175 - .../SignDocuments/src/premitives/GuestSign.js | 1002 - .../SignDocuments/src/premitives/ModalUi.js | 40 - .../src/premitives/RecipientList.js | 208 - .../src/premitives/SelectFolder.js | 284 - .../src/premitives/SelectSigners.js | 100 - .../src/premitives/TourContentWithBtn.js | 26 - .../src/utils/ThemeColor/backColor.js | 7 - .../SignDocuments/src/utils/Utils.js | 1528 -- .../SignDocuments/src/utils/toDataUrl.js | 10 - .../SignDocuments/src/utils/useFileUpload.js | 68 - 97 files changed, 8 insertions(+), 44373 deletions(-) delete mode 100644 microfrontends/SignDocuments/.gitignore delete mode 100644 microfrontends/SignDocuments/README.md delete mode 100644 microfrontends/SignDocuments/moduleFederation.config.js delete mode 100644 microfrontends/SignDocuments/package-lock.json delete mode 100644 microfrontends/SignDocuments/package.json delete mode 100644 microfrontends/SignDocuments/public/favicon.ico delete mode 100644 microfrontends/SignDocuments/public/index.html delete mode 100644 microfrontends/SignDocuments/public/logo192.png delete mode 100644 microfrontends/SignDocuments/public/logo512.png delete mode 100644 microfrontends/SignDocuments/public/manifest.json delete mode 100644 microfrontends/SignDocuments/public/robots.txt delete mode 100644 microfrontends/SignDocuments/src/App.js delete mode 100644 microfrontends/SignDocuments/src/Component/Certificate/Certificate.js delete mode 100644 microfrontends/SignDocuments/src/Component/Certificate/certificate.css delete mode 100644 microfrontends/SignDocuments/src/Component/DebugUi.js delete mode 100644 microfrontends/SignDocuments/src/Component/DraftDocument.js delete mode 100644 microfrontends/SignDocuments/src/Component/LegaDrive/FolderDrive/legaDriveComponent.js delete mode 100644 microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.css delete mode 100644 microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.js delete mode 100644 microfrontends/SignDocuments/src/Component/ManageSign.js delete mode 100644 microfrontends/SignDocuments/src/Component/PageNotFound.js delete mode 100644 microfrontends/SignDocuments/src/Component/PdfRequestFiles.js delete mode 100644 microfrontends/SignDocuments/src/Component/SignYourselfPdf.js delete mode 100644 microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/NameModal.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/allWidgets.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/dropdownWidgetOption.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/inputValidation.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/placeholder.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderBorder.js delete mode 100644 microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderType.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/AddRoleModal.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/CustomModal.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/DragElement.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/EditTemplate.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/HandleError.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/LinkUserModal.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/Nodata.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/PlaceholderCopy.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/RenderDebugPdf.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/Title.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/alertComponent.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/borderResize.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/defaultSignature.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/emailComponent.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/emailToast.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/fieldsComponent.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/header.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/loader.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/modalComponent.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/prevNext.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/renderAllPdfPage.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/renderPdf.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/signPad.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/signedby.js delete mode 100644 microfrontends/SignDocuments/src/Component/component/signerListPlace.js delete mode 100644 microfrontends/SignDocuments/src/Component/login.js delete mode 100644 microfrontends/SignDocuments/src/Component/placeHolderSign.js delete mode 100644 microfrontends/SignDocuments/src/Routes.js delete mode 100644 microfrontends/SignDocuments/src/assests/blackPen.png delete mode 100644 microfrontends/SignDocuments/src/assests/bluePen.png delete mode 100644 microfrontends/SignDocuments/src/assests/certificate.png delete mode 100644 microfrontends/SignDocuments/src/assests/draftDoc1.png delete mode 100644 microfrontends/SignDocuments/src/assests/folder.png delete mode 100644 microfrontends/SignDocuments/src/assests/loader2.gif delete mode 100644 microfrontends/SignDocuments/src/assests/newCeleb.gif delete mode 100644 microfrontends/SignDocuments/src/assests/open-sign-logo.png delete mode 100644 microfrontends/SignDocuments/src/assests/pdf3.png delete mode 100644 microfrontends/SignDocuments/src/assests/redPen.png delete mode 100644 microfrontends/SignDocuments/src/bootstrap.js delete mode 100644 microfrontends/SignDocuments/src/css/AddUser.css delete mode 100644 microfrontends/SignDocuments/src/css/LoginPage.css delete mode 100644 microfrontends/SignDocuments/src/css/ModalUi.css delete mode 100644 microfrontends/SignDocuments/src/css/custom.css delete mode 100644 microfrontends/SignDocuments/src/css/customModal.css delete mode 100644 microfrontends/SignDocuments/src/css/selectFolder.css delete mode 100644 microfrontends/SignDocuments/src/css/signature.css delete mode 100644 microfrontends/SignDocuments/src/css/signerListPlace.css delete mode 100644 microfrontends/SignDocuments/src/hook/useWindowSize.js delete mode 100644 microfrontends/SignDocuments/src/index.js delete mode 100644 microfrontends/SignDocuments/src/premitives/AddUser.js delete mode 100644 microfrontends/SignDocuments/src/premitives/Alert.js delete mode 100644 microfrontends/SignDocuments/src/premitives/CreateFolder.js delete mode 100644 microfrontends/SignDocuments/src/premitives/GuestSign.js delete mode 100644 microfrontends/SignDocuments/src/premitives/ModalUi.js delete mode 100644 microfrontends/SignDocuments/src/premitives/RecipientList.js delete mode 100644 microfrontends/SignDocuments/src/premitives/SelectFolder.js delete mode 100644 microfrontends/SignDocuments/src/premitives/SelectSigners.js delete mode 100644 microfrontends/SignDocuments/src/premitives/TourContentWithBtn.js delete mode 100644 microfrontends/SignDocuments/src/utils/ThemeColor/backColor.js delete mode 100644 microfrontends/SignDocuments/src/utils/Utils.js delete mode 100644 microfrontends/SignDocuments/src/utils/toDataUrl.js delete mode 100644 microfrontends/SignDocuments/src/utils/useFileUpload.js diff --git a/Makefile b/Makefile index d44c064b7..ad60da3d3 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ build: cp .env.local_dev .env - rm -rf apps/OpenSign/public/mfbuild - cd microfrontends/SignDocuments && npm install && npm run build + cd apps/OpenSign && npm install && npm run build docker compose up --build --force-recreate run: diff --git a/apps/OpenSign/Dockerhubfile b/apps/OpenSign/Dockerhubfile index 3140d538f..ed756309b 100644 --- a/apps/OpenSign/Dockerhubfile +++ b/apps/OpenSign/Dockerhubfile @@ -12,7 +12,6 @@ RUN npm install # Copy the current directory contents into the container COPY apps/OpenSign/ . -COPY microfrontends/ . COPY apps/OpenSign/.husky . # Make port 3000 available to the world outside this container diff --git a/apps/OpenSign/src/App.js b/apps/OpenSign/src/App.js index 3423b43fd..3ad4546fe 100644 --- a/apps/OpenSign/src/App.js +++ b/apps/OpenSign/src/App.js @@ -35,7 +35,9 @@ function App() { }, []); const handleCredentials = () => { - const appId = "opensign"; + const appId = process.env.REACT_APP_APPID + ? process.env.REACT_APP_APPID + : "opensign"; const baseurl = process.env.REACT_APP_SERVERURL ? process.env.REACT_APP_SERVERURL : window.location.origin + "/api/app"; diff --git a/apps/OpenSign/src/routes/Form.js b/apps/OpenSign/src/routes/Form.js index 563e7f413..b58ed9590 100644 --- a/apps/OpenSign/src/routes/Form.js +++ b/apps/OpenSign/src/routes/Form.js @@ -77,8 +77,11 @@ const Forms = (props) => { const url = process.env.REACT_APP_SERVERURL ? process.env.REACT_APP_SERVERURL : window.location.origin + "/api/app"; + const appId = process.env.REACT_APP_APPID + ? process.env.REACT_APP_APPID + : "opensign"; Parse.serverURL = url; - Parse.initialize("opensign"); + Parse.initialize(appId); setfileload(true); const fileName = file.name; const name = sanitizeFileName(fileName); diff --git a/microfrontends/SignDocuments/.gitignore b/microfrontends/SignDocuments/.gitignore deleted file mode 100644 index 944d54495..000000000 --- a/microfrontends/SignDocuments/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/mfbuild - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/microfrontends/SignDocuments/README.md b/microfrontends/SignDocuments/README.md deleted file mode 100644 index 58beeaccd..000000000 --- a/microfrontends/SignDocuments/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in your browser. - -The page will reload when you make changes.\ -You may also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can't go back!** - -If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. - -You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `npm run build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/microfrontends/SignDocuments/moduleFederation.config.js b/microfrontends/SignDocuments/moduleFederation.config.js deleted file mode 100644 index 5bbcb045a..000000000 --- a/microfrontends/SignDocuments/moduleFederation.config.js +++ /dev/null @@ -1,29 +0,0 @@ -const { dependencies } = require("./package.json"); - -module.exports = { - name: "signmicroapp", // change me - filename: "remoteEntry.js", - exposes: { - // key e.g"./AppRoutes" is path which will use as moduletoload in host app - // value e.g"./src/Routes" is path which will as a bind path to load - - "./AppRoutes": "./src/Routes", - }, - shared: { - ...dependencies, - react: { - singleton: true, - import: "react", // fallback is also react - shareScope: "default", - requiredVersion: dependencies.react, - }, - "react-dom": { - singleton: true, - requiredVersion: dependencies["react-dom"], - }, - "react-router-dom": { - singleton: true, - requiredVersion: dependencies["react-router-dom"], - }, - }, -}; diff --git a/microfrontends/SignDocuments/package-lock.json b/microfrontends/SignDocuments/package-lock.json deleted file mode 100644 index 4d86ba058..000000000 --- a/microfrontends/SignDocuments/package-lock.json +++ /dev/null @@ -1,21890 +0,0 @@ -{ - "name": "signmicroapp", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "signmicroapp", - "version": "0.1.0", - "dependencies": { - "@radix-ui/themes": "^1.1.2", - "@react-pdf/renderer": "^3.3.8", - "@testing-library/jest-dom": "^5.17.0", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "axios": "^1.6.0", - "file-saver": "^2.0.5", - "gh-pages": "^6.0.0", - "mf-cra": "^0.0.5", - "moment": "^2.30.1", - "parse": "^4.3.1", - "pdf-lib": "^1.17.1", - "print-js": "^1.6.0", - "radix-ui": "^1.0.1", - "react": "^18.2.0", - "react-bootstrap": "^2.9.0", - "react-datepicker": "^5.1.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-dnd-multi-backend": "^8.0.3", - "react-dnd-touch-backend": "^16.0.1", - "react-dom": "^18.2.0", - "react-draggable": "^4.4.6", - "react-helmet": "^6.1.0", - "react-konva": "^18.2.10", - "react-pdf": "^7.7.0", - "react-rnd": "^10.4.1", - "react-router-dom": "^6.16.0", - "react-scripts": "5.0.1", - "react-scrollbars-custom": "^4.1.1", - "react-select": "^5.8.0", - "react-signature-canvas": "^1.0.6", - "reactour": "^1.19.1", - "regex-parser": "^2.3.0", - "web-vitals": "^2.1.4" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", - "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==" - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz", - "integrity": "sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/plugin-syntax-decorators": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz", - "integrity": "sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz", - "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", - "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz", - "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", - "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", - "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", - "dependencies": { - "@babel/compat-data": "^7.22.20", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.19", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", - "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz", - "integrity": "sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, - "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", - "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", - "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", - "peer": true, - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "node_modules/@emotion/react": { - "version": "11.11.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", - "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", - "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", - "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "peer": true - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "peer": true - }, - "node_modules/@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==", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.0.tgz", - "integrity": "sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", - "dependencies": { - "@floating-ui/utils": "^0.2.1" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.1.tgz", - "integrity": "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.1" - } - }, - "node_modules/@floating-ui/react": { - "version": "0.26.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.8.tgz", - "integrity": "sha512-fOZb8BnJBrVohGPZ8RthDM5cHD9SnBKgY/U7LFXHhuwafSZD7TVmCX67+ezkkwxFbWpQGTEbgcjuHUDRonGy1g==", - "dependencies": { - "@floating-ui/react-dom": "^2.0.8", - "@floating-ui/utils": "^0.2.1", - "tabbable": "^6.0.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", - "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", - "dependencies": { - "@floating-ui/dom": "^1.6.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pdf-lib/standard-fonts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", - "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", - "dependencies": { - "pako": "^1.0.6" - } - }, - "node_modules/@pdf-lib/upng": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", - "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", - "dependencies": { - "pako": "^1.0.10" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", - "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@radix-ui/colors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-2.1.0.tgz", - "integrity": "sha512-gcBnxjS2u2c6thQz/9K1+Pt2ZYcm5WKU4SLi0emYkRmYbVUw+37rlc5wgLtYOsSsRP9nxVtbJJYj6WVO7UUmZg==" - }, - "node_modules/@radix-ui/number": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", - "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/react-accessible-icon": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.0.3.tgz", - "integrity": "sha512-duVGKeWPSUILr/MdlPxV+GeULTc2rS1aihGdQ3N2qCUPMgxYLxvAsHJM3mCVLF8d5eK+ympmB22mb1F3a5biNw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.1.2.tgz", - "integrity": "sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collapsible": "1.0.3", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz", - "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dialog": "1.0.5", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", - "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-aspect-ratio": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.0.3.tgz", - "integrity": "sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", - "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", - "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.0.3.tgz", - "integrity": "sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", - "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context-menu": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", - "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", - "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", - "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", - "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", - "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", - "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-form": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.0.3.tgz", - "integrity": "sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-label": "2.0.2", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-hover-card": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.0.7.tgz", - "integrity": "sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", - "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", - "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.1.4.tgz", - "integrity": "sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popover": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", - "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", - "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-rect": "1.0.1", - "@radix-ui/react-use-size": "1.0.1", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", - "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-progress": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.0.3.tgz", - "integrity": "sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-radio-group": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.1.3.tgz", - "integrity": "sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", - "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-scroll-area": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz", - "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz", - "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.4", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.3", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.2", - "@radix-ui/react-portal": "1.0.3", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", - "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", - "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-popper": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", - "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-rect": "1.0.1", - "@radix-ui/react-use-size": "1.0.1", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-portal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", - "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", - "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.1.2.tgz", - "integrity": "sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-switch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.0.3.tgz", - "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", - "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toast": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.1.5.tgz", - "integrity": "sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", - "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle-group": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", - "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-toggle": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toolbar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz", - "integrity": "sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-separator": "1.0.3", - "@radix-ui/react-toggle-group": "1.0.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", - "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", - "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", - "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", - "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", - "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", - "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/themes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/themes/-/themes-1.1.2.tgz", - "integrity": "sha512-VnNeanSxHQurSgwQe5Z3zNZP5SrwhRY+RW97FPZe7TOJGpa+rpDHLDR9vourSsEGxsgrtTXHJaoII1pyIXDi8A==", - "dependencies": { - "@radix-ui/colors": "^2.1.0", - "@radix-ui/primitive": "^1.0.1", - "@radix-ui/react-accessible-icon": "^1.0.3", - "@radix-ui/react-alert-dialog": "^1.0.4", - "@radix-ui/react-aspect-ratio": "^1.0.3", - "@radix-ui/react-avatar": "^1.0.3", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-context-menu": "^2.1.4", - "@radix-ui/react-dialog": "^1.0.4", - "@radix-ui/react-direction": "^1.0.1", - "@radix-ui/react-dropdown-menu": "^2.0.5", - "@radix-ui/react-form": "^0.0.3", - "@radix-ui/react-hover-card": "^1.0.6", - "@radix-ui/react-popover": "^1.0.6", - "@radix-ui/react-portal": "^1.0.3", - "@radix-ui/react-radio-group": "^1.1.3", - "@radix-ui/react-scroll-area": "^1.0.4", - "@radix-ui/react-select": "^1.2.2", - "@radix-ui/react-separator": "^1.0.3", - "@radix-ui/react-slider": "^1.1.2", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-switch": "^1.0.3", - "@radix-ui/react-tabs": "^1.0.4", - "@radix-ui/react-tooltip": "^1.0.6", - "@radix-ui/react-visually-hidden": "^1.0.3", - "classnames": "^2.3.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", - "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/ssr/node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@react-dnd/asap": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", - "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==" - }, - "node_modules/@react-dnd/invariant": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", - "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==" - }, - "node_modules/@react-dnd/shallowequal": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", - "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==" - }, - "node_modules/@react-pdf/fns": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@react-pdf/fns/-/fns-2.2.1.tgz", - "integrity": "sha512-s78aDg0vDYaijU5lLOCsUD+qinQbfOvcNeaoX9AiE7+kZzzCo6B/nX+l48cmt9OosJmvZvE9DWR9cLhrhOi2pA==", - "dependencies": { - "@babel/runtime": "^7.20.13" - } - }, - "node_modules/@react-pdf/font": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@react-pdf/font/-/font-2.4.4.tgz", - "integrity": "sha512-yjK5eSY+LcbxS0m+sOYln8GdgIbUgti4xjwf14kx8OSsOMJQJyHFALHMh2cLcKJR9yZeqVDo1FwCsY6gw1yCkg==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/types": "^2.4.1", - "cross-fetch": "^3.1.5", - "fontkit": "^2.0.2", - "is-url": "^1.2.4" - } - }, - "node_modules/@react-pdf/image": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@react-pdf/image/-/image-2.3.4.tgz", - "integrity": "sha512-IE34l7gfTdaxXe3XR9240xMZsFdxF1myIwmEWK28XoeTaucUPAUyOiNcFSGRT59vNuZVBuakYz3BlGGrkvAPVQ==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/png-js": "^2.3.1", - "cross-fetch": "^3.1.5", - "jay-peg": "^1.0.0" - } - }, - "node_modules/@react-pdf/layout": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-pdf/layout/-/layout-3.11.2.tgz", - "integrity": "sha512-5EiHJ+Eb0odqnkWll9pWbTp+dwH1QRm7mOXDMiklqIWK98eI7e3cEae5Dgr0TtdnB7KgPW9Tvul2CwRJTwq54A==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/fns": "2.2.1", - "@react-pdf/image": "^2.3.4", - "@react-pdf/pdfkit": "^3.1.6", - "@react-pdf/primitives": "^3.1.1", - "@react-pdf/stylesheet": "^4.2.4", - "@react-pdf/textkit": "^4.4.1", - "@react-pdf/types": "^2.4.1", - "cross-fetch": "^3.1.5", - "emoji-regex": "^10.3.0", - "queue": "^6.0.1", - "yoga-layout": "^2.0.1" - } - }, - "node_modules/@react-pdf/layout/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" - }, - "node_modules/@react-pdf/pdfkit": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@react-pdf/pdfkit/-/pdfkit-3.1.6.tgz", - "integrity": "sha512-U96VVhphniDBsLbmeJHgEml15nng8cr90mmEfPATh98gsqg6wev0avBr4k9XPjLdaN1f2xTXD4VdlaMYJZ+n7Q==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/png-js": "^2.3.1", - "browserify-zlib": "^0.2.0", - "crypto-js": "^4.2.0", - "fontkit": "^2.0.2", - "jay-peg": "^1.0.0", - "vite-compatible-readable-stream": "^3.6.1" - } - }, - "node_modules/@react-pdf/png-js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@react-pdf/png-js/-/png-js-2.3.1.tgz", - "integrity": "sha512-pEZ18I4t1vAUS4lmhvXPmXYP4PHeblpWP/pAlMMRkEyP7tdAeHUN7taQl9sf9OPq7YITMY3lWpYpJU6t4CZgZg==", - "dependencies": { - "browserify-zlib": "^0.2.0" - } - }, - "node_modules/@react-pdf/primitives": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@react-pdf/primitives/-/primitives-3.1.1.tgz", - "integrity": "sha512-miwjxLwTnO3IjoqkTVeTI+9CdyDggwekmSLhVCw+a/7FoQc+gF3J2dSKwsHvAcVFM0gvU8mzCeTofgw0zPDq0w==" - }, - "node_modules/@react-pdf/render": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-pdf/render/-/render-3.4.3.tgz", - "integrity": "sha512-9LL059vfwrK1gA0uIA4utpQ/pUH9EW/yia4bb7pCoARs8IlupY5UP265jgax15ua0p+MdUwShZzQ9rilu7kGsw==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/fns": "2.2.1", - "@react-pdf/primitives": "^3.1.1", - "@react-pdf/textkit": "^4.4.1", - "@react-pdf/types": "^2.4.1", - "abs-svg-path": "^0.1.1", - "color-string": "^1.9.1", - "normalize-svg-path": "^1.1.0", - "parse-svg-path": "^0.1.2", - "svg-arc-to-cubic-bezier": "^3.2.0" - } - }, - "node_modules/@react-pdf/renderer": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@react-pdf/renderer/-/renderer-3.3.8.tgz", - "integrity": "sha512-wJESEZCNNbog4MxDjRgKtgdmyGm+lDce9cMX2THRs1Jltckq3M8N0yt/fkvGyB8nwiDPtEBOsz9JKlw5vLidbw==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/font": "^2.4.4", - "@react-pdf/layout": "^3.11.2", - "@react-pdf/pdfkit": "^3.1.6", - "@react-pdf/primitives": "^3.1.1", - "@react-pdf/render": "^3.4.3", - "@react-pdf/types": "^2.4.1", - "events": "^3.3.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "queue": "^6.0.1", - "scheduler": "^0.17.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-pdf/renderer/node_modules/scheduler": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", - "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/@react-pdf/stylesheet": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@react-pdf/stylesheet/-/stylesheet-4.2.4.tgz", - "integrity": "sha512-CgRfDzeMtnV0GL7zSn381NubmgwqKhFKcK1YrWX3azl/KWVh52jjFd3HWi6dvcETNT862mjWz5MnExe4WOBJXA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/fns": "2.2.1", - "@react-pdf/types": "^2.4.1", - "color-string": "^1.9.1", - "hsl-to-hex": "^1.0.0", - "media-engine": "^1.0.3", - "postcss-value-parser": "^4.1.0" - } - }, - "node_modules/@react-pdf/textkit": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@react-pdf/textkit/-/textkit-4.4.1.tgz", - "integrity": "sha512-Jl9wdTqIvJ5pX+vAGz0EOhP7ut5Two9H6CzTKo/YYPeD79cM2yTXF3JzTERBC28y7LR0Waq9D2LHQjI+b/EYUQ==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@react-pdf/fns": "2.2.1", - "bidi-js": "^1.0.2", - "hyphen": "^1.6.4", - "unicode-properties": "^1.4.1" - } - }, - "node_modules/@react-pdf/types": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@react-pdf/types/-/types-2.4.1.tgz", - "integrity": "sha512-w8pk7svhjVj5f7d7kjEGXSk26ffCqRSQcgWR4DwcFltNpSM18ZJmzmM6WrNeeP437y48LlykLnmGDA3oATakgw==" - }, - "node_modules/@remix-run/router": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz", - "integrity": "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@restart/hooks": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", - "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", - "dependencies": { - "dequal": "^2.0.3" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@restart/ui": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.6.tgz", - "integrity": "sha512-eC3puKuWE1SRYbojWHXnvCNHGgf3uzHCb6JOhnF4OXPibOIPEkR1sqDSkL643ydigxwh+ruCa1CmYHlzk7ikKA==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@popperjs/core": "^2.11.6", - "@react-aria/ssr": "^3.5.0", - "@restart/hooks": "^0.4.9", - "@types/warning": "^3.0.0", - "dequal": "^2.0.3", - "dom-helpers": "^5.2.0", - "uncontrollable": "^8.0.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - } - }, - "node_modules/@restart/ui/node_modules/uncontrollable": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", - "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", - "peerDependencies": { - "react": ">=16.14.0" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@rooks/use-mutation-observer": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz", - "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.0.tgz", - "integrity": "sha512-EF3948ckf3f5uPgYbQ6GhyA56Dmv8yg0+ir+BroRjwdxyZJsekhZzawOecC2rOTPCz173t7ZcR1HHZu0dZgOCw==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", - "dependencies": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - }, - "node_modules/@testing-library/dom": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", - "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "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/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "peer": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "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.17.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", - "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", - "dependencies": { - "@adobe/css-tools": "^4.0.1", - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=8", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-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==" - }, - "node_modules/@testing-library/jest-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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", - "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.5.0", - "@types/react-dom": "^18.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/@testing-library/dom": { - "version": "8.20.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/react/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@testing-library/react/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@testing-library/react/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/user-event": { - "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" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.2.tgz", - "integrity": "sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ==" - }, - "node_modules/@types/babel__core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", - "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.11.tgz", - "integrity": "sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz", - "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.44.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.3.tgz", - "integrity": "sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", - "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==" - }, - "node_modules/@types/express": { - "version": "4.17.18", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", - "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.37", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", - "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", - "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-YIQtIg4PKr7ZyqNPZObpxfHsHEmuB8dXCxd6qVcGuQVDK2bpsF7bYNnBJ4Nn7giuACZg+WewExgrtAJ3XnA4Xw==", - "optional": true, - "peer": true, - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", - "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.12", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.12.tgz", - "integrity": "sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.5", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", - "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/jest/node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@types/jest/node_modules/@types/yargs": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.25.tgz", - "integrity": "sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@types/jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@types/jest/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/expect": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@types/jest/node_modules/jest-diff": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-matcher-utils": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-message-util": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@types/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "node_modules/@types/mime": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", - "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==" - }, - "node_modules/@types/node": { - "version": "20.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", - "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.7", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.7.tgz", - "integrity": "sha512-FbtmBWCcSa2J4zL781Zf1p5YUBXQomPEcep9QZCfRfQgTxz3pJWiDFLebohZ9fFntX5ibzOkSsrJ0TEew8cAog==" - }, - "node_modules/@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==" - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", - "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==" - }, - "node_modules/@types/react": { - "version": "18.2.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.23.tgz", - "integrity": "sha512-qHLW6n1q2+7KyBEYnrZpcsAmU/iiCh9WGCKgXvMxx89+TYdJWRjZohVIo9XTcoLhfX3+/hP0Pbulu3bCZQ9PSA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.8.tgz", - "integrity": "sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-reconciler": { - "version": "0.28.8", - "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz", - "integrity": "sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.7.tgz", - "integrity": "sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/scheduler": { - "version": "0.16.4", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", - "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" - }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==" - }, - "node_modules/@types/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", - "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", - "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.34", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.34.tgz", - "integrity": "sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "node_modules/@types/testing-library__jest-dom": { - "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": "*" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz", - "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" - }, - "node_modules/@types/warning": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.1.tgz", - "integrity": "sha512-ywJmriP+nvjBKNBEMaNZgj2irZHoxcKeYcyMLbqhYKbDVn8yCIULy2Ol/tvIb37O3IBeZj3RU4tXqQTtGwoAMg==" - }, - "node_modules/@types/ws": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.6.tgz", - "integrity": "sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.6", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", - "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", - "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dependencies": { - "has-symbols": "^1.0.3" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", - "integrity": "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", - "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "node_modules/bfj": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", - "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", - "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brotli": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", - "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", - "dependencies": { - "base64-js": "^1.1.2" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.0.tgz", - "integrity": "sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001539", - "electron-to-chromium": "^1.4.530", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001541", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001541.tgz", - "integrity": "sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/canvas": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", - "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.17.0", - "simple-get": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/check-types": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", - "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" - }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cnbuilder": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cnbuilder/-/cnbuilder-3.1.0.tgz", - "integrity": "sha512-9sxWwwprkPNTVQnx92WYPEWCmyZRqbf9VWUYABU4rl0mLL17VAV2MvvOApkMA6bQVXRLJ8jN//8Yp6drElpLWA==", - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/xobotyi" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.2.tgz", - "integrity": "sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", - "dependencies": { - "browserslist": "^4.21.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", - "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", - "peer": true, - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" - }, - "node_modules/cssdb": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.7.2.tgz", - "integrity": "sha512-pQPYP7/kch4QlkTcLuUNiNL2v/E+O+VIdotT+ug62/+2B2/jkzs5fMM6RHCzGCZ9C82pODEMSIzRRUzJOrl78g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ] - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" - }, - "node_modules/deep-equal": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz", - "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.1", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/dfa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", - "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dnd-core": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", - "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", - "dependencies": { - "@react-dnd/asap": "^5.0.1", - "@react-dnd/invariant": "^4.0.1", - "redux": "^4.2.0" - } - }, - "node_modules/dnd-multi-backend": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/dnd-multi-backend/-/dnd-multi-backend-8.0.3.tgz", - "integrity": "sha512-yFFARotr+OEJk787Fsj+V52pi6j7+Pt/CRp3IR2Ai3fnxA/z6J54T7+gxkXzXu4cvxTNE7NiBzzAaJ2f7JjFTw==", - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/LouisBrunner" - }, - "peerDependencies": { - "dnd-core": "^16.0.1" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.532", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.532.tgz", - "integrity": "sha512-piIR0QFdIGKmOJTSNg5AwxZRNWQSXlRYycqDB9Srstx4lip8KpcmRxVP6zuFWExWziHYZpJ0acX7TxqX95KBpg==" - }, - "node_modules/email-addresses": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", - "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", - "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", - "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", - "dependencies": { - "@typescript-eslint/utils": "^5.58.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-memoize": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", - "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" - }, - "node_modules/focus-lock": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.9.2.tgz", - "integrity": "sha512-YtHxjX7a0IC0ZACL5wsX8QdncXofWpGPNoVMuI/nZUrPGp6LmNI6+D5j0pPj+v8Kw5EpweA+T5yImK0rnWf7oQ==", - "dependencies": { - "tslib": "^2.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/focus-outline-manager": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/focus-outline-manager/-/focus-outline-manager-1.0.2.tgz", - "integrity": "sha512-bHWEmjLsTjGP9gVs7P3Hyl+oY5NlMW8aTSPdTJ+X2GKt6glDctt9fUCLbRV+d/l8NDC40+FxMjp9WlTQXaQALw==" - }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fontkit": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.2.tgz", - "integrity": "sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==", - "dependencies": { - "@swc/helpers": "^0.4.2", - "brotli": "^1.3.2", - "clone": "^2.1.2", - "dfa": "^1.2.0", - "fast-deep-equal": "^3.1.3", - "restructure": "^3.0.0", - "tiny-inflate": "^1.0.3", - "unicode-properties": "^1.4.0", - "unicode-trie": "^2.0.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", - "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gh-pages": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.0.0.tgz", - "integrity": "sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g==", - "dependencies": { - "async": "^3.2.4", - "commander": "^11.0.0", - "email-addresses": "^5.0.0", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^11.1.1", - "globby": "^6.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-pages/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gh-pages/node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/gh-pages/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/hsl-to-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-to-hex/-/hsl-to-hex-1.0.0.tgz", - "integrity": "sha512-K6GVpucS5wFf44X0h2bLVRDsycgJmf9FF2elg+CrqD8GcFU8c6vYhgXn8NjUkFCwj+xDFb70qgLbTUm6sxwPmA==", - "dependencies": { - "hsl-to-rgb-for-reals": "^1.1.0" - } - }, - "node_modules/hsl-to-rgb-for-reals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hsl-to-rgb-for-reals/-/hsl-to-rgb-for-reals-1.1.1.tgz", - "integrity": "sha512-LgOWAkrN0rFaQpfdWBQlv/VhkOxb5AsBjk6NQVx4yEzWS923T07X0M1Y0VNko2H52HeSpZrZNNMJ0aFqsdVzQg==" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/hyphen": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/hyphen/-/hyphen-1.10.4.tgz", - "integrity": "sha512-SejXzIpv9gOVdDWXd4suM1fdF1k2dxZGvuTdkOVLoazYfK7O4DykIQbdrvuyG+EaTNlXAGhMndtKrhykgbt0gg==" - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" - }, - "node_modules/idb-keyval": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", - "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "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-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "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-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "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==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "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-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "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", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "node_modules/its-fine": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.1.1.tgz", - "integrity": "sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw==", - "dependencies": { - "@types/react-reconciler": "^0.28.0" - }, - "peerDependencies": { - "react": ">=18.0" - } - }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jay-peg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jay-peg/-/jay-peg-1.0.1.tgz", - "integrity": "sha512-zBfjkGbuuNXk8JW+rEePpPEbRRjupS8q+5yPak7kjy3e2GvvNwsLle9okEFvfGyZA6HvtSSiYrVd1/jgnYebaQ==", - "dependencies": { - "restructure": "^3.0.0" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0 || ^28.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.25.tgz", - "integrity": "sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-watch-typeahead/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", - "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", - "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", - "dependencies": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.12.1" - } - }, - "node_modules/jsonpath/node_modules/esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/konva": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/konva/-/konva-9.3.2.tgz", - "integrity": "sha512-I4CFGVbWKpzgYi1I0pmoHz8iYfmGc/A61yfltzcuBHMFuBwDsR2VnQo4+eFQ1dGyEAmHcdvTumJ871KqkhuGng==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/lavrton" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/konva" - }, - { - "type": "github", - "url": "https://github.com/sponsors/lavrton" - } - ], - "peer": true - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/legacy-swc-helpers": { - "name": "@swc/helpers", - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "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==", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-cancellable-promise": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.1.tgz", - "integrity": "sha512-DWOzWdO3xhY5ESjVR+wVFy03rpt0ZccS4bunccNwngoX6rllKlMZm6S9ZnJ5nMuDDweqDMjtaO0g6tZeh+cCUA==", - "funding": { - "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-event-props": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.1.tgz", - "integrity": "sha512-JhvWq/iz1BvlmnPvLJjXv+xnMPJZuychrDC68V+yCGQJn5chcA8rLGKo5EP1XwIKVrigSXKLmbeXAGkf36wdCQ==", - "funding": { - "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "node_modules/media-engine": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/media-engine/-/media-engine-1.0.3.tgz", - "integrity": "sha512-aa5tG6sDoK+k70B9iEX1NeyfT8ObCKhNDs6lJVpwF6r8vhUfuKMslIcirq6HIUYuuUYLefcEQOn9bSBOvawtwg==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-refs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.1.tgz", - "integrity": "sha512-pRPz39HQz2xzHdXAGvtJ9S8aEpNgpUjzb5yPC3ytozodmsHg+9nqgRs7/YOmn9fM/TLzntAC8AdGTidKxOq9TQ==", - "dependencies": { - "@types/react": "*" - }, - "funding": { - "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mf-cra": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mf-cra/-/mf-cra-0.0.5.tgz", - "integrity": "sha512-a5sRFMIlDSZCwOfC7wFJc39lwMQxm+18dZ7S2wrKkKHfb5/v1jFNcO9Rj9xvs6yFJL75h44K8GnadTVvxw1Inw==", - "bin": { - "mf-cra": "bin/mf-cra.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">= 16", - "react-scripts": "^5.0.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "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==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "dependencies": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "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", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/parse/-/parse-4.3.1.tgz", - "integrity": "sha512-ypLPhMPFsJY+C2MXg6HdrVu6ielsL+kUjcSqh7J01lPC5oBuLh70F9YMQSw51QBocEeMSVgB7eUorFOH+MkVpA==", - "dependencies": { - "@babel/runtime-corejs3": "7.23.2", - "idb-keyval": "6.2.1", - "react-native-crypto-js": "1.0.0", - "uuid": "9.0.1", - "ws": "8.13.0", - "xmlhttprequest": "1.8.0" - }, - "engines": { - "node": ">=14.21.0 <17 || >=18 <20" - }, - "optionalDependencies": { - "crypto-js": "4.2.0" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "node_modules/parse/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/parse/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path2d-polyfill": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", - "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pdf-lib": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", - "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", - "dependencies": { - "@pdf-lib/standard-fonts": "^1.0.0", - "@pdf-lib/upng": "^1.0.1", - "pako": "^1.0.11", - "tslib": "^1.11.1" - } - }, - "node_modules/pdf-lib/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/pdfjs-dist": { - "version": "3.11.174", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz", - "integrity": "sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==", - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "canvas": "^2.11.2", - "path2d-polyfill": "^2.0.1" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", - "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", - "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", - "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", - "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "dependencies": { - "@csstools/postcss-cascade-layers": "^1.1.1", - "@csstools/postcss-color-function": "^1.1.1", - "@csstools/postcss-font-format-keywords": "^1.0.1", - "@csstools/postcss-hwb-function": "^1.0.2", - "@csstools/postcss-ic-unit": "^1.0.1", - "@csstools/postcss-is-pseudo-class": "^2.0.7", - "@csstools/postcss-nested-calc": "^1.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.1", - "@csstools/postcss-oklab-function": "^1.1.1", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.1", - "@csstools/postcss-text-decoration-shorthand": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.2", - "@csstools/postcss-unset-value": "^1.0.2", - "autoprefixer": "^10.4.13", - "browserslist": "^4.21.4", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^7.1.0", - "postcss-attribute-case-insensitive": "^5.0.2", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.4", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.1", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.10", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.5", - "postcss-double-position-gradients": "^3.1.2", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.5", - "postcss-image-set-function": "^4.0.7", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.2.0", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.4", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.5", - "postcss-pseudo-class-any-link": "^7.1.6", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/print-js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/print-js/-/print-js-1.6.0.tgz", - "integrity": "sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg==" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "peerDependencies": { - "react": ">=0.14.0" - } - }, - "node_modules/prop-types-extra/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/radix-ui": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.0.1.tgz", - "integrity": "sha512-qfGibbqtbOlxP3b+1JjbLUc8Q7+e9DL8gFycLtkBkoAQyUkKuHAEBfFUcyG5MaQHjqRuML+YLtt/R1/dUYQafQ==", - "dependencies": { - "@radix-ui/react-accessible-icon": "latest", - "@radix-ui/react-accordion": "latest", - "@radix-ui/react-alert-dialog": "latest", - "@radix-ui/react-aspect-ratio": "latest", - "@radix-ui/react-avatar": "latest", - "@radix-ui/react-checkbox": "latest", - "@radix-ui/react-collapsible": "latest", - "@radix-ui/react-context-menu": "latest", - "@radix-ui/react-dialog": "latest", - "@radix-ui/react-direction": "latest", - "@radix-ui/react-dropdown-menu": "latest", - "@radix-ui/react-hover-card": "latest", - "@radix-ui/react-label": "latest", - "@radix-ui/react-navigation-menu": "latest", - "@radix-ui/react-popover": "latest", - "@radix-ui/react-portal": "latest", - "@radix-ui/react-progress": "latest", - "@radix-ui/react-radio-group": "latest", - "@radix-ui/react-scroll-area": "latest", - "@radix-ui/react-select": "latest", - "@radix-ui/react-separator": "latest", - "@radix-ui/react-slider": "latest", - "@radix-ui/react-slot": "latest", - "@radix-ui/react-switch": "latest", - "@radix-ui/react-tabs": "latest", - "@radix-ui/react-toast": "latest", - "@radix-ui/react-toggle": "latest", - "@radix-ui/react-toggle-group": "latest", - "@radix-ui/react-toolbar": "latest", - "@radix-ui/react-tooltip": "latest", - "@radix-ui/react-visually-hidden": "latest" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/re-resizable": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.9.6.tgz", - "integrity": "sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ==", - "dependencies": { - "fast-memoize": "^2.5.1" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/react-bootstrap": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.9.0.tgz", - "integrity": "sha512-dGh6fGjqR9MBzPOp2KbXJznt1Zy6SWepXYUdxMT18Zu/wJ73HCU8JNZe9dfzjmVssZYsJH9N3HHE4wAtQvNz7g==", - "dependencies": { - "@babel/runtime": "^7.22.5", - "@restart/hooks": "^0.4.9", - "@restart/ui": "^1.6.6", - "@types/react-transition-group": "^4.4.6", - "classnames": "^2.3.2", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.8.1", - "prop-types-extra": "^1.1.0", - "react-transition-group": "^4.4.5", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "@types/react": ">=16.14.8", - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-clientside-effect": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", - "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", - "dependencies": { - "@babel/runtime": "^7.12.13" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-datepicker": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-5.1.0.tgz", - "integrity": "sha512-elwEnHpd9dQ4U/u7f2vsFdK1CchrOkPPR6rRDQWIzOgqM+Dty43c0tK/IPumrcPSMpRcyDu1okHmbs5m3xlz7w==", - "dependencies": { - "@floating-ui/react": "^0.26.2", - "classnames": "^2.2.6", - "date-fns": "^2.30.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.13.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dnd": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", - "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", - "dependencies": { - "@react-dnd/invariant": "^4.0.1", - "@react-dnd/shallowequal": "^4.0.1", - "dnd-core": "^16.0.1", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2" - }, - "peerDependencies": { - "@types/hoist-non-react-statics": ">= 3.3.1", - "@types/node": ">= 12", - "@types/react": ">= 16", - "react": ">= 16.14" - }, - "peerDependenciesMeta": { - "@types/hoist-non-react-statics": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-dnd-html5-backend": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", - "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", - "dependencies": { - "dnd-core": "^16.0.1" - } - }, - "node_modules/react-dnd-multi-backend": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-dnd-multi-backend/-/react-dnd-multi-backend-8.0.3.tgz", - "integrity": "sha512-IwH7Mf6R05KIFohX0hHMTluoAvuUD8SO15KCD+9fY0nJ4nc1FGCMCSyMZw8R1XNStKp+JnNg3ZMtiaf5DebSUg==", - "dependencies": { - "dnd-multi-backend": "^8.0.3", - "react-dnd-preview": "^8.0.3" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/LouisBrunner" - }, - "peerDependencies": { - "dnd-core": "^16.0.1", - "react": "^16.14.0 || ^17.0.2 || ^18.0.0", - "react-dnd": "^16.0.1", - "react-dom": "^16.14.0 || ^17.0.2 || ^18.0.0" - } - }, - "node_modules/react-dnd-preview": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-dnd-preview/-/react-dnd-preview-8.0.3.tgz", - "integrity": "sha512-s69Ro47QYDthDhj73iQ0VioMCjtlZ1AytKBDkQaHKm5DTjA8D2bIaFKCBQd330QEW0SIzqLJrZGCSlIY2xraJg==", - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/LouisBrunner" - }, - "peerDependencies": { - "react": "^16.14.0 || ^17.0.2 || ^18.0.0", - "react-dnd": "^16.0.1" - } - }, - "node_modules/react-dnd-touch-backend": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/react-dnd-touch-backend/-/react-dnd-touch-backend-16.0.1.tgz", - "integrity": "sha512-NonoCABzzjyWGZuDxSG77dbgMZ2Wad7eQiCd/ECtsR2/NBLTjGksPUx9UPezZ1nQ/L7iD130Tz3RUshL/ClKLA==", - "dependencies": { - "@react-dnd/invariant": "^4.0.1", - "dnd-core": "^16.0.1" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-draggable": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", - "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "node_modules/react-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", - "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", - "dependencies": { - "object-assign": "^4.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.1.1", - "react-side-effect": "^2.1.0" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/react-konva": { - "version": "18.2.10", - "resolved": "https://registry.npmjs.org/react-konva/-/react-konva-18.2.10.tgz", - "integrity": "sha512-ohcX1BJINL43m4ynjZ24MxFI1syjBdrXhqVxYVDw2rKgr3yuS0x/6m1Y2Z4sl4T/gKhfreBx8KHisd0XC6OT1g==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/lavrton" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/konva" - }, - { - "type": "github", - "url": "https://github.com/sponsors/lavrton" - } - ], - "dependencies": { - "@types/react-reconciler": "^0.28.2", - "its-fine": "^1.1.1", - "react-reconciler": "~0.29.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "konva": "^8.0.1 || ^7.2.5 || ^9.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-native-crypto-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz", - "integrity": "sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA==" - }, - "node_modules/react-onclickoutside": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", - "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" - }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x || ^18.x", - "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" - } - }, - "node_modules/react-pdf": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.0.tgz", - "integrity": "sha512-704ObLnRDm5lixL4e6NXNLaincBHGNLo+NGdbO3rEXE963NlNzwLxFpmKcbdXHAMQL4rYJQWb1L0w5IL6y8Osw==", - "dependencies": { - "clsx": "^2.0.0", - "dequal": "^2.0.3", - "make-cancellable-promise": "^1.3.1", - "make-event-props": "^1.6.0", - "merge-refs": "^1.2.1", - "pdfjs-dist": "3.11.174", - "prop-types": "^15.6.2", - "tiny-invariant": "^1.0.0", - "warning": "^4.0.0" - }, - "funding": { - "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-pdf/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/react-reconciler": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", - "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-rnd": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/react-rnd/-/react-rnd-10.4.1.tgz", - "integrity": "sha512-0m887AjQZr6p2ADLNnipquqsDq4XJu/uqVqI3zuoGD19tRm6uB83HmZWydtkilNp5EWsOHbLGF4IjWMdd5du8Q==", - "dependencies": { - "re-resizable": "6.9.6", - "react-draggable": "4.4.5", - "tslib": "2.3.1" - }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" - } - }, - "node_modules/react-rnd/node_modules/react-draggable": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", - "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-rnd/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/react-router": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz", - "integrity": "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==", - "dependencies": { - "@remix-run/router": "1.9.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz", - "integrity": "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==", - "dependencies": { - "@remix-run/router": "1.9.0", - "react-router": "6.16.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-scrollbars-custom": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-scrollbars-custom/-/react-scrollbars-custom-4.1.1.tgz", - "integrity": "sha512-FOI1EMrdN5qziwvFAuH4saOo0+ggxeTuKLPpy6nezNdLUnDW1vCHGq0VSSfTSRstDgfXgwff5TMP9NeJ8NiFOQ==", - "dependencies": { - "cnbuilder": "^3.1.0", - "react-draggable": "^4.4.5", - "zoom-level": "^2.5.0" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/xobotyi" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/react-select": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.0.tgz", - "integrity": "sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.8.1", - "@floating-ui/dom": "^1.0.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^6.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0", - "use-isomorphic-layout-effect": "^1.1.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-side-effect": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", - "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-signature-canvas": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-signature-canvas/-/react-signature-canvas-1.0.6.tgz", - "integrity": "sha512-NoMHomYu9HxFeLjUGbIeV9abPdWSROfFxFNDekGdwmmaIx+w5ziOEiU2C34X0Ao4GxFnwqyUy/BpYlA4lCD1CA==", - "dependencies": { - "signature_pad": "^2.3.2", - "trim-canvas": "^0.1.0" - }, - "peerDependencies": { - "prop-types": "^15.5.8", - "react": "0.14 - 18", - "react-dom": "0.14 - 18" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/reactour": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.19.1.tgz", - "integrity": "sha512-Y6MYZeNsnPQhUxV9U3dw6CU8qWjqOTlTTs64VsEHRXhrePV4+FZEASbiukf3TPC5PmabaF308VkT5hv9SVJNng==", - "dependencies": { - "@rooks/use-mutation-observer": "4.11.2", - "classnames": "2.3.1", - "focus-outline-manager": "^1.0.2", - "lodash.debounce": "4.0.8", - "lodash.pick": "4.4.0", - "prop-types": "15.7.2", - "react-focus-lock": "2.5.2", - "scroll-smooth": "1.1.1", - "scrollparent": "2.0.1" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0-0 || ^18.0.0-0", - "react-dom": "^16.3.0 || ^17.0.0-0 || ^18.0.0-0", - "react-is": "^16.8 || ^17.0.0-0 || ^18.0.0-0", - "styled-components": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/reactour/node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "node_modules/reactour/node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/reactour/node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/reactour/node_modules/react-focus-lock": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.5.2.tgz", - "integrity": "sha512-WzpdOnEqjf+/A3EH9opMZWauag7gV0BxFl+EY4ElA4qFqYsUsBLnmo2sELbN5OC30S16GAWMy16B9DLPpdJKAQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "focus-lock": "^0.9.1", - "prop-types": "^15.6.2", - "react-clientside-effect": "^1.2.5", - "use-callback-ref": "^1.2.5", - "use-sidecar": "^1.0.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/restructure": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.0.tgz", - "integrity": "sha512-Xj8/MEIhhfj9X2rmD9iJ4Gga9EFqVlpMj3vfLnV2r/Mh5jRMryNV+6lWh9GdJtDBcBSPIqzRdfBQ3wDtNFv/uw==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/scroll-smooth": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/scroll-smooth/-/scroll-smooth-1.1.1.tgz", - "integrity": "sha512-i9e/hJf0ODPEsy+AubE0zES6xdOuIvtebe5MvdSI1lB4t91k+O+8kV15CYfPN0yPH4j4hZUoKM3rVaPVcmiOoQ==" - }, - "node_modules/scrollparent": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.0.1.tgz", - "integrity": "sha512-HSdN78VMvFCSGCkh0oYX/tY4R3P1DW61f8+TeZZ4j2VLgfwvw0bpRSOv4PCVKisktIwbzHCfZsx+rLbbDBqIBA==" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "peer": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/signature_pad": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-2.3.2.tgz", - "integrity": "sha512-peYXLxOsIY6MES2TrRLDiNg2T++8gGbpP2yaC+6Ohtxr+a2dzoaqWosWDY9sWqTAAk6E/TyQO+LJw9zQwyu5kA==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" - }, - "node_modules/static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "dependencies": { - "escodegen": "^1.8.1" - } - }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/styled-components": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", - "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" - }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "optional": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", - "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/trim-canvas": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/trim-canvas/-/trim-canvas-0.1.2.tgz", - "integrity": "sha512-nd4Ga3iLFV94mdhW9JFMLpQbHUyCQuhFOD71PEAt1NjtMD5wbZctzhX8c3agHNybMR5zXD1XTGoIEWk995E6pQ==" - }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "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/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-properties": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", - "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", - "dependencies": { - "base64-js": "^1.3.0", - "unicode-trie": "^2.0.0" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-trie": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", - "dependencies": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - } - }, - "node_modules/unicode-trie/node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/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==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite-compatible-readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/vite-compatible-readable-stream/-/vite-compatible-readable-stream-3.6.1.tgz", - "integrity": "sha512-t20zYkrSf868+j/p31cRIGN28Phrjm3nRSLR2fyc2tiWi4cZGVdv68yNlwnIINTkMTmPoMiSlc0OadaO7DXZaQ==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.19", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", - "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "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.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "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/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", - "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", - "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-build": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", - "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@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", - "rollup-plugin-terser": "^7.0.0", - "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": "6.6.0", - "workbox-broadcast-update": "6.6.0", - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-google-analytics": "6.6.0", - "workbox-navigation-preload": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-range-requests": "6.6.0", - "workbox-recipes": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0", - "workbox-streams": "6.6.0", - "workbox-sw": "6.6.0", - "workbox-window": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", - "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", - "deprecated": "workbox-background-sync@6.6.0", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" - }, - "node_modules/workbox-expiration": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", - "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", - "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "dependencies": { - "workbox-background-sync": "6.6.0", - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", - "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-precaching": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", - "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", - "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-recipes": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", - "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", - "dependencies": { - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-routing": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", - "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-strategies": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", - "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-streams": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", - "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0" - } - }, - "node_modules/workbox-sw": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", - "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.6.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoga-layout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-2.0.1.tgz", - "integrity": "sha512-tT/oChyDXelLo2A+UVnlW9GU7CsvFMaEnd9kVFsaiCQonFAXd3xrHhkLYu+suwwosrAEQ746xBU+HvYtm1Zs2Q==" - }, - "node_modules/zoom-level": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/zoom-level/-/zoom-level-2.5.0.tgz", - "integrity": "sha512-7UlRWU4Q3uCMCeDVMOm7eBrIu145OqsIJ3p6zq58l8UsSYwKWxc6zEapC5YA9tIeh0oheb4cT9Kk2Wq353loFg==", - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/xobotyi" - } - } - } -} diff --git a/microfrontends/SignDocuments/package.json b/microfrontends/SignDocuments/package.json deleted file mode 100644 index a1a69abfc..000000000 --- a/microfrontends/SignDocuments/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "signmicroapp", - "version": "0.1.0", - "private": true, - "homepage": "./mfbuild", - "dependencies": { - "@radix-ui/themes": "^1.1.2", - "@react-pdf/renderer": "^3.3.8", - "@testing-library/jest-dom": "^5.17.0", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "axios": "^1.6.0", - "file-saver": "^2.0.5", - "gh-pages": "^6.0.0", - "mf-cra": "^0.0.5", - "moment": "^2.30.1", - "parse": "^4.3.1", - "pdf-lib": "^1.17.1", - "print-js": "^1.6.0", - "radix-ui": "^1.0.1", - "react": "^18.2.0", - "react-bootstrap": "^2.9.0", - "react-datepicker": "^5.1.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-dnd-multi-backend": "^8.0.3", - "react-dnd-touch-backend": "^16.0.1", - "react-dom": "^18.2.0", - "react-draggable": "^4.4.6", - "react-helmet": "^6.1.0", - "react-konva": "^18.2.10", - "react-pdf": "^7.7.0", - "react-rnd": "^10.4.1", - "react-router-dom": "^6.16.0", - "react-scripts": "5.0.1", - "react-scrollbars-custom": "^4.1.1", - "react-select": "^5.8.0", - "react-signature-canvas": "^1.0.6", - "reactour": "^1.19.1", - "regex-parser": "^2.3.0", - "web-vitals": "^2.1.4" - }, - "scripts": { - "start": "mf-cra start", - "build": "CI=false && PUBLIC_URL=./mfbuild BUILD_PATH='./mfbuild' mf-cra build && mv mfbuild ../../apps/OpenSign/public", - "docker-build": "CI=false && PUBLIC_URL=./mfbuild BUILD_PATH='./mfbuild' mf-cra build && mv mfbuild ../public", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/microfrontends/SignDocuments/public/favicon.ico b/microfrontends/SignDocuments/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/microfrontends/SignDocuments/public/index.html b/microfrontends/SignDocuments/public/index.html deleted file mode 100644 index b3ac89822..000000000 --- a/microfrontends/SignDocuments/public/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - OpenSign™ - - - -
- - - - diff --git a/microfrontends/SignDocuments/public/logo192.png b/microfrontends/SignDocuments/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/microfrontends/SignDocuments/public/manifest.json b/microfrontends/SignDocuments/public/manifest.json deleted file mode 100644 index 080d6c77a..000000000 --- a/microfrontends/SignDocuments/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/microfrontends/SignDocuments/public/robots.txt b/microfrontends/SignDocuments/public/robots.txt deleted file mode 100644 index e9e57dc4d..000000000 --- a/microfrontends/SignDocuments/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/microfrontends/SignDocuments/src/App.js b/microfrontends/SignDocuments/src/App.js deleted file mode 100644 index 93a37b40d..000000000 --- a/microfrontends/SignDocuments/src/App.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from "react"; -import { HashRouter } from "react-router-dom"; -import AppRoutes from "./Routes"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { TouchBackend } from "react-dnd-touch-backend"; -import { - DndProvider, - TouchTransition, - MouseTransition, - Preview -} from "react-dnd-multi-backend"; -import DragElement from "./Component/component/DragElement"; -export default function App() { - const HTML5toTouch = { - backends: [ - { - id: "html5", - backend: HTML5Backend, - transition: MouseTransition, - }, - { - id: "touch", - backend: TouchBackend, - options: { enableMouseEvents: true }, - preview: true, - transition: TouchTransition, - }, - ], - }; - const generatePreview = (props) => { - const { item, style } = props; - const newStyle = { - ...style, - }; - - return ( -
- -
- ); - }; - - return ( - - {generatePreview} - - - - - ); -} diff --git a/microfrontends/SignDocuments/src/Component/Certificate/Certificate.js b/microfrontends/SignDocuments/src/Component/Certificate/Certificate.js deleted file mode 100644 index f0ae76b05..000000000 --- a/microfrontends/SignDocuments/src/Component/Certificate/Certificate.js +++ /dev/null @@ -1,277 +0,0 @@ -import React, { useEffect, useState } from "react"; -import "./certificate.css"; -import opensignLogo from "../../assests/open-sign-logo.png"; - -import { - Page, - Text, - View, - Document, - StyleSheet, - Image -} from "@react-pdf/renderer"; - -function Certificate({ pdfData }) { - const [isMultiSigners, setIsMultiSigners] = useState(); - const [multiSigner, setMultiSigners] = useState([]); - const [isLoad, setIsLoad] = useState(false); - - useEffect(() => { - handleSignerData(); - }, []); - - const handleSignerData = () => { - const checkSigners = pdfData.filter((data) => data.Signers); - if (checkSigners && checkSigners.length > 0) { - setIsMultiSigners(true); - - const checkSignSigners = - pdfData[0].AuditTrail && - pdfData[0].AuditTrail.length > 0 && - pdfData[0].AuditTrail.filter((data) => data.Activity === "Signed"); - - setMultiSigners(checkSignSigners); - } else { - setIsMultiSigners(false); - } - setIsLoad(true); - }; - - const styles = StyleSheet.create({ - page: { - borderRadius: "5px", - padding: "10px", - backgroundColor: "white" - }, - section1: { - border: "1px solid rgb(177, 174, 174)", - padding: "20px" - }, - textStyle: { - fontWeight: "bold", - fontSize: "11px", - marginBottom: "10px" - }, - textStyle2: { - fontWeight: "600", - fontSize: "11px", - marginBottom: "10px", - color: "gray" - }, - image: { - width: "71px", - height: "17px" - } - }); - - const generatedDate = () => { - const newDate = new Date(); - const utcTime = newDate.toUTCString(); - - return ( - - Generated On {utcTime} - - ); - }; - const changeCompletedDate = () => { - const completedOn = pdfData[0].updatedAt; - const newDate = new Date(completedOn); - const utcTime = newDate.toUTCString(); - - return {utcTime}; - }; - - const signerName = (data) => { - const getSignerName = pdfData[0].Signers.filter( - (sign) => sign.objectId === data.UserPtr.objectId - ); - - return ( - getSignerName[0] && - getSignerName.length > 0 && ( - <> - - Name :   - {getSignerName[0].Name} - - - Email :   - {getSignerName[0].Email} - - - ) - ); - }; - - return ( - isLoad && ( - - {/** Page defines a single page of content. */} - - - - - {generatedDate()} - - - - - {" "} - Certificate of Completion - - - - - - Summary - - - - - Document ID :   - {pdfData[0].objectId} - - - Document Name :   - {pdfData[0].Name} - - - Organization :   - - {pdfData[0].ExtUserPtr.Company} - - - - Completed on :  {changeCompletedDate()} - - {multiSigner && multiSigner.length > 0 && ( - - Signers :   - - {multiSigner.length} - - - )} - - {isMultiSigners ? ( - - - Recipients - - - - {multiSigner && - multiSigner.map((data, ind) => { - return ( - - - {signerName(data)} - - - Accessed from :   - - {data.ipAddress} - - - - ); - })} - - - ) : ( - - - Recipients - - - Signers :  1 - - - Name :   - - {pdfData[0].ExtUserPtr.Name} - - - - Email :   - - {pdfData[0].ExtUserPtr.Email} - - - - Accessed from :   - - {pdfData[0].AuditTrail && - pdfData[0].AuditTrail[0].ipAddress} - - - - - Signed on :  {changeCompletedDate()} - - - )} - - - - - - ) - ); -} - -export default Certificate; diff --git a/microfrontends/SignDocuments/src/Component/Certificate/certificate.css b/microfrontends/SignDocuments/src/Component/Certificate/certificate.css deleted file mode 100644 index 6d491ca7b..000000000 --- a/microfrontends/SignDocuments/src/Component/Certificate/certificate.css +++ /dev/null @@ -1,9 +0,0 @@ -.containerBox { - border-radius: 5px; - padding: 10px; -} - -.certificateBox { - border: 1px solid rgb(177, 174, 174); - padding: 20px; -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/Component/DebugUi.js b/microfrontends/SignDocuments/src/Component/DebugUi.js deleted file mode 100644 index 3423abd04..000000000 --- a/microfrontends/SignDocuments/src/Component/DebugUi.js +++ /dev/null @@ -1,429 +0,0 @@ -import React, { useEffect, useState } from "react"; -import RenderAllPdfPage from "./component/renderAllPdfPage"; -import "../css/./signature.css"; -import "../css/AddUser.css"; -import Title from "./component/Title"; -import ModalUi from "../premitives/ModalUi"; -import RenderDebugPdf from "./component/RenderDebugPdf"; -import { pdfjs } from "react-pdf"; -import Alert from "../premitives/Alert"; -import HandleError from "./component/HandleError"; -import { useWindowSize } from "../hook/useWindowSize"; - -function processDimensions(x, y, width, height) { - if (width < 0) { - x -= Math.abs(width); - width = Math.abs(width); - } - - if (height < 0) { - y -= Math.abs(height); - height = Math.abs(height); - } - - return { - x: Math.floor(x), - y: Math.floor(y), - width: Math.floor(width), - height: Math.floor(height) - }; -} -const DebugUi = () => { - const { width } = useWindowSize(); - const [pdf, setPdf] = useState(""); - const [isModal, setIsModal] = useState(true); - const [allPages, setAllPages] = useState(null); - const [pageNumber, setPageNumber] = useState(1); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const [pdfDetails, setPdfDetails] = useState({ - name: "", - pdftype: "", - totalPages: "", - currentPage: 1, - x: 0, - y: 0, - base64: "" - }); - const [hoverCoordinates, setHoverCoordinates] = useState({ x: 0, y: 0 }); - const [pdfDimension, setPdfDimension] = useState({ width: 0, height: 0 }); - const [annotations, setAnnotations] = useState([]); - const [newAnnotation, setNewAnnotation] = useState([]); - const [copied, setCopied] = useState(false); - - useEffect(() => { - if (pdf && pdf.name) { - const fetchPdfMetadata = async () => { - try { - const pdfDataURL = URL.createObjectURL(pdf); // Convert File to data URL - console.log("pdfDataURL ", pdfDataURL); - const pdfInfo = await pdfjs.getDocument({ url: pdfDataURL }).promise; - const pdfType = await inferPdfType(pdfInfo); - setPdfDetails((prevDetails) => ({ - ...prevDetails, - pdftype: pdfType - })); - } catch (error) { - console.error("Error fetching PDF metadata:", error); - } - }; - - fetchPdfMetadata(); - } - }, [pdf]); - - const inferPdfType = async (pdf) => { - try { - const firstPage = await pdf.getPage(1); - const scale = 1; - const { width, height } = firstPage.getViewport({ scale }); - setPdfDimension({ width: width, height: height }); - - // Assuming a standard DPI of 72, you can adjust this value if needed - const dpi = 72; - - const widthInInches = width / dpi; - const heightInInches = height / dpi; - - const isA1 = widthInInches > 23.39 && heightInInches > 16.54; - const isA2 = widthInInches > 16.54 && heightInInches > 11.69; - const isA3 = widthInInches > 11.69 && heightInInches > 8.27; - const isA4 = widthInInches > 8.27 && heightInInches > 5.83; - const isLegal = widthInInches > 8.5 && heightInInches > 14; - const isLetter = widthInInches > 8.5 && heightInInches > 11; - const isLedger = widthInInches > 11 && heightInInches > 17; - - if (isA1) return "A1"; - if (isA2) return "A2"; - if (isA3) return "A3"; - if (isA4) return "A4"; - if (isLegal) return "Legal"; - if (isLetter) return "Letter"; - if (isLedger) return "Ledger"; - - return "Unknown"; - } catch (error) { - console.error("Error getting page dimensions:", error); - return "Unknown"; - } - }; - - const handleSubmit = (e) => { - e.preventDefault(); - setIsModal(false); - setPdfDetails((prevData) => ({ ...prevData, name: pdf?.name })); - }; - - //function for get pdf page details - const pageDetails = async ({ numPages }) => { - const load = { - status: true - }; - setPdfDetails((prevDetails) => ({ ...prevDetails, totalPages: numPages })); - setPdfLoadFail(load); - }; - - const handleMouseMoveDiv = (event) => { - setHoverCoordinates({ - x: event.nativeEvent.offsetX, - y: event.nativeEvent.offsetY - }); - }; - const handleMouseDown = (event) => { - if (newAnnotation.length === 0) { - const { x, y } = event.target.getStage().getPointerPosition(); - setNewAnnotation([ - { x, y, width: 0, height: 0, key: "0", page: pageNumber } - ]); - } - }; - - const handleMouseUp = (event) => { - if (newAnnotation.length === 1) { - const sx = newAnnotation[0].x; - const sy = newAnnotation[0].y; - const { x, y } = event.target.getStage().getPointerPosition(); - const result = processDimensions(sx, sy, x - sx, y - sy); - const annotationToAdd = { - ...result, - key: annotations.length + 1, - page: pageNumber - }; - annotations.push(annotationToAdd); - setNewAnnotation([]); - setAnnotations(annotations); - setPdfDetails((prevDetails) => ({ - ...prevDetails, - x: result.x, - y: result.y - })); - } - }; - - const handleMouseMove = (event) => { - if (newAnnotation.length === 1) { - const sx = newAnnotation[0].x; - const sy = newAnnotation[0].y; - const { x, y } = event.target.getStage().getPointerPosition(); - setNewAnnotation([ - { - x: sx, - y: sy, - width: x - sx, - height: y - sy, - page: pageNumber, - key: "0" - } - ]); - } - }; - - const annotationsToDraw = [...annotations, ...newAnnotation]; - - const handlePageLoadSuccess = (page) => { - setPdfDetails((prevDetails) => ({ - ...prevDetails, - currentPage: page.pageNumber - })); - }; - - const copytoclipboard = (text) => { - navigator.clipboard.writeText(text); - setCopied(true); - setTimeout(() => { - setCopied(false); - }, 1500); // Reset copied state after 1.5 seconds - }; - const handleFileChange = (files) => { - const file = files[0]; - setPdf(file); - - if (file && file.type === "application/pdf") { - const reader = new FileReader(); - - reader.onloadend = () => { - const base64String = reader.result.split(",")[1]; - setPdfDetails((prevdata) => ({ ...prevdata, base64: base64String })); - }; - - reader.readAsDataURL(file); - } - }; - const handleDelete = (key) => { - const updateAnnotations = annotations.filter((x) => x.key !== key); - setAnnotations(updateAnnotations); - }; - return ( -
- {copied && Copied} - - {width < 800 ? ( - <HandleError handleError={"Debug PDF only availble for PC"} /> - ) : ( - <> - {!isModal && ( - <div className="signatureContainer"> - {/* this component used to render all pdf pages in left side */} - <RenderAllPdfPage - signPdfUrl={pdf} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - pageNumber={pageNumber} - /> - {/* pdf render view */} - <div> - <div data-tut="reactourThird"> - <RenderDebugPdf - pdfUrl={pdf} - pageDetails={pageDetails} - pageNumber={pageNumber} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - handlePageLoadSuccess={handlePageLoadSuccess} - handleMouseMove={handleMouseMove} - handleMouseUp={handleMouseUp} - handleMouseDown={handleMouseDown} - hoverCoordinates={hoverCoordinates} - annotations={annotationsToDraw} - pdfDimension={pdfDimension} - handleMouseMoveDiv={handleMouseMoveDiv} - /> - </div> - </div> - <div style={{ backgroundColor: "white", width: 220 }}> - <div - style={{ - fontSize: 18, - fontWeight: 500, - padding: "10px 12px", - borderBottom: "1px solid grey" - }} - > - PDF details - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - Name: {pdfDetails?.name} - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - Pdf type: {pdfDetails?.pdftype} - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - Total Pages: {pdfDetails?.totalPages} - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - Current Page: {pdfDetails?.currentPage} - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - Base64 : {pdfDetails?.base64.slice(0, 10)}... - <span - style={{ - borderRadius: 4, - padding: "3px 5px", - border: "1px solid gray", - fontSize: 12, - margin: 2, - cursor: "pointer" - }} - onClick={() => copytoclipboard(pdfDetails?.base64)} - > - <i className="fa-solid fa-copy"></i> - </span> - </div> - <div - style={{ - fontSize: 18, - fontWeight: 500, - padding: "10px 12px", - borderBottom: "1px solid grey" - }} - > - Last click - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - x co-ordinate: {pdfDetails?.x} - </div> - <div style={{ fontSize: 14, padding: "5px 12px" }}> - y co-ordinate: {pdfDetails?.y} - </div> - - <div - style={{ - fontSize: 18, - fontWeight: 500, - padding: "10px 12px", - borderBottom: "1px solid grey", - borderTop: "1px solid grey" - }} - > - Annotation - </div> - <ul - style={{ - listStyle: "none", - padding: 10, - height: 500, - overflowY: "auto", - scrollbarWidth: 5 - }} - > - {annotations.map((coord, index) => ( - <li key={index}> - <span style={{ fontSize: 13, fontWeight: 500 }}>{`Box ${ - index + 1 - }:`}</span> - <code - style={{ - fontSize: 12, - color: "black", - cursor: "pointer" - }} - > - {` ["page":${coord?.page}, "x": ${coord.x}, "y": ${coord.y}, "w": ${coord.width}, "h": ${coord.height}]`} - </code> - <div> - <span - style={{ - borderRadius: 4, - padding: "3px 5px", - border: "1px solid gray", - fontSize: 12, - margin: 2, - cursor: "pointer" - }} - onClick={() => - copytoclipboard( - `"page":${coord?.page}, "x": ${coord.x}, "y": ${coord.y}, "w": ${coord.width}, "h": ${coord.height}` - ) - } - > - <i className="fa-solid fa-copy"></i> - </span> - <span - style={{ - borderRadius: 4, - padding: "3px 5px", - border: "1px solid gray", - fontSize: 12, - margin: 2, - cursor: "pointer" - }} - onClick={() => handleDelete(coord.key)} - > - <i className="fa-solid fa-trash-can"></i> - </span> - </div> - </li> - ))} - </ul> - </div> - </div> - )} - <ModalUi title={"Select PDF"} isOpen={isModal}> - <form onSubmit={handleSubmit} style={{ margin: "10px" }}> - <input - type="file" - onChange={(e) => handleFileChange(e.target.files)} - style={{ - width: "100%", - border: "1px solid grey", - borderRadius: "4px", - padding: "5px", - fontSize: 12 - }} - accept=".pdf" - required - /> - <div - style={{ borderTop: "1px solid grey", margin: "10px 0" }} - ></div> - <button - style={{ - background: "#32a3ac", - borderRadius: "2px", - boxShadow: - "0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18)", - border: "none", - textTransform: "uppercase", - fontSize: "13px", - fontWeight: "600", - padding: "0.375rem 0.75rem", - textAlign: "center", - color: "#ffffff", - outline: "none" - }} - type="submit" - > - Submit - </button> - </form> - </ModalUi> - </> - )} - </div> - ); -}; - -export default DebugUi; diff --git a/microfrontends/SignDocuments/src/Component/DraftDocument.js b/microfrontends/SignDocuments/src/Component/DraftDocument.js deleted file mode 100644 index 6fa85e818..000000000 --- a/microfrontends/SignDocuments/src/Component/DraftDocument.js +++ /dev/null @@ -1,94 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { useNavigate } from "react-router-dom"; -import Loader from "./component/loader"; -import { contractDocument, getHostUrl } from "../utils/Utils"; -function DraftDocument() { - const navigate = useNavigate(); - const [pdfDetails, setPdfDetails] = useState([]); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - - const rowLevel = - localStorage.getItem("rowlevel") && - JSON.parse(localStorage.getItem("rowlevel")); - const docId = - rowLevel && rowLevel?.id - ? rowLevel.id - : rowLevel?.objectId && rowLevel.objectId; - - useEffect(() => { - if (docId) { - getDocumentDetails(); - } - }, []); - - //get document details - const getDocumentDetails = async () => { - //getting document details - const documentData = await contractDocument(docId); - if (documentData && documentData.length > 0) { - setPdfDetails(documentData); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - alert("Error: Something went wrong!"); - } else { - alert("No data found!"); - } - }; - - //check document type and render on signyour self and placeholder route - const handleDraftDoc = () => { - const data = pdfDetails[0]; - const hostUrl = getHostUrl(); - const signerExist = data.Signers && data.Signers; - const isDecline = data.IsDeclined && data.IsDeclined; - const isPlaceholder = data.Placeholders && data.Placeholders; - const signedUrl = data.SignedUrl; - //checking if document has completed and request signature flow - if (data?.IsCompleted && signerExist?.length > 0) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - } - //checking if document has completed and signyour-self flow - else if (!signerExist && !isPlaceholder) { - navigate(`${hostUrl}signaturePdf/${data.objectId}`); - } - //checking if document has declined by someone - else if (isDecline) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - //checking draft type document - } else if ( - signerExist?.length > 0 && - isPlaceholder?.length > 0 && - !signedUrl - ) { - navigate(`${hostUrl}placeHolderSign/${data.objectId}`); - } - //Inprogress document - else if (isPlaceholder?.length > 0 && signerExist?.length > 0) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - } //placeholder draft document - else if ( - (signerExist?.length > 0 && - (!isPlaceholder || isPlaceholder?.length === 0)) || - ((!signerExist || signerExist?.length === 0) && isPlaceholder?.length > 0) - ) { - navigate(`${hostUrl}placeHolderSign/${data.objectId}`); - } - }; - - return ( - <div> - {isLoading.isLoad ? <Loader isLoading={isLoading} /> : handleDraftDoc()} - </div> - ); -} - -export default DraftDocument; diff --git a/microfrontends/SignDocuments/src/Component/LegaDrive/FolderDrive/legaDriveComponent.js b/microfrontends/SignDocuments/src/Component/LegaDrive/FolderDrive/legaDriveComponent.js deleted file mode 100644 index 493a766b7..000000000 --- a/microfrontends/SignDocuments/src/Component/LegaDrive/FolderDrive/legaDriveComponent.js +++ /dev/null @@ -1,764 +0,0 @@ -import React, { useState, useEffect, useRef } from "react"; -import folder from "../../../assests/folder.png"; -import "../LegaDrive.css"; -import draftDoc from "../../../assests/draftDoc1.png"; -import pdfLogo from "../../../assests/pdf3.png"; -import axios from "axios"; -import * as ContextMenu from "@radix-ui/react-context-menu"; -import { saveAs } from "file-saver"; -import { getHostUrl } from "../../../utils/Utils"; -import { useNavigate } from "react-router-dom"; -import Table from "react-bootstrap/Table"; -import * as HoverCard from "@radix-ui/react-hover-card"; -import SelectFolder from "../../../premitives/SelectFolder"; -import ModalUi from "../../../premitives/ModalUi"; -import { themeColor } from "../../../utils/ThemeColor/backColor"; - -function PdfFileComponent({ - pdfData, - setFolderName, - setDocId, - setIsLoading, - setPdfData, - isList, - setIsAlert -}) { - const [rename, setRename] = useState(""); - const [renameValue, setRenameValue] = useState(""); - const inputRef = useRef(null); - const [isOpenMoveModal, setIsOpenMoveModal] = useState(false); - const [selectDoc, setSelectDoc] = useState(); - const [isDeleteDoc, setIsDeleteDoc] = useState(false); - const contextMenu = [ - { type: "Download", icon: "fa-solid fa-arrow-down" }, - { type: "Rename", icon: "fa-solid fa-font" }, - { type: "Move", icon: "fa-solid fa-file-export" }, - { type: "Delete", icon: "fa-solid fa-trash" } - ]; - const navigate = useNavigate(); - - //to focus input box on press rename to change doc name - useEffect(() => { - if (rename && inputRef.current) { - setTimeout(() => { - inputRef.current.focus(); - }, 10); - } - }, [rename]); - - //function to handle folder component - const handleOnclikFolder = (data) => { - const folderData = { - name: data.Name, - objectId: data.objectId - }; - setFolderName((prev) => [...prev, folderData]); - const loadObj = { - isLoad: true, - message: "This might take some time" - }; - - setIsLoading(loadObj); - setDocId(data.objectId); - }; - //function for change doc name and update doc name in _document class - const handledRenameDoc = async (data) => { - setRename(""); - const trimmedValue = renameValue.trim(); - - if (trimmedValue.length > 0) { - const updateName = { - Name: renameValue - }; - const docId = data.objectId; - - const docData = pdfData; - - const updatedData = docData.map((item) => { - if (item.objectId === docId) { - // If the item's ID matches the target ID, update the name - return { ...item, Name: renameValue }; - } - // If the item's ID doesn't match, keep it unchanged - return item; - }); - - setPdfData(updatedData); - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${docId}`, - updateName, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - // const res = result.data; - // console.log("res", res); - }) - .catch((err) => { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - }); - } - }; - - //function for navigate user to microapp-signature component - const checkPdfStatus = async (data) => { - const hostUrl = getHostUrl(); - - const signerExist = data.Signers && data.Signers; - const isDecline = data.IsDeclined && data.IsDeclined; - const isPlaceholder = data.Placeholders && data.Placeholders; - const signedUrl = data.SignedUrl; - //checking if document has completed and request signature flow - if (data?.IsCompleted && signerExist?.length > 0) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - } - //checking if document has completed and signyour-self flow - else if (!signerExist && !isPlaceholder) { - navigate(`${hostUrl}signaturePdf/${data.objectId}`); - } - //checking if document has declined by someone - else if (isDecline) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - //checking draft type document - } else if ( - signerExist?.length > 0 && - isPlaceholder?.length > 0 && - !signedUrl - ) { - navigate(`${hostUrl}placeHolderSign/${data.objectId}`); - } - //Inprogress document - else if (isPlaceholder?.length > 0 && signerExist?.length > 0) { - navigate(`${hostUrl}pdfRequestFiles/${data.objectId}`); - } //placeholder draft document - else if ( - (signerExist?.length > 0 && - (!isPlaceholder || isPlaceholder?.length === 0)) || - ((!signerExist || signerExist?.length === 0) && isPlaceholder?.length > 0) - ) { - navigate(`${hostUrl}placeHolderSign/${data.objectId}`); - } - }; - - const handleMenuItemClick = (selectType, data) => { - switch (selectType) { - case "Download": - const pdfName = data && data.Name; - const pdfUrl = data && data.SignedUrl ? data.SignedUrl : data.URL; - saveAs(pdfUrl, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); - break; - case "Rename": - setRenameValue(data.Name); - setRename(data.objectId); - break; - case "Delete": - setIsDeleteDoc(true); - setSelectDoc(data); - break; - - case "Move": - handleMoveDocument(data); - break; - } - }; - //function for delete document - const handleDeleteDocument = async (docData) => { - setIsDeleteDoc(false); - const docId = docData.objectId; - const data = { - IsArchive: true - }; - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${docId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - const res = result.data; - if (res) { - const updatedData = pdfData.filter((x) => x.objectId !== docId); - setPdfData(updatedData); - } - }) - .catch((err) => { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - }); - }; - const handleMoveDocument = async (docData) => { - setIsOpenMoveModal(true); - setSelectDoc(docData); - }; - //function for move document from one folder to another folder - const handleMoveFolder = async (selectFolderData) => { - const selecFolderId = selectDoc?.Folder?.objectId; - const moveFolderId = selectFolderData?.ObjectId; - let updateDocId = selectDoc?.objectId; - let updateData; - const checkExist = moveFolderId - ? selecFolderId === moveFolderId - ? true - : false - : selecFolderId - ? false - : true; - if (!checkExist) { - if (moveFolderId) { - updateData = { - Folder: { - __type: "Pointer", - className: `${localStorage.getItem("_appName")}_Document`, - objectId: moveFolderId - } - }; - } else { - updateData = { - Folder: { __op: "Delete" } - }; - } - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${updateDocId}`, - updateData, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - - .then((Listdata) => { - // console.log("Listdata ", Listdata); - const res = Listdata.data; - if (res) { - const updatedData = pdfData.filter( - (x) => x.objectId !== updateDocId - ); - setPdfData(updatedData); - } - }) - .catch((err) => { - console.log("err", err); - }); - - setIsOpenMoveModal(false); - } else { - alert("folder already exist!"); - setIsOpenMoveModal(false); - } - }; - - const sanitizeFileName = (pdfName) => { - // Replace spaces with underscore - return pdfName.replace(/ /g, "_"); - }; - - const handleEnterPress = (e, data) => { - if (e.key === "Enter") { - handledRenameDoc(data); - } - }; - - const handleDraftDoc = (data) => { - window.location.hash = `/mf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9MZWdhR2VuaWUtTWljcm9hcHBWMi9yZW1vdGVFbnRyeS5qcw==&moduleToLoad=AppRoutes&remoteName=legageniemicroapp/legagenie?${data.objectId}`; - }; - - //component to handle type of document and render according to type - const handleFolderData = (data, ind, listType) => { - let createddate, status, isDecline, signerExist, isComplete, isPlaceholder; - if (data.Type !== "Folder") { - const expireDate = data.ExpiryDate && data.ExpiryDate.iso; - const createdDate = data.createdAt && data.createdAt; - createddate = new Date(createdDate).toLocaleDateString(); - isComplete = data.IsCompleted && data.IsCompleted ? true : false; - isDecline = data.IsDeclined && data.IsDeclined; - isPlaceholder = data.Placeholders && data.Placeholders; - signerExist = data.Signers && data.Signers; - const signedUrl = data.SignedUrl; - - const expireUpdateDate = new Date(expireDate).getTime(); - const currDate = new Date().getTime(); - let isExpire = false; - if (currDate > expireUpdateDate) { - isExpire = true; - } - - if (isComplete) { - status = "Completed"; - } else if (isDecline) { - status = "Declined"; - } else if (!signerExist || signerExist?.length === 0) { - status = "Draft"; - } else if ( - signerExist?.length > 0 && - (!isPlaceholder || isPlaceholder?.length === 0) - ) { - status = "Draft"; - } else if ( - signerExist?.length > 0 && - isPlaceholder?.length > 0 && - !signedUrl - ) { - status = "Draft"; - } else if (isExpire) { - status = "Expired"; - } else { - status = "In Progress"; - } - } - - const signersName = () => { - const getSignersName = signerExist.map((data) => data.Name); - const signerName = getSignersName.join(","); - - return ( - <span - className="statusSpan" - style={{ width: "90%", wordWrap: "break-word" }} - > - {signerName}{" "} - </span> - ); - }; - return listType === "table" ? ( - data.Type === "Folder" ? ( - <tr onClick={() => handleOnclikFolder(data)}> - <td - style={{ cursor: "pointer", display: "flex", alignItems: "center" }} - > - <i - className="fa fa-folder" - aria-hidden="true" - style={{ color: "#f0ad26", marginRight: "8px", fontSize: "26px" }} - ></i> - - <span style={{ fontSize: "12px", fontWeight: "500" }}> - {data.Name} - </span> - </td> - <td>_</td> - <td>Folder</td> - <td>_</td> - <td>_</td> - </tr> - ) : data.Type === "AIDoc" ? ( - <tr onClick={() => handleDraftDoc(data)}> - <td - style={{ cursor: "pointer", display: "flex", alignItems: "center" }} - > - <i - className="fa fa-file-text" - style={{ color: "#0ea3ed", marginRight: "8px", fontSize: "26px" }} - ></i> - - <span style={{ fontSize: "12px", fontWeight: "500" }}> - {data.Name} - </span> - </td> - <td>{createddate}</td> - <td>LegaGenie Draft</td> - <td>_</td> - <td>_</td> - </tr> - ) : ( - <tr onClick={() => checkPdfStatus(data)}> - <td - style={{ cursor: "pointer", display: "flex", alignItems: "center" }} - > - <i - className="fa fa-file-pdf" - style={{ color: "#ed4d0e", marginRight: "8px", fontSize: "26px" }} - ></i> - - <span style={{ fontSize: "12px", fontWeight: "500" }}> - {data.Name} - </span> - </td> - <td>{createddate}</td> - <td>Pdf</td> - <td>{status}</td> - <td> - <i - onClick={(e) => { - e.stopPropagation(); - handleMenuItemClick("Download", data); - }} - className="fa fa-download" - aria-hidden="true" - style={{ color: "#ed280e", marginRight: "8px" }} - ></i> - </td> - </tr> - ) - ) : listType === "list" && data.Type === "Folder" ? ( - <div key={ind} className="folderBox"> - <ContextMenu.Root> - <ContextMenu.Trigger className="ContextMenuTrigger"> - <div - style={{ - display: "flex", - flexDirection: "column", - cursor: "pointer" - }} - > - <img - alt="no img" - onClick={() => handleOnclikFolder(data)} - src={folder} - width={100} - height={103} - /> - {rename === data.objectId ? ( - <input - onFocus={() => { - inputRef.current.setSelectionRange(0, 0); - const input = inputRef.current; - if (input) { - input.select(); - } - }} - autoFocus={true} - type="text" - onBlur={() => handledRenameDoc(data)} - onKeyDown={(e) => handleEnterPress(e, data)} - ref={inputRef} - defaultValue={renameValue} - // value={renameValue} - onChange={(e) => setRenameValue(e.target.value)} - style={{ - width: "100px", - border: "1.5px solid black", - borderRadius: "2px", - fontSize: "10px" - }} - /> - ) : ( - <span className="foldName">{data.Name}</span> - )} - </div> - </ContextMenu.Trigger> - - <ContextMenu.Portal> - <ContextMenu.Content - className="ContextMenuContent" - sideOffset={5} - align="end" - > - <ContextMenu.Item - onClick={() => handleMenuItemClick("Rename", data)} - className="ContextMenuItem" - > - <i className="fa-solid fa-font"></i> - <span style={{ marginLeft: "8px" }}>Rename</span> - </ContextMenu.Item> - </ContextMenu.Content> - </ContextMenu.Portal> - </ContextMenu.Root> - </div> - ) : data.Type === "AIDoc" ? ( - <div key={ind} className="folderBox"> - <ContextMenu.Root> - <ContextMenu.Trigger className="ContextMenuTrigger"> - <div - style={{ - display: "flex", - flexDirection: "column", - cursor: "pointer" - }} - > - <img - alt="no img" - onClick={() => handleDraftDoc(data)} - src={draftDoc} - width={100} - height={103} - /> - {rename === data.objectId ? ( - <input - onFocus={() => { - inputRef.current.setSelectionRange(0, 0); - const input = inputRef.current; - if (input) { - input.select(); - } - }} - autoFocus={true} - type="text" - onBlur={() => handledRenameDoc(data)} - onKeyDown={(e) => handleEnterPress(e, data)} - ref={inputRef} - defaultValue={renameValue} - // value={renameValue} - onChange={(e) => setRenameValue(e.target.value)} - style={{ - width: "100px", - border: "1.5px solid black", - borderRadius: "2px", - fontSize: "10px" - }} - /> - ) : ( - <span className="foldName">{data.Name}</span> - )} - </div> - </ContextMenu.Trigger> - - <ContextMenu.Portal> - <ContextMenu.Content - className="ContextMenuContent" - sideOffset={5} - align="end" - > - <ContextMenu.Item - onClick={() => handleMenuItemClick("Rename", data)} - className="ContextMenuItem" - > - <i className="fa-solid fa-font"></i> - <span style={{ marginLeft: "8px" }}>Rename</span> - </ContextMenu.Item> - </ContextMenu.Content> - </ContextMenu.Portal> - </ContextMenu.Root> - </div> - ) : ( - <HoverCard.Root openDelay={0} closeDelay={100}> - <HoverCard.Trigger asChild> - <div> - <ContextMenu.Root> - <div className="icon-container"> - <ContextMenu.Trigger className="ContextMenuTrigger"> - <img - alt="PDF" - className="pdf-icon" - src={pdfLogo} - onClick={() => checkPdfStatus(data)} - /> - {rename === data.objectId ? ( - <input - autoFocus={true} - type="text" - onFocus={() => { - inputRef.current.setSelectionRange(0, 0); - const input = inputRef.current; - if (input) { - input.select(); - } - }} - onBlur={() => handledRenameDoc(data)} - onKeyDown={(e) => handleEnterPress(e, data)} - ref={inputRef} - defaultValue={renameValue} - // value={renameValue} - onChange={(e) => setRenameValue(e.target.value)} - style={{ - width: "100px", - border: "1.5px solid black", - borderRadius: "2px", - fontSize: "10px" - }} - /> - ) : ( - <span className="fileName">{data.Name}</span> - )} - </ContextMenu.Trigger> - {status === "Completed" ? ( - <div className="status-badge completed"> - <i className="fas fa-check-circle"></i> - </div> - ) : status === "Declined" ? ( - <div className="status-badge declined"> - <i className="fa fa-thumbs-down"></i> - </div> - ) : status === "Expired" ? ( - <div className="status-badge expired"> - <i className="fa fa-hourglass-end"></i> - </div> - ) : status === "Draft" ? ( - <div className="status-badge draft"> - <i className="fa fa-file"></i> - </div> - ) : ( - status === "In Progress" && ( - <div className="status-badge in-progress"> - <i className="fa fa-paper-plane"></i> - </div> - ) - )} - </div> - - <ContextMenu.Portal> - <ContextMenu.Content - className="ContextMenuContent" - sideOffset={5} - align="end" - > - {contextMenu.map((menu, ind) => { - return ( - <ContextMenu.Item - key={ind} - onClick={() => handleMenuItemClick(menu.type, data)} - className="ContextMenuItem" - > - <i className={menu.icon}></i> - <span style={{ marginLeft: "8px" }}>{menu.type}</span> - </ContextMenu.Item> - ); - })} - </ContextMenu.Content> - </ContextMenu.Portal> - </ContextMenu.Root> - </div> - </HoverCard.Trigger> - <HoverCard.Portal> - <HoverCard.Content className="HoverCardContent" sideOffset={5}> - <strong style={{ fontSize: "13px" }}>Title: </strong> - <span className="statusSpan" style={{ marginBottom: "0px" }}> - {" "} - {data.Name} - </span> - <br /> - <strong style={{ fontSize: "13px" }}>Status: </strong> - <span className="statusSpan"> {status}</span> - <br /> - <strong style={{ fontSize: "13px" }}>Created Date: </strong> - <span className="statusSpan">{createddate}</span> - <br /> - {signerExist && ( - <> - <strong style={{ fontSize: "13px" }}>Signers: </strong> - {/* <span className="statusSpan">kjefjjnejkfnkbjs bbfjkdsbjbfjkbjk kscbjkbjkb</span> */} - {signersName()} - </> - )} - - <HoverCard.Arrow className="HoverCardArrow" /> - </HoverCard.Content> - </HoverCard.Portal> - </HoverCard.Root> - ); - }; - - //component to handle type of document and render according to type - return ( - <> - {isList ? ( - <div className="container" style={{ overflowX: "auto" }}> - <Table striped bordered hover> - <thead> - <tr> - <th>Name</th> - <th>Created Date</th> - <th>Type</th> - <th>Status</th> - <th>Action</th> - </tr> - </thead> - <tbody> - {pdfData.map((data, ind) => { - return ( - <React.Fragment key={ind}> - {handleFolderData(data, ind, "table")} - </React.Fragment> - ); - })} - </tbody> - </Table> - </div> - ) : ( - <div className="pdfContainer"> - {pdfData.map((data, ind) => { - return ( - <div className="box" key={ind}> - {handleFolderData(data, ind, "list")} - </div> - ); - })} - </div> - )} - {isOpenMoveModal && ( - <SelectFolder - onSuccess={handleMoveFolder} - isOpenModal={isOpenMoveModal} - folderCls={"contracts_Document"} - setIsOpenMoveModal={setIsOpenMoveModal} - setPdfData={setPdfData} - /> - )} - <ModalUi - isOpen={isDeleteDoc} - headerColor={themeColor()} - title={"Delete Document"} - handleClose={() => { - setIsDeleteDoc(false); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>Are you sure you want to delete this document?</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - - <button - onClick={() => { - handleDeleteDocument(selectDoc); - }} - style={{ - background: themeColor(), - color: "white" - }} - type="button" - className="finishBtn" - > - Yes - </button> - <button - onClick={() => { - setIsDeleteDoc(false); - }} - type="button" - className="finishBtn cancelBtn" - > - No - </button> - </div> - </ModalUi> - </> - ); -} - -export default PdfFileComponent; diff --git a/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.css b/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.css deleted file mode 100644 index a74ca1553..000000000 --- a/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.css +++ /dev/null @@ -1,560 +0,0 @@ -@import '@radix-ui/colors/black-alpha.css'; -@import '@radix-ui/colors/mauve.css'; -@import '@radix-ui/colors/violet.css'; - - - -.ContextMenuContent, -.ContextMenuSubContent { - min-width: 135px; - background-color: white; - border-radius: 6px; - overflow: hidden; - padding: 5px; - box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), 0px 10px 20px -15px rgba(22, 23, 24, 0.2); - z-index: 99; -} - -.ContextMenuItem, -.ContextMenuCheckboxItem, -.ContextMenuRadioItem, -.ContextMenuSubTrigger { - font-size: 13px; - line-height: 1; - color: var(--violet-11); - border-radius: 3px; - display: flex; - align-items: center; - height: 25px; - padding: 0 5px; - position: relative; - padding-left: 15px; - user-select: none; - outline: none; -} - -.ContextMenuSubTrigger[data-state='open'] { - background-color: gray; - color: var(--violet-11); -} - -.ContextMenuItem[data-disabled], -.ContextMenuCheckboxItem[data-disabled], -.ContextMenuRadioItem[data-disabled], -.ContextMenuSubTrigger[data-disabled] { - color: var(--mauve-8); - pointer-events: 'none'; -} - -.ContextMenuItem[data-highlighted], -.ContextMenuCheckboxItem[data-highlighted], -.ContextMenuRadioItem[data-highlighted], -.ContextMenuSubTrigger[data-highlighted] { - background-color: #dad9db; - color: var(--violet-11); -} - -.ContextMenuLabel { - padding-left: 25px; - font-size: 12px; - line-height: 25px; - color: var(--mauve-11); -} - - -.ContextMenuItemIndicator { - position: absolute; - left: 0; - width: 25px; - display: inline-flex; - align-items: center; - justify-content: center; -} - -.RightSlot { - margin-left: auto; - padding-left: 20px; - color: var(--mauve-11); -} - -[data-highlighted]>.RightSlot { - color: white; -} - -[data-disabled] .RightSlot { - color: var(--mauve-8); -} - -.dropdown-menu { - min-width: 10rem; -} - -.dropdown-item { - display: block; - width: 100%; - padding: 0.3rem 1.2rem; - clear: both; - font-weight: 400; - color: #393a39; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; - cursor: pointer; -} - -.dropdown-item:hover { - background-color: #dad9db; - color: var(--violet-11); -} - -.itemColor { - font-size: 13px !important; -} - -.folderComponent { - margin: 30px; - height: 100%; -} -.inputStyle{ - border: 1.6px solid #ccc !important; -} -.folderComponent::-webkit-scrollbar { - display: none; - /* for Chrome, Safari, and Opera */ -} - -.modal { - margin-top: 50px; -} - -.folderBox { - /* box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px; - margin: 10px ; - padding: 5px 0px 5px 40px; */ - /* overflow: scroll; - display: flex; - justify-content: space-between; - width: 200px; */ - margin: 10px; - /* box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px; */ - - - -} - -.folderContainer { - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center -} - -/* .folderBox:hover{ - box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px; - font-weight: bold; - } */ -.pdfName { - font-size: 10px; - font-weight: 600; -} - -.viewbotton { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 8px 20px; - color: white; - font-weight: 600; - font-size: 14px; - border: none; - border-radius: 2px; - margin-left: 10px; -} - -.viewbotton:focus { - border: none; - outline: none; -} - -.folderRender { - display: flex; - flex-direction: column; - - justify-content: center; - align-items: center; - cursor: pointer; - position: relative; - width: 100px; - height: 100px; - margin: 20px; - display: inline-block; - -} - -.pdfContainer { - display: flex; - flex-direction: row; - flex-wrap: wrap; - margin-top: 20px; - align-items: center; - - justify-content: space-around -} - -.pdfContainer .box:last-child { - margin-left: 0; - /* Override the margin on the last box */ - margin-right: auto; - /* Align it to the start */ -} - -.icon-container { - position: relative; - width: 100px; - height: 100px; - margin: 10px; - display: inline-block; - - cursor: pointer -} - -.hrStyle { - margin-top: 0rem !important; - margin-bottom: 0rem !important; - border: 0; - border-top: 1px solid rgba(0, 0, 0, .1); -} - -.pdf-icon { - width: 100%; - height: 100%; -} - -.status-badge { - position: absolute; - top: 0; - right: 0; - background-color: #fff; - - width: 24px; - height: 24px; - display: flex; - justify-content: center; - align-items: center; - border-radius: 50%; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - -} - -.status-badge i { - font-size: 12px; -} - -/* Status-specific colors */ -.completed { - background-color: #4CAF50; - color: #fff; -} - -.in-progress { - background-color: #FFC107; - color: #fff; -} - -.declined { - background-color: #F44336; - color: #fff; -} - -.expired { - background-color: #9E9E9E; - color: #fff; -} - -.draft { - background-color: #079cdc; - color: #fff; -} - -.add { - background-color: #05bbdb; - color: #fff; - padding: 8px 15px; - text-align: center; - display: flex; - margin: 5px; -} - -.sort { - padding: 8px 15px; - margin: 5px; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - -} - -.sort:hover { - box-shadow: 0 2px 4px rgba(168, 204, 206, 0.1); - background-color: var(--mauve-3); - border-radius: 2px; -} - -/* Hover effect */ -.info-box { - position: absolute; - - bottom: 100%; - left: 0; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 4px; - padding: 5px; - width: 180px; - display: none; - z-index: 10; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - text-align: center; - -} - -.icon-container:hover .info-box { - display: block; - -} - -.folderRender:hover .info-box { - display: block; -} - -.info-box:hover { - z-index: 999; -} - - - -.addFolderInput { - padding: 10px; - - border-radius: 4px; - /* width: 440px; */ - font-size: 15px; - - border: 0.5px solid rgb(198, 195, 195); -} - -.tooltip-inner { - background-color: #fff; - border: 1px solid black; - font-weight: 600; - opacity: 1 !important; - color: rgb(0, 0, 0); - border-radius: 3px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - font-size: 12px; -} - -.fileName { - display: inline-block; - width: 100px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; - font-size: 11px; - text-align: center; - font-weight: 480; -} - -.foldName { - display: inline-block; - width: 100px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; - font-size: 11px; - text-align: center; - font-weight: 480; -} - -.statusSpan { - - font-size: 12px; - font-weight: 500; -} - - -a { - all: unset; -} - -.HoverCardContent { - border-radius: 6px; - padding: 5px 10px; - width: 170px; - background-color: white; - box-shadow: hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px; - animation-duration: 400ms; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); - will-change: transform, opacity; - text-align: center; - align-items: center; - -} - -.HoverCardContent[data-side='top'] { - animation-name: slideDownAndFade; -} - -.HoverCardContent[data-side='right'] { - animation-name: slideLeftAndFade; -} - -.HoverCardContent[data-side='bottom'] { - animation-name: slideUpAndFade; -} - -.HoverCardContent[data-side='left'] { - animation-name: slideRightAndFade; -} - -.HoverCardArrow { - fill: white; -} - - - -@keyframes slideUpAndFade { - 0% { - opacity: 0; - transform: translateY(2px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideRightAndFade { - 0% { - opacity: 0; - transform: translateX(-2px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes slideDownAndFade { - 0% { - opacity: 0; - transform: translateY(-2px); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideLeftAndFade { - 0% { - opacity: 0; - transform: translateX(2px); - } - - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.dropMenuBD { - display: flex; - flex-direction: row; - align-items: center; - - -} - -.dropMenuSS { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - display: none; -} - -.folderPath { - overflow-x: auto; - white-space: nowrap; - - cursor: pointer; - user-select: none; -} - -.folderPath::-webkit-scrollbar { - display: none; - /* for Chrome, Safari, and Opera */ -} - -.docDeleteBtn { - /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); */ - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - padding: 7px 17px; - color: white; - font-weight: 600 !important; - font-size: 12px !important; - border: none; - border-radius: 2px; -} - -.docDeleteBtn:focus { - border: none; - outline: none; -} - -.docDeleteBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - color: white; -} - -@media screen and (max-width:766px) { - .itemColor { - font-size: 10px !important; - } - -} - -@media (min-width: 310px) and (max-width:550px) { - - .pdfContainer { - justify-content: space-around; - } - - .sort { - padding: 2px; - } - - .folderComponent { - margin: 10px; - } - -} - -@media screen and (max-width:309px) { - - .pdfContainer { - justify-content: center; - } - - .sort { - padding: 2px; - } - - .folderComponent { - margin: 10px; - } -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.js b/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.js deleted file mode 100644 index 6d4b1775b..000000000 --- a/microfrontends/SignDocuments/src/Component/LegaDrive/LegaDrive.js +++ /dev/null @@ -1,763 +0,0 @@ -import React, { useEffect, useState, useRef } from "react"; -import "./LegaDrive.css"; -import loader from "../../assests/loader2.gif"; -import PdfFileComponent from "./FolderDrive/legaDriveComponent"; -import { themeColor, iconColor } from "../../utils/ThemeColor/backColor"; -import { getDrive } from "../../utils/Utils"; -import { useNavigate } from "react-router-dom"; -import Title from "../component/Title"; -import Parse from "parse"; -import ModalUi from "../../premitives/ModalUi"; - -function PdfFile() { - const navigate = useNavigate(); - const scrollRef = useRef(null); - const [isList, setIsList] = useState(false); - const [selectedSort, setSelectedSort] = useState("Date"); - const [sortingOrder, setSortingOrder] = useState("Decending"); - const [pdfData, setPdfData] = useState([]); - const [isFolder, setIsFolder] = useState(false); - const [newFolderName, setNewFolderName] = useState(); - const [error, setError] = useState(); - const [folderLoader, setIsFolderLoader] = useState(false); - const [isShowSort, setIsShowSort] = useState(false); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [docId, setDocId] = useState(); - const [handleError, setHandleError] = useState(""); - const [folderName, setFolderName] = useState([]); - const [isAlert, setIsAlert] = useState({ isShow: false, alertMessage: "" }); - const [isNewFol, setIsNewFol] = useState(false); - const currentUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonCurrentUser = JSON.parse(currentUser); - - useEffect(() => { - // localStorage.setItem('accesstoken', 'r:6d093ee320d70354f4e92cccc537180b'); - // localStorage.setItem('baseUrl', 'https://staging-app.opensignlabs.com/api/app/'); - // localStorage.setItem('parseAppId', 'opensignstgn'); - // localStorage.setItem('Parse/opensignstgn/currentUser', '{"name":"Raktima chaurasiya","email":"raktimachaurasiya@gmail.com","phone":"5645676534","username":"raktimachaurasiya@gmail.com","emailVerified":false,"createdAt":"2024-01-10T14:40:59.326Z","updatedAt":"2024-01-15T13:31:19.044Z","ProfilePic":"","ACL":{"9MUdPyX2ae":{"read":true,"write":true}},"sessionToken":"r:6d093ee320d70354f4e92cccc537180b","objectId":"9MUdPyX2ae","className":"_User"}'); - // localStorage.setItem('_appName', 'contracts'); - if (docId) { - getPdfFolderDocumentList(); - } else { - getPdfDocumentList(); - } - }, [docId]); - - //function for get all pdf document list - const getPdfDocumentList = async () => { - const load = { - isLoad: true, - message: "This might take some time" - }; - let driveDetails; - setIsLoading(load); - try { - driveDetails = await getDrive(); - if (driveDetails) { - if (driveDetails.length > 0) { - setPdfData(driveDetails); - sortApps(null, null, driveDetails); - } - const data = [ - { - name: "OpenSign™ Drive", - objectId: "" - } - ]; - setFolderName(data); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if (driveDetails === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } - } catch (e) { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - }; - //function for get parent folder document list - const getPdfFolderDocumentList = async () => { - const load = { - isLoad: true, - message: "This might take some time" - }; - setIsLoading(load); - let driveDetails; - try { - driveDetails = await getDrive(docId); - - if (driveDetails) { - if (driveDetails.length > 0) { - setPdfData(driveDetails); - sortApps(null, null, driveDetails); - } else { - setPdfData([]); - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if (driveDetails === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } - } catch (e) { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong!" - }); - } - }; - - //function for get all pdf document list - const getParentFolder = async () => { - setIsFolder(true); - }; - //function for handle folder name path - const handleRoute = (index) => { - const updateFolderName = folderName.filter((x, i) => { - if (i <= index) { - return x; - } - }); - - setFolderName(updateFolderName); - const getLastId = updateFolderName[updateFolderName.length - 1]; - setDocId(getLastId.objectId); - }; - - //function for add new folder name - const handleFolderName = (e) => { - setError(); - const value = e.target.value; - setNewFolderName(value); - }; - //function for create folder - const handleAddFolder = async () => { - if (newFolderName) { - setIsFolderLoader(true); - const getParentObjId = folderName[folderName.length - 1]; - const parentId = getParentObjId && getParentObjId.objectId; - const foldercls = `${localStorage.getItem("_appName")}_Document`; - const folderPtr = { - __type: "Pointer", - className: foldercls, - objectId: parentId - }; - const CreatedBy = { - __type: "Pointer", - className: "_User", - objectId: jsonCurrentUser.objectId - }; - - try { - const exsitQuery = new Parse.Query(foldercls); - exsitQuery.equalTo("Name", newFolderName); - exsitQuery.equalTo("Type", "Folder"); - if (parentId) { - exsitQuery.equalTo("Folder", folderPtr); - } - const templExist = await exsitQuery.first(); - if (templExist) { - setError("Folder already exist!"); - setIsFolderLoader(false); - } else { - const template = new Parse.Object(foldercls); - template.set("Name", newFolderName); - template.set("Type", "Folder"); - - if (parentId) { - template.set("Folder", folderPtr); - } - template.set("CreatedBy", CreatedBy); - const res = await template.save(); - if (res) { - const result = JSON.parse(JSON.stringify(res)); - - setPdfData((prev) => [...prev, result]); - setNewFolderName(); - setIsFolderLoader(false); - setIsFolder(false); - } - } - } catch (e) { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong!" - }); - } - } else { - setError("Please fill out this field"); - } - }; - - const sortingApp = (appInfo, type, order) => { - if (type === "Name") { - if (order === "Accending") { - return appInfo.sort((a, b) => (a.Name > b.Name ? 1 : -1)); - } else if (order === "Decending") { - return appInfo.sort((a, b) => (a.Name > b.Name ? -1 : 1)); - } - } else if (type === "Date") { - if (order === "Accending") { - return appInfo.sort((a, b) => (a.createdAt > b.createdAt ? 1 : -1)); - } else if (order === "Decending") { - return appInfo.sort((a, b) => (a.createdAt > b.createdAt ? -1 : 1)); - } - } - }; - - const sortApps = (type, order, driveDetails) => { - const selectedSortType = type ? type : selectedSort ? selectedSort : "Date"; - const sortOrder = order ? order : sortingOrder ? sortingOrder : "Decending"; - - let sortingData = driveDetails; - if (selectedSortType === "Name") { - sortingApp(sortingData, "Name", sortOrder); - } else if (selectedSortType === "Date") { - sortingApp(sortingData, "Date", sortOrder); - } - - setPdfData(sortingData); - }; - - //function for handle auto scroll on folder path - const handleMouseEnter = (e) => { - let side = ""; - const container = scrollRef.current; - const containerRect = container.getBoundingClientRect(); - const cursorX = e.clientX; - const containerX = containerRect.left; - const containerWidth = containerRect.width; - - // Define a threshold (e.g., 10 pixels) for the start and end points - const threshold = 10; - - if (cursorX - containerX <= threshold) { - side = "start"; - } else if (containerX + containerWidth - cursorX <= threshold) { - side = "end"; - } else { - side = ""; - } - - const scrollSpeed = 10; - let scrollAmount = 0; - - const scroll = () => { - if (side === "start" && container.scrollLeft > 0) { - container.scrollLeft -= scrollAmount; - requestAnimationFrame(scroll); - } else if ( - side === "end" && - container.scrollLeft < container.scrollWidth - container.clientWidth - ) { - container.scrollLeft += scrollAmount; - requestAnimationFrame(scroll); - } - }; - - container.addEventListener("mousemove", (e) => { - const rect = container.getBoundingClientRect(); - const x = e.clientX - rect.left; - const containerWidth = rect.width; - - // Calculate the scroll amount based on the cursor's position - scrollAmount = (x / containerWidth) * scrollSpeed; - }); - - scroll(); - }; - - //handle to close drop down menu onclick screen - useEffect(() => { - const closeMenuOnOutsideClick = (e) => { - if (isShowSort && !e.target.closest("#menu-container")) { - setIsShowSort(!isShowSort); - } else if (isNewFol && !e.target.closest("#folder-menu")) { - setIsNewFol(!isNewFol); - } - }; - - document.addEventListener("click", closeMenuOnOutsideClick); - - return () => { - // Cleanup the event listener when the component unmounts - document.removeEventListener("click", closeMenuOnOutsideClick); - }; - }, [isShowSort || isNewFol]); - - const handleFolderTab = (folderData, isMove) => { - return folderData.map((data, id) => { - return ( - <React.Fragment key={id}> - <span - onClick={() => handleRoute(id)} - style={{ - color: "#a64b4e", - fontWeight: "400", - cursor: "pointer" - }} - > - {data.name} - <span - style={{ - color: "#a64b4e", - fontWeight: "200", - cursor: "pointer", - margin: "0 4px" - }} - > - > - </span> - </span> - </React.Fragment> - ); - }); - }; - const oncloseFolder = () => { - setIsFolder(false); - setNewFolderName(""); - setError(""); - }; - return ( - <div className="folderComponent "> - <Title title={"OpenSign™ Drive"} drive={true} /> - <div> - <ModalUi - headerColor={"#dc3545"} - isOpen={isAlert.isShow} - title={"Alert"} - handleClose={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{isAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => - setIsAlert({ - isShow: false, - alertMessage: "" - }) - } - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </div> - </ModalUi> - <ModalUi - isOpen={isFolder} - title={"Add New Folder"} - handleClose={oncloseFolder} - > - <div style={{ height: "100%", padding: 20 }}> - {folderLoader ? ( - <div - style={{ - height: "200px", - display: "flex", - flexDirection: "column", - justifyContent: "center", - alignItems: "center" - }} - > - <img - alt="loader img" - src={loader} - style={{ width: "50px", height: "50px" }} - /> - <span style={{ fontSize: "13px", color: "gray" }}> - Loading... - </span> - </div> - ) : ( - <form - onSubmit={(e) => { - e.preventDefault(); - handleAddFolder(); - }} - style={{ display: "flex", flexDirection: "column" }} - > - <label - style={{ - margin: "10px 0px 10px 0px", - fontSize: "15px", - fontWeight: "400" - }} - > - Name - <span style={{ color: "red" }}>*</span> - </label> - - <input - required - className="form-control inputStyle" - type="text" - value={newFolderName} - onChange={(e) => handleFolderName(e)} - // className="addFolderInput" - /> - <span - style={{ color: "red", fontSize: "12px", marginTop: "6px" }} - > - {error} - </span> - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <div style={{ display: "flex", flexDirection: "row" }}> - <button - style={{ - background: themeColor() - }} - type="submit" - className="finishBtn" - > - Add - </button> - <button - type="button" - className="finishBtn cancelBtn" - onClick={oncloseFolder} - > - Close - </button> - </div> - </form> - )} - </div> - </ModalUi> - - {isLoading.isLoad ? ( - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - height: "100vh", - width: "100%", - flexDirection: "column" - }} - > - <img - alt="loader img" - src={loader} - style={{ width: "80px", height: "80px" }} - /> - <span style={{ fontSize: "13px", color: "gray" }}> - {isLoading.message} - </span> - </div> - ) : handleError ? ( - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - height: "100vh", - width: "100%" - }} - > - <span style={{ fontSize: "20px", color: "gray" }}> - {handleError} - </span> - </div> - ) : ( - <> - <div className="folderContainer"> - <div - onMouseEnter={(e) => handleMouseEnter(e)} - ref={scrollRef} - style={{ - width: "100%" - }} - className="folderPath" - > - {handleFolderTab(folderName)} - </div> - <div className="dropMenuBD"> - <div - id="folder-menu" - className={ - isNewFol ? "dropdown show dropDownStyle" : "dropdown" - } - onClick={() => setIsNewFol(!isNewFol)} - > - <div className="sort"> - <i - className="fa fa-plus-square" - aria-hidden="true" - style={{ fontSize: "25px", color: `${iconColor()}` }} - ></i> - </div> - <div - className={ - isNewFol ? "dropdown-menu show" : "dropdown-menu" - } - aria-labelledby="dropdownMenuButton" - aria-expanded={isNewFol ? "true" : "false"} - > - {" "} - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - <span - className="dropdown-item itemColor" - onClick={() => getParentFolder()} - > - <i - style={{ marginRight: "5px" }} - className="fa fa-plus" - aria-hidden="true" - ></i> - Create folder - </span> - <span - className="dropdown-item itemColor" - onClick={() => navigate("/form/sHAnZphf69")} - > - <i - style={{ marginRight: "5px" }} - className="fas fa-pen-nib" - ></i> - Sign Yourself - </span> - <span - className="dropdown-item itemColor" - onClick={() => navigate("/form/8mZzFxbG1z")} - > - {" "} - <i - style={{ marginRight: "5px" }} - className="fa fa-file-signature" - ></i> - Request Signatures{" "} - </span> - </div> - </div> - </div> - <div - id="menu-container" - className={isShowSort ? "dropdown show" : "dropdown"} - onClick={() => setIsShowSort(!isShowSort)} - > - <div className=" sort " data-toggle="dropdown"> - <i - className="fa fa-sort-amount-asc" - aria-hidden="true" - style={{ - marginRight: "5px", - fontSize: "14px", - color: `${iconColor()}` - }} - ></i> - <span - style={{ - fontSize: "15px", - color: `${iconColor()}` - }} - > - {selectedSort} - </span> - </div> - <div - className={ - isShowSort ? "dropdown-menu show" : "dropdown-menu" - } - aria-labelledby="dropdownMenuButton" - aria-expanded={isShowSort ? "true" : "false"} - > - <span - onClick={() => { - setSelectedSort("Name"); - sortApps("Name", null, pdfData); - }} - className="dropdown-item itemColor" - > - {selectedSort !== "Name" ? ( - <i - className="fa fa-arrow-up" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - ) : ( - <i - className="fa fa-check" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - )} - Name - </span> - <span - onClick={() => { - setSelectedSort("Date"); - sortApps("Date", null, pdfData); - }} - className="dropdown-item itemColor" - > - {selectedSort !== "Date" ? ( - <i - className="fa fa-arrow-up" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - ) : ( - <i - className="fa fa-check" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - )} - Date - </span> - <hr className="hrStyle" /> - <span - onClick={() => { - setSortingOrder("Accending"); - sortApps(null, "Accending", pdfData); - }} - className="dropdown-item itemColor" - > - {sortingOrder !== "Accending" ? ( - <i - className="fa fa-arrow-up" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - ) : ( - <i - className="fa fa-check" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - )} - Accending - </span> - <span - onClick={() => { - setSortingOrder("Decending"); - sortApps(null, "Decending", pdfData); - }} - className="dropdown-item itemColor" - > - {sortingOrder !== "Decending" ? ( - <i - className="fa fa-arrow-up" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - ) : ( - <i - className="fa fa-check" - aria-hidden="true" - style={{ marginRight: "5px" }} - ></i> - )} - Decending - </span> - </div> - </div> - - <div> - {isList ? ( - <div className="sort" onClick={() => setIsList(!isList)}> - <i - onClick={() => setIsList(!isList)} - className="fa fa-th-large" - style={{ fontSize: "24px", color: `${iconColor()}` }} - aria-hidden="true" - ></i> - </div> - ) : ( - <div className="sort" onClick={() => setIsList(!isList)}> - <i - className="fa fa-list" - aria-hidden="true" - style={{ fontSize: "23px", color: `${iconColor()}` }} - ></i> - </div> - )} - </div> - </div> - </div> - - {pdfData && pdfData.length === 0 ? ( - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - height: "50vh", - width: "100%" - }} - > - <span style={{ fontWeight: "bold" }}>No Data Found!</span> - </div> - ) : ( - <PdfFileComponent - pdfData={pdfData} - setFolderName={setFolderName} - setIsLoading={setIsLoading} - setDocId={setDocId} - getPdfFolderDocumentList={getPdfFolderDocumentList} - getPdfDocumentList={getPdfDocumentList} - isDocId={docId} - setPdfData={setPdfData} - isList={isList} - setIsAlert={setIsAlert} - /> - )} - </> - )} - </div> - </div> - ); -} - -export default PdfFile; diff --git a/microfrontends/SignDocuments/src/Component/ManageSign.js b/microfrontends/SignDocuments/src/Component/ManageSign.js deleted file mode 100644 index fdb8d2d25..000000000 --- a/microfrontends/SignDocuments/src/Component/ManageSign.js +++ /dev/null @@ -1,695 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import SignatureCanvas from "react-signature-canvas"; -import redPen from "../assests/redPen.png"; -import bluePen from "../assests/bluePen.png"; -import blackPen from "../assests/blackPen.png"; -import "../css/custom.css"; -import "../css/signature.css"; -import axios from "axios"; -import { toDataUrl } from "../utils/toDataUrl"; - -const ManageSign = () => { - let appName; - const [penColor, setPenColor] = useState("blue"); - const [initialPen, setInitialPen] = useState("blue"); - const [image, setImage] = useState(); - const [signName, setSignName] = useState(""); - const [signature, setSignature] = useState(""); - const [warning, setWarning] = useState(false); - const [nameWarning, setNameWarning] = useState(false); - const [isvalue, setIsValue] = useState(false); - const allColor = [bluePen, redPen, blackPen]; - const [isLoader, setIsLoader] = useState(true); - const [isSuccess, setIsSuccess] = useState(false); - const [Initials, setInitials] = useState(""); - const [isInitials, setIsInitials] = useState(false); - const [id, setId] = useState(""); - const canvasRef = useRef(null); - const imageRef = useRef(null); - const initailsRef = useRef(null); - useEffect(() => { - getLocalStorageValue(); - }, []); - - //function for get localstorage value first and than call another function. - const getLocalStorageValue = () => { - let User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - appName = - localStorage.getItem("_appName") && localStorage.getItem("_appName"); - if (User) { - fetchUserSign(User); - } - }; - - const fetchUserSign = async (User) => { - const userId = { - __type: "Pointer", - className: "_User", - objectId: User.objectId - }; - const strObj = JSON.stringify(userId); - const url = - localStorage.getItem("baseUrl") + - `classes/${appName}_Signature?where={"UserId":${strObj}}&limit=1`; - - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .get(url, { headers: headers }) - .then((res) => { - if (res.data.results.length > 0) { - setId(res.data.results[0].objectId); - setSignName(res.data.results[0].SignatureName); - setImage(res.data.results[0].ImageURL); - if (res.data.results[0] && res.data.results[0].Initials) { - setInitials(res.data.results[0].Initials); - setIsInitials(true); - } - } - setIsLoader(false); - return res; - }) - .catch((error) => { - console.log(error); - alert(`${error.message}`); - }); - return res; - }; - const handleSignatureChange = () => { - if (imageRef.current) { - imageRef.current.value = ""; - } - setImage(""); - setSignature(canvasRef.current.toDataURL()); - setIsValue(true); - }; - const handleClear = () => { - if (canvasRef.current) { - canvasRef.current.clear(); - } - if (imageRef.current) { - imageRef.current.value = ""; - } - setImage(""); - setSignature(""); - setIsValue(false); - }; - - const handleClearInitials = () => { - if (initailsRef.current) { - initailsRef.current.clear(); - } - setInitials(""); - setIsValue(true); - setIsInitials(false); - }; - - // const handleReset = () => { - // if (canvasRef.current) { - // canvasRef.current.clear(); - // } - // if (imageRef.current) { - // imageRef.current.value = ""; - // } - // setImage(""); - // setSignature(""); - // setIsValue(false); - // setSignName(""); - // }; - const onImageChange = async (event) => { - if (canvasRef.current) { - canvasRef.current.clear(); - } - setSignature(""); - if (event.target.files && event.target.files[0]) { - const file = event.target.files[0]; - const base64Img = await toDataUrl(file); - setImage(base64Img); - setIsValue(true); - } - }; - const handleSubmit = async (e) => { - e.preventDefault(); - const isUrl = image.includes("https"); - - if (!signName) { - setNameWarning(true); - } else if (!isvalue) { - setWarning(true); - setTimeout(() => setWarning(false), 1000); - } else { - setIsLoader(true); - const replaceSpace = signName.replace(/ /g, "_"); - let file; - if (signature) { - file = base64StringtoFile(signature, `${replaceSpace}.png`); - } else { - if (!isUrl) { - file = base64StringtoFile(image, `${replaceSpace}.png`); - } - } - // console.log("isUrl ", isUrl); - let imgUrl; - if (!isUrl) { - imgUrl = await uploadFile(file); - } else { - imgUrl = { data: { imageUrl: image } }; - } - let initialsUrl = ""; - if (Initials) { - const initialsImg = base64StringtoFile(Initials, `${replaceSpace}.png`); - initialsUrl = await uploadFile(initialsImg); - } - if (imgUrl.data && imgUrl.data.imageUrl) { - await saveEntry({ - name: signName, - url: imgUrl.data.imageUrl, - initialsUrl: initialsUrl - }); - } - } - }; - function base64StringtoFile(base64String, filename) { - var arr = base64String.split(","), - mime = arr[0].match(/:(.*?);/)[1], - bstr = atob(arr[1]), - n = bstr.length, - u8arr = new Uint8Array(n); - while (n--) { - u8arr[n] = bstr.charCodeAt(n); - } - return new File([u8arr], filename, { type: mime }); - } - - const uploadFile = async (file) => { - let parseBaseUrl = localStorage.getItem("baseUrl"); - parseBaseUrl = parseBaseUrl.slice(0, -4); - const url = parseBaseUrl + `file_upload`; - const formData = new FormData(); - formData.append("file", file); - const config = { - headers: { - "content-type": "multipart/form-data", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - }, - onUploadProgress: function (progressEvent) { - let percentCompleted = Math.round( - (progressEvent.loaded * 100) / progressEvent.total - ); - // setpercentage(percentCompleted); - } - }; - const response = await axios - .post(url, formData, config) - .then((res) => { - if (res.data.status === "Error") { - alert(res.data.message); - } - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return response; - }; - - const saveEntry = async (obj) => { - if (id) { - const User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - const url = - localStorage.getItem("baseUrl") + - `classes/${localStorage.getItem("_appName")}_Signature/${id}`; - const body = { - Initials: obj.initialsUrl ? obj.initialsUrl.data.imageUrl : "", - ImageURL: obj.url, - SignatureName: obj.name, - UserId: { - __type: "Pointer", - className: "_User", - objectId: User.objectId - } - }; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .put(url, body, { headers: headers }) - .then((res) => { - // handleReset(); - setIsLoader(false); - setIsSuccess(true); - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return res; - } else { - const User = JSON.parse( - localStorage.getItem( - "Parse/" + localStorage.getItem("parseAppId") + "/currentUser" - ) - ); - const url = - localStorage.getItem("baseUrl") + - `classes/${localStorage.getItem("_appName")}_Signature`; - const body = { - Initials: obj.initialsUrl ? obj.initialsUrl.data.imageUrl : "", - ImageURL: obj.url, - SignatureName: obj.name, - UserId: { - __type: "Pointer", - className: "_User", - objectId: User.objectId - } - }; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId") - // "X-Parse-Session-Token": localStorage.getItem("accesstoken"), - }; - const res = await axios - .post(url, body, { headers: headers }) - .then((res) => { - // handleReset(); - setIsLoader(false); - setIsSuccess(true); - return res; - }) - .catch((error) => { - console.log(error); - setIsLoader(false); - alert(`${error.message}`); - }); - return res; - } - }; - const handleSignatureBtn = () => { - if (imageRef.current) { - imageRef.current.value = ""; - } - setImage(""); - }; - const handleUploadBtn = () => { - imageRef.current.click(); - }; - const handleInitialsChange = () => { - setInitials(initailsRef.current.toDataURL()); - setIsValue(true); - }; - return ( - <div - style={{ - maxHeight: "500px", - overflow: "auto" - }} - > - {isSuccess && ( - <div - className="alert alert-success successBox" - role="alert" - onAnimationEnd={() => setIsSuccess(false)} - > - Signature saved successfully! - </div> - )} - - <div - className="mainDiv" - style={{ - width: "100%", - paddingRight: "10px" - }} - > - <div style={{ margin: 20 }}> - <div - style={{ - fontWeight: "700", - fontSize: 15, - color: "#000", - paddingBottom: 8 - }} - > - Manage Signature - </div> - <div style={{ display: "flex", flexDirection: "column" }}> - <label - htmlFor="signName" - style={{ - fontSize: 12, - position: "relative", - paddingBottom: 5 - }} - > - Signer's Name - {nameWarning && ( - <div - className="warning nameWarning" - style={{ fontSize: 12 }} - onAnimationEnd={() => setNameWarning(false)} - > - <i - className="fas fa-exclamation-circle" - style={{ color: "#fab005", fontSize: 15 }} - ></i>{" "} - Please fill input field - </div> - )} - </label> - <input - id="signName" - className="signInputManage" - value={signName} - style={{ - border: "1px solid #ccc", - borderRadius: 4, - - height: 35, - padding: "6px 12px", - marginBottom: 10, - fontSize: 12 - }} - required - onFocus={() => setNameWarning(false)} - onChange={(e) => setSignName(e.target.value)} - /> - - <label - htmlFor="imgoverview" - style={{ - fontSize: 12, - paddingBottom: 5 - }} - > - Signature/Image - </label> - </div> - <div className="signBlock"> - <div> - <div style={{ position: "relative" }}> - <div - style={{ - display: "flex", - flexDirection: "row", - justifyContent: "space-between", - width: "50%", - paddingLeft: 10 - }} - > - <div - style={{ - display: "flex", - flexDirection: "row", - justifyContent: "space-around", - alignItems: "center", - gap: 10, - marginBottom: 10 - }} - > - <> - <span - onClick={() => handleSignatureBtn()} - className="signature" - > - Signature - </span> - </> - - <span - onClick={() => handleUploadBtn()} - className="imgupload" - > - Upload Image - </span> - <input - type="file" - onChange={onImageChange} - className="filetype" - accept="image/*" - ref={imageRef} - hidden - /> - </div> - </div> - <div style={{ position: "relative" }}> - <div> - {image ? ( - <div - style={{ - position: "relative", - - border: "2px solid #888", - marginBottom: 6 - }} - className="signatureCanvas" - > - <img - alt="preview image" - src={image} - style={{ - width: "100%", - height: "100%", - objectFit: "contain" - }} - /> - </div> - ) : ( - <SignatureCanvas - ref={canvasRef} - penColor={penColor} - canvasProps={{ - width: "456px", - height: "180px", - className: "signatureCanvas" - }} - backgroundColor="rgb(255, 255, 255)" - onEnd={() => - handleSignatureChange(canvasRef.current.toDataURL()) - } - dotSize={1} - /> - )} - <div - style={{ - display: "flex", - flexDirection: "row", - justifyContent: "space-between" - // width: 460, - }} - className="penContainerDefault" - > - <div> - {!image && ( - <div - style={{ display: "flex", flexDirection: "row" }} - > - {allColor.map((data, key) => { - return ( - <img - alt="black img" - style={{ - border: "none", - margin: "5px", - borderBottom: - key === 0 && penColor === "blue" - ? "2px solid blue" - : key === 1 && penColor === "red" - ? "2px solid red" - : key === 2 && penColor === "black" - ? "2px solid black" - : "2px solid white" - }} - onClick={() => { - if (key === 0) { - setPenColor("blue"); - } else if (key === 1) { - setPenColor("red"); - } else if (key === 2) { - setPenColor("black"); - } - }} - key={key} - src={data} - width={20} - height={20} - /> - ); - })} - </div> - )} - </div> - <div> - <div - type="button" - className="clearbtn" - onClick={() => handleClear()} - > - Clear - </div> - </div> - </div> - </div> - {warning && ( - <div - className="warning signWarning" - style={{ fontSize: 12 }} - > - <i - className="fas fa-exclamation-circle" - style={{ color: "#fab005", fontSize: 15 }} - ></i>{" "} - Please upload signature/Image - </div> - )} - </div> - </div> - </div> - <div style={{ position: "relative" }}> - <div style={{ margin: "6px 5px 18px" }}> - <span - // onClick={() => handleSignatureBtn()} - className="signature" - > - Initials - </span> - </div> - <div> - {isInitials ? ( - <div - style={{ - position: "relative", - - border: "2px solid #888", - marginBottom: 6 - }} - className="intialSignature" - > - <img - alt="preview image" - src={Initials} - style={{ - width: "100%", - height: "100%", - objectFit: "contain" - }} - /> - </div> - ) : ( - <SignatureCanvas - ref={initailsRef} - penColor={initialPen} - canvasProps={{ - className: "intialSignature" - }} - backgroundColor="rgb(255, 255, 255)" - onEnd={() => - handleInitialsChange(initailsRef.current.toDataURL()) - } - dotSize={1} - /> - )} - <div - style={{ - display: "flex", - flexDirection: "row", - justifyContent: "space-between" - }} - className="penContainerInitial" - > - <div> - {!isInitials && ( - <div style={{ display: "flex", flexDirection: "row" }}> - {allColor.map((data, key) => { - return ( - <img - alt="pen" - style={{ - border: "none", - margin: "5px", - borderBottom: - key === 0 && initialPen === "blue" - ? "2px solid blue" - : key === 1 && initialPen === "red" - ? "2px solid red" - : key === 2 && initialPen === "black" - ? "2px solid black" - : "2px solid white" - }} - onClick={() => { - if (key === 0) { - setInitialPen("blue"); - } else if (key === 1) { - setInitialPen("red"); - } else if (key === 2) { - setInitialPen("black"); - } - }} - key={key} - src={data} - width={20} - height={20} - /> - ); - })} - </div> - )} - </div> - <div> - <div - type="button" - className="clearbtn" - onClick={() => handleClearInitials()} - > - Clear - </div> - </div> - </div> - </div> - {/* {!warning && ( - <div className="warning signWarning" style={{ fontSize: 12 }}> - <i - className="fas fa-exclamation-circle" - style={{ color: "#fab005", fontSize: 15 }} - ></i>{" "} - Please upload signature/Image - </div> - )} */} - </div> - </div> - <div style={{ paddingTop: 10 }}> - <button - className="customBtn successBtn" - onClick={(e) => handleSubmit(e)} - > - save - </button> - </div> - </div> - {isLoader && ( - <div className="loaderContainer"> - <div className="loader"></div> - </div> - )} - </div> - </div> - ); -}; - -export default ManageSign; diff --git a/microfrontends/SignDocuments/src/Component/PageNotFound.js b/microfrontends/SignDocuments/src/Component/PageNotFound.js deleted file mode 100644 index b9e912e32..000000000 --- a/microfrontends/SignDocuments/src/Component/PageNotFound.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; - -const PageNotFound = () => { - return ( - <div className="flex items-center justify-center h-screen w-full bg-white rounded"> - <div className="text-center"> - <h1 className="text-[60px] lg:text-[120px] font-semibold text-black"> - 404 - </h1> - <p className="text-[30px] lg:text-[50px] text-black">Page Not Found</p> - </div> - </div> - ); -}; - -export default PageNotFound; diff --git a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js deleted file mode 100644 index 5b0dbf2a9..000000000 --- a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js +++ /dev/null @@ -1,1472 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import { PDFDocument } from "pdf-lib"; -import "../css/signature.css"; -import axios from "axios"; -import loader from "../assests/loader2.gif"; -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { useParams } from "react-router-dom"; -import SignPad from "./component/signPad"; -import RenderAllPdfPage from "./component/renderAllPdfPage"; -import { useNavigate } from "react-router-dom"; -import Tour from "reactour"; -import { - contractDocument, - multiSignEmbed, - embedDocId, - pdfNewWidthFun, - signPdfFun, - onImageSelect, - onSaveSign, - onSaveImage, - addDefaultSignatureImg, - getHostUrl -} from "../utils/Utils"; -import Loader from "./component/loader"; -import HandleError from "./component/HandleError"; -import Nodata from "./component/Nodata"; -import Header from "./component/header"; -import RenderPdf from "./component/renderPdf"; -import CustomModal from "./component/CustomModal"; -import Title from "./component/Title"; -import DefaultSignature from "./component/defaultSignature"; -import ModalUi from "../premitives/ModalUi"; - -function PdfRequestFiles() { - const navigate = useNavigate(); - const { docId } = useParams(); - const [pdfDetails, setPdfDetails] = useState([]); - const [signedSigners, setSignedSigners] = useState([]); - const [unsignedSigners, setUnSignedSigners] = useState([]); - const [isSignPad, setIsSignPad] = useState(false); - const [pdfUrl, setPdfUrl] = useState(); - const [allPages, setAllPages] = useState(null); - const numPages = 1; - const [pageNumber, setPageNumber] = useState(1); - const [image, setImage] = useState(null); - const [isImageSelect, setIsImageSelect] = useState(false); - const [signature, setSignature] = useState(); - const [isStamp, setIsStamp] = useState(false); - const [signKey, setSignKey] = useState(); - const [imgWH, setImgWH] = useState({}); - const imageRef = useRef(null); - const [handleError, setHandleError] = useState(); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [defaultSignImg, setDefaultSignImg] = useState(); - const [isDocId, setIsDocId] = useState(false); - const [pdfNewWidth, setPdfNewWidth] = useState(); - const [pdfOriginalWidth, setPdfOriginalWidth] = useState(); - const [signerPos, setSignerPos] = useState([]); - const [noData, setNoData] = useState(false); - const [signerObjectId, setSignerObjectId] = useState(); - const [isUiLoading, setIsUiLoading] = useState(false); - const [isDecline, setIsDecline] = useState({ isDeclined: false }); - const [currentSigner, setCurrentSigner] = useState(false); - const [isAlert, setIsAlert] = useState({ isShow: false, alertMessage: "" }); - const [unSignedWidgetId, setUnSignedWidgetId] = useState(""); - const [defaultSignAlert, setDefaultSignAlert] = useState({ - isShow: false, - alertMessage: "" - }); - const [isCompleted, setIsCompleted] = useState({ - isCertificate: false, - isModal: false - }); - const [myInitial, setMyInitial] = useState(""); - const [isInitial, setIsInitial] = useState(false); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const [isSigned, setIsSigned] = useState(false); - const [isExpired, setIsExpired] = useState(false); - const [alreadySign, setAlreadySign] = useState(false); - const [containerWH, setContainerWH] = useState({}); - const [validateAlert, setValidateAlert] = useState(false); - const [widgetsTour, setWidgetsTour] = useState(false); - const [minRequiredCount, setminRequiredCount] = useState(); - const [sendInOrder, setSendInOrder] = useState(false); - const divRef = useRef(null); - const isMobile = window.innerWidth < 767; - const rowLevel = - localStorage.getItem("rowlevel") && - JSON.parse(localStorage.getItem("rowlevel")); - - const objectId = - rowLevel && rowLevel.id - ? rowLevel.id - : rowLevel?.objectId && rowLevel.objectId; - const documentId = docId ? docId : objectId && objectId; - - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - useEffect(() => { - if (documentId) { - getDocumentDetails(); - } - }, []); - useEffect(() => { - if (divRef.current) { - const pdfWidth = pdfNewWidthFun(divRef); - setPdfNewWidth(pdfWidth); - setContainerWH({ - width: divRef.current.offsetWidth, - height: divRef.current.offsetHeight - }); - } - }, [divRef.current]); - - //function for get document details for perticular signer with signer'object id - const getDocumentDetails = async () => { - let currUserId; - //getting document details - const documentData = await contractDocument(documentId); - if (documentData && documentData.length > 0) { - const isCompleted = - documentData[0].IsCompleted && documentData[0].IsCompleted; - const expireDate = documentData[0].ExpiryDate.iso; - const declined = documentData[0].IsDeclined && documentData[0].IsDeclined; - const expireUpdateDate = new Date(expireDate).getTime(); - const currDate = new Date().getTime(); - const getSigners = documentData[0].Signers; - const getCurrentSigner = - getSigners && - getSigners.filter( - (data) => data.UserId.objectId === jsonSender.objectId - ); - - currUserId = getCurrentSigner[0] ? getCurrentSigner[0].objectId : ""; - setSignerObjectId(currUserId); - if (documentData[0].SignedUrl) { - setPdfUrl(documentData[0].SignedUrl); - } else { - setPdfUrl(documentData[0].URL); - } - if (isCompleted) { - setIsSigned(true); - const data = { - isCertificate: true, - isModal: true - }; - setAlreadySign(true); - setIsCompleted(data); - } else if (declined) { - const currentDecline = { - currnt: "another", - isDeclined: true - }; - setIsDecline(currentDecline); - } else if (currDate > expireUpdateDate) { - setIsExpired(true); - } - - if (documentData.length > 0) { - const checkDocIdExist = - documentData[0].AuditTrail && - documentData[0].AuditTrail.length > 0 && - documentData[0].AuditTrail.filter( - (data) => data.Activity === "Signed" - ); - - const checkAlreadySign = - documentData[0].AuditTrail && - documentData[0].AuditTrail.length > 0 && - documentData[0].AuditTrail.filter( - (data) => - data.UserPtr.objectId === currUserId && data.Activity === "Signed" - ); - if ( - checkAlreadySign && - checkAlreadySign[0] && - checkAlreadySign.length > 0 - ) { - setAlreadySign(true); - } else { - const obj = documentData?.[0]; - setSendInOrder(obj?.SendinOrder || false); - if ( - obj && - obj.Signers && - obj.Signers.length > 0 && - obj.Placeholders && - obj.Placeholders.length > 0 - ) { - const params = { - event: "viewed", - body: { - objectId: documentData?.[0].objectId, - file: documentData?.[0]?.SignedUrl || documentData?.[0]?.URL, - name: documentData?.[0].Name, - note: documentData?.[0].Note || "", - description: documentData?.[0].Description || "", - signers: documentData?.[0].Signers?.map((x) => ({ - name: x?.Name, - email: x?.Email, - phone: x?.Phone - })), - viewedBy: jsonSender.email, - viewedAt: new Date(), - createdAt: documentData?.[0].createdAt - } - }; - - try { - await axios.post( - `${localStorage.getItem("baseUrl")}functions/callwebhook`, - params, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": - localStorage.getItem("parseAppId"), - sessiontoken: localStorage.getItem("accesstoken") - } - } - ); - } catch (err) { - console.log("Err ", err); - } - } - } - - let signers = []; - let unSignedSigner = []; - - //check document is signed or not - if (checkDocIdExist && checkDocIdExist.length > 0) { - setIsDocId(true); - const signerRes = documentData[0].Signers; - //comparison auditTrail user details with signers user details - for (let i = 0; i < signerRes.length; i++) { - const signerId = signerRes[i].objectId; - - let isSignedSignature = false; - for (let j = 0; j < checkDocIdExist.length; j++) { - const signedExist = - checkDocIdExist[j] && checkDocIdExist[j].UserPtr.objectId; - //checking signerObjId and auditTrail User objId - // if match then add signed data in signer array and break loop - - if (signerId === signedExist) { - signers.push({ ...signerRes[i], ...signerRes[i] }); - isSignedSignature = true; - break; - } - // if does not match then add unsigned data in unSignedSigner array - } - if (!isSignedSignature) { - unSignedSigner.push({ ...signerRes[i], ...signerRes[i] }); - } - } - setSignedSigners(signers); - setUnSignedSigners(unSignedSigner); - - setSignerPos(documentData[0].Placeholders); - } else { - let unsigned = []; - for (let i = 0; i < documentData.length; i++) { - unsigned.push(documentData[i].Signers); - } - setUnSignedSigners(unsigned[0]); - setSignerPos(documentData[0].Placeholders); - } - setPdfDetails(documentData); - setIsUiLoading(false); - } else { - alert("No data found!"); - } - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else { - setNoData(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - setIsUiLoading(false); - } - await axios - .get( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Signature?where={"UserId": {"__type": "Pointer","className": "_User", "objectId":"${ - jsonSender.objectId - }"}}`, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - const json = Listdata.data; - const res = json.results; - - if (res[0] && res.length > 0) { - setDefaultSignImg(res[0].ImageURL); - setMyInitial(res[0]?.Initials); - } - - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - }) - .catch((err) => { - const loadObj = { - isLoad: false - }; - - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - }); - }; - - const checkSendInOrder = () => { - if (sendInOrder) { - const index = pdfDetails?.[0].Signers.findIndex( - (x) => x.Email === jsonSender.email - ); - const newIndex = index - 1; - if (newIndex !== -1) { - const user = pdfDetails?.[0].Signers[newIndex]; - const isPrevUserSigned = - pdfDetails?.[0].AuditTrail && - pdfDetails?.[0].AuditTrail.some( - (x) => - x.UserPtr.objectId === user.objectId && x.Activity === "Signed" - ); - if (isPrevUserSigned) { - return true; - } else { - return false; - } - } else { - return true; - } - } else { - return true; - } - }; - - //function for embed signature or image url in pdf - async function embedWidgetsData() { - const validateSigning = checkSendInOrder(); - if (validateSigning) { - const checkUser = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - if (checkUser && checkUser.length > 0) { - let unSignUrlData, - checkboxExist, - requiredRadio, - showAlert = false, - widgetKey, - radioExist, - requiredCheckbox - ; - - for (let i = 0; i < checkUser[0].placeHolder.length; i++) { - checkboxExist = checkUser[0].placeHolder[i].pos.some( - (data) => data.type === "checkbox" - ); - radioExist = checkUser[0].placeHolder[i].pos.some( - (data) => data.type === "radio" - ); - if (checkboxExist) { - requiredCheckbox = checkUser[0].placeHolder[i].pos.filter( - (position) => !position.options?.isReadOnly && position.type ==='checkbox' - ); - - if (requiredCheckbox && requiredCheckbox.length > 0) { - for (let i = 0; i < requiredCheckbox.length; i++) { - const minCount = - requiredCheckbox[i].options?.validation?.minRequiredCount; - const parseMin = minCount && parseInt(minCount); - const maxCount = - requiredCheckbox[i].options?.validation?.maxRequiredCount; - const parseMax = maxCount && parseInt(maxCount); - const response = requiredCheckbox[i].options?.response?.length; - const defaultValue = requiredCheckbox[i].options?.defaultValue?.length; - if (parseMin === 0 && parseMax === 0) { - if (!showAlert) { - showAlert = false; - } - } else if (parseMin === 0 && parseMax > 0) { - if (!showAlert) { - showAlert = false; - } - } else if (!response) { - if (!defaultValue) { - if (!showAlert) { - showAlert = true; - widgetKey = requiredCheckbox[i].key; - setminRequiredCount(parseMin); - } - } - } else if (parseMin > 0 && parseMin > response) { - if (!showAlert) { - showAlert = true; - widgetKey = requiredCheckbox[i].key; - setminRequiredCount(parseMin); - } - } - } - } - } else if(radioExist) { - requiredRadio = checkUser[0].placeHolder[i].pos.filter( - (position) => !position.options?.isReadOnly && position.type ==='radio' - ); - - if (requiredRadio && requiredRadio.length > 0) { - let checkSigned ; - for(let i=0; i < requiredRadio.length; i++){ - checkSigned = requiredRadio[i]?.options.response - if(!checkSigned){ - let checkDefaultSigned = requiredRadio[i]?.options.defaultValue - if(!checkDefaultSigned){ - if (!showAlert) { - showAlert = true; - widgetKey = requiredRadio[i].key; - } - } - } - } - } - } else{ - - const requiredWidgets = checkUser[0].placeHolder[i].pos.filter( - (position) => !position.options?.isReadOnly - ); - if(requiredWidgets && requiredCheckbox.length >0){ - unSignUrlData = checkUser[0].placeHolder[i].pos.filter( - (pos) => !pos?.SignUrl && !pos.options.response - ); - let checkSigned ; - for(let i=0; i < requiredWidgets.length; i++){ - checkSigned = requiredWidgets[i]?.options?.response - if(!checkSigned){ - const checkSignUrl = requiredWidgets[i]?.pos?.SignUrl - - let checkDefaultSigned = requiredWidgets[i]?.options?.defaultValue - if(!checkSignUrl){ - if(!checkDefaultSigned){ - if (!showAlert) { - showAlert = true; - widgetKey = requiredWidgets[i].key; - } - } - } - - } - } - } - } - } - - if (checkboxExist && requiredCheckbox && showAlert) { - setUnSignedWidgetId(widgetKey); - setWidgetsTour(true); - }else if(radioExist && showAlert ){ - setUnSignedWidgetId(widgetKey); - setWidgetsTour(true); - } - else if (showAlert) { - setUnSignedWidgetId(widgetKey); - setWidgetsTour(true); - } - else { - setIsUiLoading(true); - const pngUrl = checkUser[0].placeHolder; - // Load a PDFDocument from the existing PDF bytes - const existingPdfBytes = await fetch(pdfUrl).then((res) => - res.arrayBuffer() - ); - const pdfDoc = await PDFDocument.load(existingPdfBytes, { - ignoreEncryption: true - }); - // let pdfBase64; - - //checking if signature is only one then send image url in jpeg formate to server - // if (pngUrl.length === 1 && pngUrl[0].pos.length === 1) { - // if (isDocId) { - // try { - // pdfBase64 = await getBase64FromUrl(pdfUrl); - // } catch (err) { - // console.log(err); - // } - // } else { - // //embed document's object id to all pages in pdf document - // try { - // await embedDocId(pdfDoc, documentId, allPages); - // } catch (err) { - // console.log(err); - // } - // try { - // pdfBase64 = await pdfDoc.saveAsBase64({ - // useObjectStreams: false - // }); - // } catch (err) { - // console.log(err); - // } - // } - // for (let pngData of pngUrl) { - // const imgUrlList = pngData.pos; - // const pageNo = pngData.pageNumber; - // imgUrlList.map(async (data) => { - // //cheking signUrl is defau;t signature url of custom url - // let ImgUrl = data.SignUrl; - // const checkUrl = urlValidator(ImgUrl); - // //if default signature url then convert it in base 64 - // if (checkUrl) { - // ImgUrl = await getBase64FromIMG(ImgUrl + "?get"); - // } - // //function for called convert png signatre to jpeg in base 64 - // convertPNGtoJPEG(ImgUrl) - // .then((jpegBase64Data) => { - // const removeBase64Fromjpeg = "data:image/jpeg;base64,"; - // const newImgUrl = jpegBase64Data.replace( - // removeBase64Fromjpeg, - // "" - // ); - - // //function for call to embed signature in pdf and get digital signature pdf - // signPdfFun( - // newImgUrl, - // documentId, - // signerObjectId, - // pdfOriginalWidth, - // pngUrl, - // containerWH, - // setIsAlert, - // data, - // pdfBase64, - // pageNo - // ) - // .then((res) => { - // if (res && res.status === "success") { - // setPdfUrl(res.data); - // setIsSigned(true); - // setSignedSigners([]); - // setUnSignedSigners([]); - // getDocumentDetails(); - // } else { - // setIsAlert({ - // isShow: true, - // alertMessage: "something went wrong" - // }); - // } - // }) - // .catch((err) => { - // setIsAlert({ - // isShow: true, - // alertMessage: "something went wrong" - // }); - // }); - // }) - // .catch((error) => { - // console.error("Error:", error); - // }); - // }); - // } - // } - // //else if signature is more than one then embed all sign with the use of pdf-lib - // else if (pngUrl.length > 0 && pngUrl[0].pos.length > 0) { - const flag = false; - const extUserPtr = pdfDetails[0].ExtUserPtr; - const HeaderDocId = extUserPtr?.HeaderDocId; - //embed document's object id to all pages in pdf document - if (!HeaderDocId) { - if (!isDocId) { - await embedDocId(pdfDoc, documentId, allPages); - } - } - //embed multi signature in pdf - const pdfBytes = await multiSignEmbed( - pngUrl, - pdfDoc, - pdfOriginalWidth, - flag, - containerWH - ); - - //function for call to embed signature in pdf and get digital signature pdf - try { - const res = await signPdfFun( - pdfBytes, - documentId, - signerObjectId, - pdfOriginalWidth, - pngUrl, - containerWH, - setIsAlert - ); - if (res && res.status === "success") { - setPdfUrl(res.data); - setIsSigned(true); - setSignedSigners([]); - setUnSignedSigners([]); - getDocumentDetails(); - if (sendInOrder) { - const index = pdfDetails?.[0].Signers.findIndex( - (x) => x.Email === jsonSender.email - ); - const newIndex = index + 1; - const user = pdfDetails?.[0].Signers[newIndex]; - if (user) { - let sendMail; - // console.log("pdfDetails", pdfDetails); - const expireDate = pdfDetails?.[0].ExpiryDate.iso; - const newDate = new Date(expireDate); - const localExpireDate = newDate.toLocaleDateString("en-US", { - day: "numeric", - month: "long", - year: "numeric" - }); - let sender = pdfDetails?.[0].ExtUserPtr.Email; - - try { - const imgPng = - "https://qikinnovation.ams3.digitaloceanspaces.com/logo.png"; - let url = `${localStorage.getItem( - "baseUrl" - )}functions/sendmailv3/`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": - localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - }; - const serverUrl = localStorage.getItem("baseUrl"); - const newServer = serverUrl.replaceAll("/", "%2F"); - const objectId = user.objectId; - const serverParams = `${newServer}&${localStorage.getItem( - "parseAppId" - )}&${localStorage.getItem("_appName")}`; - - const hostUrl = - window.location.origin + "/loadmf/signmicroapp"; - let signPdf = `${hostUrl}/login/${pdfDetails?.[0].objectId}/${user.Email}/${objectId}/${serverParams}`; - const openSignUrl = - "https://www.opensignlabs.com/contact-us"; - const orgName = pdfDetails[0]?.ExtUserPtr.Company - ? pdfDetails[0].ExtUserPtr.Company - : ""; - const themeBGcolor = themeColor(); - let params = { - recipient: user.Email, - subject: `${pdfDetails?.[0].ExtUserPtr.Name} has requested you to sign ${pdfDetails?.[0].Name}`, - from: sender, - - html: - "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> </head> <body> <div style='background-color: #f5f5f5; padding: 20px'=> <div style=' box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;background: white;padding-bottom: 20px;'> <div style='padding:10px 10px 0 10px'><img src=" + - imgPng + - " height='50' style='padding: 20px,width:170px,height:40px' /></div> <div style=' padding: 2px;font-family: system-ui;background-color:" + - themeBGcolor + - ";'><p style='font-size: 20px;font-weight: 400;color: white;padding-left: 20px;' > Digital Signature Request</p></div><div><p style='padding: 20px;font-family: system-ui;font-size: 14px; margin-bottom: 10px;'> " + - pdfDetails?.[0].ExtUserPtr.Name + - " has requested you to review and sign <strong> " + - pdfDetails?.[0].Name + - "</strong>.</p><div style='padding: 5px 0px 5px 25px;display: flex;flex-direction: row;justify-content: space-around;'><table> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Sender</td> <td> </td> <td style='color:#626363;font-weight:bold'>" + - sender + - "</td></tr><tr><td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Organization</td> <td> </td><td style='color:#626363;font-weight:bold'> " + - orgName + - "</td></tr> <tr> <td style='font-weight:bold;font-family:sans-serif;font-size:15px'>Expires on</td><td> </td> <td style='color:#626363;font-weight:bold'>" + - localExpireDate + - "</td></tr><tr> <td></td> <td> </td></tr></table> </div> <div style='margin-left:70px'><a href=" + - signPdf + - "> <button style='padding: 12px 12px 12px 12px;background-color: #d46b0f;color: white; border: 0px;box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px,rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;font-weight:bold;margin-top:30px'>Sign here</button></a> </div> <div style='display: flex; justify-content: center;margin-top: 10px;'> </div></div></div><div><p> This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + - sender + - " directly.If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ <a href= " + - openSignUrl + - " target=_blank>here</a>.</p> </div></div></body> </html>" - }; - sendMail = await axios.post(url, params, { - headers: headers - }); - } catch (error) { - console.log("error", error); - } - } - } - } else { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } catch (err) { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } - setIsSignPad(false); - } else { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } else { - setIsAlert({ - isShow: true, - alertMessage: - "Please wait for your turn to sign this document, as it has been set up by the creator to be signed in a specific order; you'll be notified when it's your turn." - }); - } -} - //function for update TourStatus - const closeTour = async () => { - setWidgetsTour(false); - }; - - const tourConfig = [ - { - selector: '[data-tut="IsSigned"]', - content: minRequiredCount - ? `Please confirm that you have selected at least ${minRequiredCount} checkboxes.` - : "Ensure this field is accurately filled and meets all requirements.", - position: "top", - style: { fontSize: "13px" } - } - ]; - - //function for get pdf page details - const pageDetails = async (pdf) => { - const load = { - status: true - }; - setPdfLoadFail(load); - pdf.getPage(1).then((pdfPage) => { - const pageWidth = pdfPage.view[2]; - - setPdfOriginalWidth(pageWidth); - }); - }; - - //function for change page - function changePage(offset) { - setPageNumber((prevPageNumber) => prevPageNumber + offset); - } - - const getFirstLetter = (name) => { - const firstLetter = name.charAt(0); - return firstLetter; - }; - //function for image upload or update - const onImageChange = (event) => { - if (event.target.files && event.target.files[0]) { - onImageSelect(event, setImgWH, setImage); - } - }; - //function for upload stamp image - const saveImage = () => { - //get current signers placeholder position data - const currentSigner = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //get current pagenumber placeholder index - const getIndex = currentSigner[0].placeHolder.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - //get current signer placeholder position data - const placeholderPosition = currentSigner[0].placeHolder; - //function of save image and get updated position with image url - const getUpdatePosition = onSaveImage( - placeholderPosition, - getIndex, - signKey, - imgWH, - image - ); - - //replace updated placeholder position with old data - placeholderPosition.splice( - 0, - placeholderPosition.length, - ...getUpdatePosition - ); - //get current signers placeholder position data index number in array - const indexofSigner = signerPos.findIndex((object) => { - return object.signerObjId === signerObjectId; - }); - //update current signers data with new placeholder position array data - setSignerPos((prevState) => { - const newState = [...prevState]; // Create a copy of the state - newState.splice(indexofSigner, 1, ...currentSigner); // Modify the copy - return newState; // Update the state with the modified copy - }); - }; - - //function for save button to save signature or image url - const saveSign = (isDefaultSign, width, height) => { - const isTypeText = width && height ? true : false; - const signatureImg = isDefaultSign - ? isDefaultSign === "initials" - ? myInitial - : defaultSignImg - : signature; - let imgWH = { width: width ? width : "", height: height ? height : "" }; - setIsSignPad(false); - setIsImageSelect(false); - setImage(); - - //get current signers placeholder position data - const currentSigner = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //get current pagenumber placeholder index - const getIndex = currentSigner[0].placeHolder.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - - //set default signature image width and height - if (isDefaultSign) { - const img = new Image(); - img.src = defaultSignImg; - if (img.complete) { - imgWH = { - width: img.width, - height: img.height - }; - } - } - //get current signer placeholder position data - const placeholderPosition = currentSigner[0].placeHolder; - //function of save signature image and get updated position with signature image url - const getUpdatePosition = onSaveSign( - placeholderPosition, - getIndex, - signKey, - signatureImg, - imgWH, - isDefaultSign, - isTypeText - ); - - const updateSignerData = currentSigner.map((obj, ind) => { - if (obj.signerObjId === signerObjectId) { - return { ...obj, placeHolder: getUpdatePosition }; - } - return obj; - }); - - const index = signerPos.findIndex( - (data) => data.signerObjId === signerObjectId - ); - setSignerPos((prevState) => { - const newState = [...prevState]; - newState.splice(index, 1, ...updateSignerData); - return newState; - }); - }; - - const checkSignerBackColor = (obj) => { - const data = signerPos.filter((data) => data.signerObjId === obj.objectId); - return data && data.length > 0 && data[0].blockColor; - }; - - //function for set decline true on press decline button - const declineDoc = async () => { - setIsDecline({ isDeclined: false }); - const data = { - IsDeclined: true - }; - setIsUiLoading(true); - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${documentId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then(async (result) => { - const res = result.data; - if (res) { - const currentDecline = { - currnt: "YouDeclined", - isDeclined: true - }; - setIsDecline(currentDecline); - setIsUiLoading(false); - const params = { - event: "declined", - body: { - objectId: pdfDetails?.[0].objectId, - file: pdfDetails?.[0]?.SignedUrl || pdfDetails?.[0]?.URL, - name: pdfDetails?.[0].Name, - note: pdfDetails?.[0].Note || "", - description: pdfDetails?.[0].Description || "", - signers: pdfDetails?.[0].Signers?.map((x) => ({ - name: x?.Name, - email: x?.Email, - phone: x?.Phone - })), - declinedBy: jsonSender.email, - declinedAt: new Date(), - createdAt: pdfDetails?.[0].createdAt - } - }; - - try { - await axios.post( - `${localStorage.getItem("baseUrl")}functions/callwebhook`, - params, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessiontoken: localStorage.getItem("accesstoken") - } - } - ); - } catch (err) { - console.log("Err ", err); - } - } - }) - .catch((err) => { - console.log("error updating field is decline ", err); - }); - }; - //function to add default signature for all requested placeholder of sign - const addDefaultSignature = () => { - //get current signers placeholder position data - const currentSignerPosition = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //function for save default signature url for all placeholder position - const updatePlace = addDefaultSignatureImg( - currentSignerPosition[0].placeHolder, - defaultSignImg - ); - - const updatesignerPos = signerPos.map((x) => - x.signerObjId === signerObjectId ? { ...x, placeHolder: updatePlace } : x - ); - setSignerPos(updatesignerPos); - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }; - - return ( - <DndProvider backend={HTML5Backend}> - <Title title={"Request Sign"} /> - {isLoading.isLoad ? ( - <Loader isLoading={isLoading} /> - ) : handleError ? ( - <HandleError handleError={handleError} /> - ) : noData ? ( - <Nodata /> - ) : ( - <div> - {isUiLoading && ( - <div - style={{ - position: "absolute", - height: "100vh", - width: "100%", - display: "flex", - justifyContent: "center", - flexDirection: "column", - alignItems: "center", - zIndex: "999", - backgroundColor: "#e6f2f2", - opacity: 0.8 - }} - > - <img - alt="no img" - src={loader} - style={{ width: "100px", height: "100px" }} - /> - <span style={{ fontSize: "13px", fontWeight: "bold" }}> - This might take some time - </span> - </div> - )} - - <div className="signatureContainer" ref={divRef}> - <ModalUi - headerColor={"#dc3545"} - isOpen={isAlert.isShow} - title={"Alert message"} - handleClose={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{isAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - - <button - onClick={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - </div> - </ModalUi> - - <Tour - showNumber={false} - showNavigation={false} - showNavigationNumber={false} - onRequestClose={closeTour} - steps={tourConfig} - isOpen={widgetsTour} - rounded={5} - closeWithMask={false} - /> - - {/* this modal is used to show decline alert */} - <CustomModal - containerWH={containerWH} - show={isDecline.isDeclined} - headMsg="Document Declined" - bodyMssg={ - isDecline.currnt === "Sure" ? ( - <p className="pTagBody"> - Are you sure want to decline this document ? - </p> - ) : isDecline.currnt === "YouDeclined" ? ( - <p className="pTagBody">You have declined this document!</p> - ) : ( - isDecline.currnt === "another" && ( - <p className="pTagBody"> - You cannot sign this document as it has been declined by - one or more person(s). - </p> - ) - ) - } - footerMessage={isDecline.currnt === "Sure"} - declineDoc={declineDoc} - setIsDecline={setIsDecline} - /> - {/* this modal is used for show expired alert */} - <CustomModal - containerWH={containerWH} - show={isExpired} - headMsg="Document Expired!" - bodyMssg="This Document is no longer available." - /> - <ModalUi - headerColor={defaultSignImg ? themeColor() : "#dc3545"} - isOpen={defaultSignAlert.isShow} - title={"Auto sign"} - handleClose={() => { - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{defaultSignAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - {defaultSignImg ? ( - <> - <button - onClick={() => addDefaultSignature()} - style={{ - background: themeColor() - }} - type="button" - className="finishBtn" - > - Yes - </button> - <button - onClick={() => { - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </> - ) : ( - <button - onClick={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - )} - </div> - </ModalUi> - {/* this component used to render all pdf pages in left side */} - <RenderAllPdfPage - signPdfUrl={pdfDetails[0].URL} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - pageNumber={pageNumber} - /> - - {/* pdf render view */} - <div - style={{ - marginLeft: !isMobile && pdfOriginalWidth > 500 && "20px", - marginRight: !isMobile && pdfOriginalWidth > 500 && "20px" - }} - > - {/* this modal is used show this document is already sign */} - <ModalUi - isOpen={isCompleted.isModal} - title={"Sign Documents"} - handleClose={() => { - setIsCompleted({ isModal: false, isCertificate: true }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>This document has been signed by all Signers.</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - type="button" - className="finishBtn cancelBtn" - onClick={() => - setIsCompleted({ isModal: false, isCertificate: true }) - } - > - Close - </button> - </div> - </ModalUi> - - {/* this component is used for signature pad modal */} - <SignPad - isSignPad={isSignPad} - isStamp={isStamp} - setIsImageSelect={setIsImageSelect} - setIsSignPad={setIsSignPad} - setImage={setImage} - isImageSelect={isImageSelect} - imageRef={imageRef} - onImageChange={onImageChange} - setSignature={setSignature} - image={image} - onSaveImage={saveImage} - onSaveSign={saveSign} - defaultSign={defaultSignImg} - myInitial={myInitial} - isInitial={isInitial} - setIsInitial={setIsInitial} - setIsStamp={setIsStamp} - /> - {/* pdf header which contain funish back button */} - <Header - isPdfRequestFiles={true} - pageNumber={pageNumber} - allPages={allPages} - changePage={changePage} - pdfDetails={pdfDetails} - signerPos={signerPos} - isSigned={isSigned} - isCompleted={isCompleted} - embedWidgetsData={embedWidgetsData} - isShowHeader={true} - setIsDecline={setIsDecline} - decline={true} - currentSigner={currentSigner} - pdfUrl={pdfUrl} - alreadySign={alreadySign} - /> - {containerWH && ( - <RenderPdf - pageNumber={pageNumber} - pdfOriginalWidth={pdfOriginalWidth} - pdfNewWidth={pdfNewWidth} - setIsSignPad={setIsSignPad} - setIsStamp={setIsStamp} - setSignKey={setSignKey} - pdfDetails={pdfDetails} - signerPos={signerPos} - successEmail={false} - pdfUrl={pdfUrl} - numPages={numPages} - pageDetails={pageDetails} - pdfRequest={true} - signerObjectId={signerObjectId} - signedSigners={signedSigners} - setCurrentSigner={setCurrentSigner} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - setSignerPos={setSignerPos} - containerWH={containerWH} - setIsInitial={setIsInitial} - setValidateAlert={setValidateAlert} - unSignedWidgetId={unSignedWidgetId} - /> - )} - </div> - <div> - <div className="signerComponent"> - <div - style={{ maxHeight: window.innerHeight - 70 + "px" }} - className="autoSignScroll" - > - {signedSigners.length > 0 && ( - <> - <div - style={{ - background: themeColor() - }} - className="signedStyle" - > - Signed by - </div> - <div style={{ marginTop: "2px" }}> - {signedSigners.map((obj, ind) => { - return ( - <div - style={{ - display: "flex", - flexDirection: "row", - alignItems: "center", - padding: "10px 0", - background: checkSignerBackColor(obj) - }} - key={ind} - > - <div - className="signerStyle" - style={{ - background: "#abd1d0", - width: 30, - height: 30, - display: "flex", - borderRadius: 30 / 2, - justifyContent: "center", - alignItems: "center", - margin: "0 10px 0 5px" - }} - > - <span - style={{ - fontSize: "12px", - textAlign: "center", - fontWeight: "bold", - color: "black", - textTransform: "uppercase" - }} - > - {getFirstLetter(obj.Name)} - </span> - </div> - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - <span className="userName">{obj.Name}</span> - <span className="useEmail">{obj.Email}</span> - </div> - </div> - ); - })} - </div> - </> - )} - - {unsignedSigners.length > 0 && ( - <> - <div - style={{ - background: themeColor(), - color: "white", - padding: "5px", - fontFamily: "sans-serif", - marginTop: signedSigners.length > 0 && "20px" - }} - > - Yet to sign - </div> - <div style={{ marginTop: "5px" }}> - {unsignedSigners.map((obj, ind) => { - return ( - <div - style={{ - display: "flex", - flexDirection: "row", - alignItems: "center", - padding: "10px 0", - background: checkSignerBackColor(obj) - }} - key={ind} - > - <div - className="signerStyle" - style={{ - background: "#abd1d0", - width: 30, - height: 30, - display: "flex", - borderRadius: 30 / 2, - justifyContent: "center", - alignItems: "center", - margin: "0 10px 0 5px" - }} - > - <span - style={{ - fontSize: "12px", - textAlign: "center", - fontWeight: "bold", - color: "black", - textTransform: "uppercase" - }} - > - {getFirstLetter(obj.Name)} - </span> - </div> - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - <span className="userName">{obj.Name}</span> - <span className="useEmail">{obj.Email}</span> - </div> - <hr /> - </div> - ); - })} - </div> - </> - )} - {defaultSignImg && !alreadySign && ( - <DefaultSignature - themeColor={themeColor} - defaultSignImg={defaultSignImg} - setDefaultSignImg={setDefaultSignImg} - userObjectId={signerObjectId} - setIsLoading={setIsLoading} - xyPostion={signerPos} - setDefaultSignAlert={setDefaultSignAlert} - /> - )} - </div> - </div> - </div> - </div> - </div> - )} - - <ModalUi - headerColor={"#dc3545"} - isOpen={validateAlert} - title={"Validation alert"} - handleClose={() => { - setValidateAlert(false); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p> - The input does not meet the criteria set by the regular expression. - </p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => setValidateAlert(false)} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </div> - </ModalUi> - </DndProvider> - ); -} - -export default PdfRequestFiles; diff --git a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js deleted file mode 100644 index 40c0b161c..000000000 --- a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js +++ /dev/null @@ -1,1244 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import { PDFDocument } from "pdf-lib"; -import "../css/./signature.css"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import axios from "axios"; -import moment from "moment"; -import Loader from "./component/loader"; -import loader from "../assests/loader2.gif"; -import RenderAllPdfPage from "./component/renderAllPdfPage"; -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { useDrag, useDrop } from "react-dnd"; -import SignPad from "./component/signPad"; -import EmailComponent from "./component/emailComponent"; -import FieldsComponent from "./component/fieldsComponent"; -import { - contractDocument, - embedDocId, - multiSignEmbed, - pdfNewWidthFun, - onImageSelect, - calculateInitialWidthHeight, - defaultWidthHeight -} from "../utils/Utils"; -import { useParams } from "react-router-dom"; -import Tour from "reactour"; -import { onSaveImage, onSaveSign } from "../utils/Utils"; -import Signedby from "./component/signedby"; -import HandleError from "./component/HandleError"; -import Nodata from "./component/Nodata"; -import Header from "./component/header"; -import RenderPdf from "./component/renderPdf"; -import { contractUsers, contactBook } from "../utils/Utils"; -import PlaceholderCopy from "./component/PlaceholderCopy"; -import TourContentWithBtn from "../premitives/TourContentWithBtn"; -import Title from "./component/Title"; -import ModalUi from "../premitives/ModalUi"; -import DropdownWidgetOption from "./WidgetComponent/dropdownWidgetOption"; - -//For signYourself inProgress section signer can add sign and complete doc sign. -function SignYourSelf() { - const [pdfDetails, setPdfDetails] = useState([]); - const [isSignPad, setIsSignPad] = useState(false); - const [allPages, setAllPages] = useState(null); - const [pdfUrl, setPdfUrl] = useState(); - const [xyPostion, setXyPostion] = useState([]); - const [defaultSignImg, setDefaultSignImg] = useState(); - const numPages = 1; - const [pageNumber, setPageNumber] = useState(1); - const [image, setImage] = useState(null); - const [isImageSelect, setIsImageSelect] = useState(false); - const [signature, setSignature] = useState(); - const [isStamp, setIsStamp] = useState(false); - const [isEmail, setIsEmail] = useState(false); - const [signBtnPosition, setSignBtnPosition] = useState([]); - const [xySignature, setXYSignature] = useState({}); - const signRef = useRef(null); - const dragRef = useRef(null); - const [dragKey, setDragKey] = useState(); - const [signKey, setSignKey] = useState(); - const [imgWH, setImgWH] = useState({}); - const [isCeleb, setIsCeleb] = useState(false); - const [pdfNewWidth, setPdfNewWidth] = useState(); - const [pdfOriginalWidth, setPdfOriginalWidth] = useState(); - const [successEmail, setSuccessEmail] = useState(false); - const imageRef = useRef(null); - const [documentStatus, setDocumentStatus] = useState({ isCompleted: false }); - const [myInitial, setMyInitial] = useState(""); - const [isInitial, setIsInitial] = useState(false); - const [isUiLoading, setIsUiLoading] = useState(false); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [handleError, setHandleError] = useState(); - const [isDragging, setIsDragging] = useState(false); - const [signTour, setSignTour] = useState(true); - const { docId } = useParams(); - const [checkTourStatus, setCheckTourStatus] = useState(false); - const [signerUserId, setSignerUserId] = useState(); - const [tourStatus, setTourStatus] = useState([]); - const [noData, setNoData] = useState(false); - const [contractName, setContractName] = useState(""); - const [containerWH, setContainerWH] = useState({}); - const [isPageCopy, setIsPageCopy] = useState(false); - const [selectWidgetId, setSelectWidgetId] = useState(""); - const [showAlreadySignDoc, setShowAlreadySignDoc] = useState({ - status: false - }); - const [currWidgetsDetails, setCurrWidgetsDetails] = useState([]); - const [isCheckbox, setIsCheckbox] = useState(false); - const [widgetType, setWidgetType] = useState(""); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const [isAlert, setIsAlert] = useState({ isShow: false, alertMessage: "" }); - const [isDontShow, setIsDontShow] = useState(false); - const divRef = useRef(null); - const nodeRef = useRef(null); - const [, drop] = useDrop({ - accept: "BOX", - drop: (item, monitor) => addPositionOfSignature(item, monitor), - collect: (monitor) => ({ - isOver: !!monitor.isOver() - }) - }); - const isMobile = window.innerWidth < 767; - - const pdfRef = useRef(); - - const [{ isDragSign }, dragSignature] = useDrag({ - type: "BOX", - item: { - id: 1, - text: "signature" - }, - collect: (monitor) => ({ - isDragSign: !!monitor.isDragging() - }) - }); - - const [{ isDragStamp }, dragStamp] = useDrag({ - type: "BOX", - item: { - id: 2, - text: "stamp" - }, - - collect: (monitor) => ({ - isDragStamp: !!monitor.isDragging() - }) - }); - - const index = xyPostion.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - // rowlevel={JSON.parse(localStorage.getItem("rowlevel"))} - - const rowLevel = - localStorage.getItem("rowlevel") && - JSON.parse(localStorage.getItem("rowlevel")); - - const signObjId = - rowLevel && rowLevel?.id - ? rowLevel.id - : rowLevel?.objectId && rowLevel.objectId; - - const documentId = docId ? docId : signObjId && signObjId; - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - useEffect(() => { - if (documentId) { - getDocumentDetails(true); - } - }, []); - - useEffect(() => { - if (divRef.current) { - const pdfWidth = pdfNewWidthFun(divRef); - setPdfNewWidth(pdfWidth); - setContainerWH({ - width: divRef.current.offsetWidth, - height: divRef.current.offsetHeight - }); - } - }, [divRef.current]); - - //function for get document details for perticular signer with signer'object id - const getDocumentDetails = async (showComplete) => { - //getting document details - const documentData = await contractDocument(documentId); - - if (documentData && documentData.length > 0) { - setPdfDetails(documentData); - - const isCompleted = - documentData[0].IsCompleted && documentData[0].IsCompleted; - if (isCompleted) { - const docStatus = { - isCompleted: isCompleted - }; - setDocumentStatus(docStatus); - setPdfUrl(documentData[0].SignedUrl); - const alreadySign = { - status: true, - mssg: "You have successfully signed the document!" - }; - if (showComplete) { - setShowAlreadySignDoc(alreadySign); - }else{ - setIsUiLoading(false); - setIsSignPad(false); - setIsEmail(true); - setXyPostion([]); - setSignBtnPosition([]); - } - } - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else { - setNoData(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - await axios - .get( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Signature?where={"UserId": {"__type": "Pointer","className": "_User", "objectId":"${ - jsonSender.objectId - }"}}`, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - const json = Listdata.data; - const res = json.results; - if (res[0] && res.length > 0) { - setDefaultSignImg(res[0].ImageURL); - setMyInitial(res[0]?.Initials); - } - }) - .catch((err) => { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - }); - - const contractUsersRes = await contractUsers(jsonSender.email); - - if (contractUsersRes[0] && contractUsersRes.length > 0) { - setContractName("_Users"); - setSignerUserId(contractUsersRes[0].objectId); - const tourstatuss = - contractUsersRes[0].TourStatus && contractUsersRes[0].TourStatus; - - if (tourstatuss && tourstatuss.length > 0) { - setTourStatus(tourstatuss); - const checkTourRecipients = tourstatuss.filter( - (data) => data.signyourself - ); - if (checkTourRecipients && checkTourRecipients.length > 0) { - setCheckTourStatus(checkTourRecipients[0].signyourself); - } - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if (contractUsersRes === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else if (contractUsersRes.length === 0) { - const contractContactBook = await contactBook(jsonSender.objectId); - if (contractContactBook && contractContactBook.length > 0) { - setContractName("_Contactbook"); - setSignerUserId(contractContactBook[0].objectId); - const tourstatuss = - contractContactBook[0].TourStatus && - contractContactBook[0].TourStatus; - if (tourstatuss && tourstatuss.length > 0) { - setTourStatus(tourstatuss); - const checkTourRecipients = tourstatuss.filter( - (data) => data.signyourself - ); - if (checkTourRecipients && checkTourRecipients.length > 0) { - setCheckTourStatus(checkTourRecipients[0].signyourself); - } - } - } else { - setNoData(true); - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - }; - - const getDate = () => { - const date = new Date(); - const milliseconds = date.getTime(); - const newDate = moment(milliseconds).format("MM/DD/YYYY"); - return newDate; - }; - const getWidgetValue = (type) => { - switch (type) { - case "name": - return pdfDetails[0].ExtUserPtr.Name; - case "company": - return pdfDetails[0].ExtUserPtr.Company; - case "job title": - return pdfDetails[0].ExtUserPtr.JobTitle; - case "email": - return pdfDetails[0].ExtUserPtr.Email; - case "checkbox": - const flag = true; - return flag; - case "date": - return getDate(); - default: - return ""; - } - }; - const addWidgetOptions = (type) => { - let option = {}; - - switch (type) { - case "signature": - option = { - name: "", - values: [], - status: "", - response: "", - validation: {} - }; - return option; - - case "stamp": - option = { - name: "", - values: [], - status: "", - response: "", - validation: {} - }; - return option; - - case "checkbox": - option = { - name: "", - values: [], - response: true, - validation: {} - }; - return option; - case "text": - option = { - name: "", - values: [], - status: "", - response: "", - validation: {} - }; - return option; - - case "initials": - option = { - name: "", - values: [], - status: "", - response: "", - validation: {} - }; - return option; - case "name": - option = { - name: "", - values: [], - status: "", - response: getWidgetValue(type), - validation: { - type: "text", - pattern: "" - } - }; - return option; - - case "company": - option = { - name: "", - values: [], - status: "", - response: getWidgetValue(type), - validation: { - type: "text", - pattern: "" - } - }; - return option; - case "job title": - option = { - name: "", - values: [], - status: "", - response: getWidgetValue(type), - validation: { - type: "text", - pattern: "" - } - }; - return option; - case "date": - option = { - name: "", - values: [], - status: "", - response: getDate(), - validation: { - type: "text", - pattern: "" - } - }; - return option; - case "image": - option = { - name: "", - values: [], - status: "", - response: "", - validation: {} - }; - return option; - case "email": - option = { - name: "", - values: [], - status: "", - response: getWidgetValue(type), - validation: { - type: "email", - pattern: "" - } - }; - return option; - } - }; - //function for setting position after drop signature button over pdf - const addPositionOfSignature = (item, monitor) => { - const key = Math.floor(1000 + Math.random() * 9000); - let dropData = []; - let dropObj = {}; - let filterDropPos = xyPostion.filter( - (data) => data.pageNumber === pageNumber - ); - const dragTypeValue = item?.text ? item.text : monitor.type; - const widgetValue = getWidgetValue(dragTypeValue); - const widgetWidth = defaultWidthHeight(dragTypeValue).width; - const widgetHeight = defaultWidthHeight(dragTypeValue).height; - const widgetTypeExist = ["name", "company", "job title", "email"].includes( - dragTypeValue - ); - if (item === "onclick") { - dropObj = { - xPosition: containerWH.width / 2 - widgetWidth / 2, - yPosition: containerWH.height / 2 - widgetHeight / 2, - isDrag: false, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - type: dragTypeValue, - yBottom: window.innerHeight / 2 - 60, - - Width: widgetTypeExist - ? calculateInitialWidthHeight(dragTypeValue, widgetValue).getWidth - : dragTypeValue === "initials" - ? defaultWidthHeight(dragTypeValue).width - : "", - Height: widgetTypeExist - ? calculateInitialWidthHeight(dragTypeValue, widgetValue).getHeight - : dragTypeValue === "initials" - ? defaultWidthHeight(dragTypeValue).height - : "", - options: addWidgetOptions(dragTypeValue) - }; - - dropData.push(dropObj); - } else { - const offset = monitor.getClientOffset(); - //adding and updating drop position in array when user drop signature button in div - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - - const x = offset.x - containerRect.left; - const y = offset.y - containerRect.top; - const ybottom = containerRect.bottom - offset.y; - - dropObj = { - xPosition: signBtnPosition[0] ? x - signBtnPosition[0].xPos : x, - yPosition: signBtnPosition[0] ? y - signBtnPosition[0].yPos : y, - // isDrag: false, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - type: dragTypeValue, - Width: widgetTypeExist - ? calculateInitialWidthHeight(dragTypeValue, widgetValue).getWidth - : defaultWidthHeight(dragTypeValue).width, - Height: widgetTypeExist - ? calculateInitialWidthHeight(dragTypeValue, widgetValue).getHeight - : defaultWidthHeight(dragTypeValue).height, - options: addWidgetOptions(dragTypeValue) - }; - - dropData.push(dropObj); - } - if (filterDropPos.length > 0) { - const index = xyPostion.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - const updateData = filterDropPos[0].pos; - - // if (updateData.length > dropData.length) { - const newSignPos = updateData.concat(dropData); - let xyPos = { - pageNumber: pageNumber, - pos: newSignPos - }; - xyPostion.splice(index, 1, xyPos); - - // } - } else { - const xyPos = { - pageNumber: pageNumber, - pos: dropData - }; - setXyPostion((prev) => [...prev, xyPos]); - } - - if ( - dragTypeValue === "signature" || - dragTypeValue === "stamp" || - dragTypeValue === "image" || - dragTypeValue === "initials" - ) { - setIsSignPad(true); - } - - if (dragTypeValue === "stamp" || dragTypeValue === "image") { - setIsStamp(true); - } else if (dragTypeValue === "initials") { - setIsInitial(true); - } else if (dragTypeValue === "checkbox") { - setIsCheckbox(true); - } - setWidgetType(dragTypeValue); - setSelectWidgetId(key); - setSignKey(key); - }; - - //function for send placeholder's co-ordinate(x,y) position embed signature url or stamp url - async function embedWidgetsData() { - let checkSigned = 0; - let allXyPos = 0; - - for (let i = 0; i < xyPostion.length; i++) { - const posWidgetData = xyPostion[i].pos.filter( - (pos) => pos.options.response - ); - - checkSigned = checkSigned + posWidgetData.length; - allXyPos = allXyPos + xyPostion[i].pos.length; - } - if (xyPostion.length === 0) { - setIsAlert({ - isShow: true, - alertMessage: "Please complete your signature!" - }); - return; - } else if (xyPostion.length > 0 && allXyPos !== checkSigned) { - setIsAlert({ - isShow: true, - alertMessage: "Please complete your signature!" - }); - return; - } else { - setIsCeleb(true); - setTimeout(() => { - setIsCeleb(false); - }, 3000); - setIsUiLoading(true); - const url = pdfDetails[0] && pdfDetails[0].URL; - - const existingPdfBytes = await fetch(url).then((res) => - res.arrayBuffer() - ); - - // Load a PDFDocument from the existing PDF bytes - const pdfDoc = await PDFDocument.load(existingPdfBytes, { - ignoreEncryption: true - }); - - const flag = true; - - const extUserPtr = pdfDetails[0].ExtUserPtr; - const HeaderDocId = extUserPtr?.HeaderDocId; - - //embed document's object id to all pages in pdf document - if (!HeaderDocId) { - await embedDocId(pdfDoc, documentId, allPages); - } - //embed multi signature in pdf - const pdfBytes = await multiSignEmbed( - xyPostion, - pdfDoc, - pdfOriginalWidth, - flag, - containerWH - ); -// console.log(pdfBytes) - //function for call to embed signature in pdf and get digital signature pdf - await signPdfFun(pdfBytes, documentId); - - } - } - - //function for get digital signature - const signPdfFun = async (base64Url, documentId) => { - let singleSign = { - pdfFile: base64Url, - docId: documentId - }; - - await axios - .post(`${localStorage.getItem("baseUrl")}functions/signPdf`, singleSign, { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - }) - .then((Listdata) => { - const json = Listdata.data; - - setPdfUrl(json.result.data); - if (json.result.data) { - getDocumentDetails(false); - } - }) - .catch((err) => { - console.log("axois err ", err); - }); - }; - - //function for save x and y position and show signature tab on that position - const handleTabDrag = (key, e) => { - setDragKey(key); - setIsDragging(true); - }; - - //function for set and update x and y postion after drag and drop signature tab - const handleStop = (event, dragElement, type) => { - if (isDragging && dragElement) { - event.preventDefault(); - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - - const ybottom = containerRect.height - dragElement.y; - - if (dragKey >= 0) { - const filterDropPos = xyPostion.filter( - (data) => data.pageNumber === pageNumber - ); - - if (filterDropPos.length > 0) { - const getXYdata = xyPostion[index].pos; - const getPosData = getXYdata; - const addSign = getPosData.map((url, ind) => { - if (url.key === dragKey) { - return { - ...url, - xPosition: dragElement.x, - yPosition: dragElement.y, - isDrag: true, - yBottom: ybottom - }; - } - return url; - }); - - const newUpdateUrl = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: addSign }; - } - return obj; - }); - setXyPostion(newUpdateUrl); - } - } - } - setTimeout(() => { - setIsDragging(false); - }, 200); - }; - - //function for get pdf page details - const pageDetails = async (pdf) => { - const load = { - status: true - }; - setPdfLoadFail(load); - pdf.getPage(1).then((pdfPage) => { - const pageWidth = pdfPage.view[2]; - - setPdfOriginalWidth(pageWidth); - }); - }; - - //function for change page numver of pdf - function changePage(offset) { - setSignBtnPosition([]); - setPageNumber((prevPageNumber) => prevPageNumber + offset); - } - - //function for image upload or update - const onImageChange = (event) => { - if (event.target.files && event.target.files[0]) { - onImageSelect(event, setImgWH, setImage); - } - }; - - //function for upload stamp or image - const saveImage = () => { - const getImage = onSaveImage(xyPostion, index, signKey, imgWH, image); - setXyPostion(getImage); - }; - - //function for save button to save signature or image url - const saveSign = (isDefaultSign, width, height) => { - const isTypeText = width && height ? true : false; - const signatureImg = isDefaultSign - ? isDefaultSign === "initials" - ? myInitial - : defaultSignImg - : signature; - let imgWH = { width: width ? width : "", height: height ? height : "" }; - setIsSignPad(false); - setIsImageSelect(false); - setImage(); - - if (isDefaultSign) { - const img = new Image(); - img.src = defaultSignImg; - if (img.complete) { - imgWH = { - width: img.width, - height: img.height - }; - } - } - const getUpdatePosition = onSaveSign( - xyPostion, - index, - signKey, - signatureImg, - imgWH, - isDefaultSign, - isTypeText - ); - - setXyPostion(getUpdatePosition); - }; - //function for capture position on hover signature button - const handleDivClick = (e) => { - const divRect = e.currentTarget.getBoundingClientRect(); - const mouseX = e.clientX - divRect.left; - const mouseY = e.clientY - divRect.top; - - const xyPosition = { - xPos: mouseX, - yPos: mouseY - }; - - setXYSignature(xyPosition); - }; - - //function for capture position of x and y on hover signature button last position - const handleMouseLeave = (e) => { - setSignBtnPosition([xySignature]); - }; - - const handleAllDelete = () => { - setXyPostion([]); - }; - - //function for delete signature block - const handleDeleteSign = (key) => { - const updateResizeData = []; - - let filterData = xyPostion[index].pos.filter((data) => data.key !== key); - - //delete and update block position - if (filterData.length > 0) { - updateResizeData.push(filterData); - const newUpdatePos = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: updateResizeData[0] }; - } - return obj; - }); - - setXyPostion(newUpdatePos); - } else { - const getRemainPage = xyPostion.filter( - (data) => data.pageNumber !== pageNumber - ); - - if (getRemainPage && getRemainPage.length > 0) { - setXyPostion(getRemainPage); - } else { - setXyPostion([]); - } - } - }; - - const handleDontShow = (isChecked) => { - setIsDontShow(isChecked); - }; - const tourConfig = [ - { - selector: '[data-tut="reactourFirst"]', - content: () => ( - <TourContentWithBtn - message={`Drag the signature or stamp placeholder onto the PDF to choose your desired signing location.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourSecond"]', - content: () => ( - <TourContentWithBtn - message={`Drag and drop anywhere in this area. You can resize and move it later.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" } - } - ]; - - //function for update TourStatus - const closeTour = async () => { - setSignTour(false); - if (isDontShow) { - let updatedTourStatus = []; - if (tourStatus.length > 0) { - updatedTourStatus = [...tourStatus]; - const signyourselfIndex = tourStatus.findIndex( - (obj) => obj["signyourself"] === false || obj["signyourself"] === true - ); - if (signyourselfIndex !== -1) { - updatedTourStatus[signyourselfIndex] = { signyourself: true }; - } else { - updatedTourStatus.push({ signyourself: true }); - } - } else { - updatedTourStatus = [{ signyourself: true }]; - } - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}${contractName}/${signerUserId}`, - { - TourStatus: updatedTourStatus - }, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - // const json = Listdata.data; - }) - .catch((err) => { - console.log("axois err ", err); - }); - } - }; - - const handleSaveWidgetsOptions = ( - dropdownName, - dropdownOptions, - minCount, - maxCount, - isReadOnly, - addOption, - deleteOption - ) => { - const getPageNumer = xyPostion.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - const getPosData = getXYdata; - const addSignPos = getPosData.map((position) => { - if (position.key === signKey) { - if (addOption) { - return { - ...position, - Height: position.Height - ? position.Height + 15 - : defaultWidthHeight(widgetType).height + 15 - }; - } else if (deleteOption) { - return { - ...position, - Height: position.Height - ? position.Height - 15 - : defaultWidthHeight(widgetType).height - 15 - }; - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - values: dropdownOptions, - isReadOnly: isReadOnly, - response: [] - } - }; - } - } - return position; - }); - const updateXYposition = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - setXyPostion(updateXYposition); - } - }; - - return ( - <DndProvider backend={HTML5Backend}> - <Title title={"Self Sign"} /> - {isLoading.isLoad ? ( - <Loader isLoading={isLoading} /> - ) : handleError ? ( - <HandleError handleError={handleError} /> - ) : noData ? ( - <Nodata /> - ) : ( - <div> - {isUiLoading && ( - <div - style={{ - position: "absolute", - height: "100vh", - width: "100%", - display: "flex", - justifyContent: "center", - flexDirection: "column", - alignItems: "center", - zIndex: "999", - backgroundColor: "#e6f2f2", - opacity: 0.8 - }} - > - <img - alt="no img" - src={loader} - style={{ width: "100px", height: "100px" }} - /> - <span style={{ fontSize: "13px", fontWeight: "bold" }}> - This might take some time - </span> - </div> - )} - - <div className="signatureContainer" ref={divRef}> - {/* this component used for UI interaction and show their functionality */} - {pdfLoadFail && !checkTourStatus && ( - <Tour - onRequestClose={closeTour} - steps={tourConfig} - isOpen={signTour} - rounded={5} - closeWithMask={false} - /> - )} - - {/* this component used to render all pdf pages in left side */} - - <RenderAllPdfPage - pdfUrl={pdfUrl} - signPdfUrl={pdfDetails[0] && pdfDetails[0].URL} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - setSignBtnPosition={setSignBtnPosition} - pageNumber={pageNumber} - /> - - {/* pdf render view */} - <div - style={{ - marginLeft: !isMobile && pdfOriginalWidth > 500 && "20px", - marginRight: !isMobile && pdfOriginalWidth > 500 && "20px" - }} - > - <ModalUi - headerColor={"#dc3545"} - isOpen={isAlert.isShow} - title={"Alert"} - handleClose={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{isAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - </div> - </ModalUi> - - {/* this modal is used show this document is already sign */} - <ModalUi - isOpen={showAlreadySignDoc.status} - title={"Sign Documents"} - handleClose={() => { - setShowAlreadySignDoc({ status: false }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{showAlreadySignDoc.mssg}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - className="finishBtn cancelBtn" - onClick={() => setShowAlreadySignDoc({ status: false })} - > - Close - </button> - </div> - </ModalUi> - <DropdownWidgetOption - type="checkbox" - title="Checkbox" - showDropdown={isCheckbox} - setShowDropdown={setIsCheckbox} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - isSignYourself={true} - /> - <PlaceholderCopy - isPageCopy={isPageCopy} - setIsPageCopy={setIsPageCopy} - xyPostion={xyPostion} - setXyPostion={setXyPostion} - allPages={allPages} - pageNumber={pageNumber} - signKey={signKey} - /> - {/* this is modal of signature pad */} - <SignPad - isSignPad={isSignPad} - isStamp={isStamp} - setIsImageSelect={setIsImageSelect} - setIsSignPad={setIsSignPad} - setImage={setImage} - isImageSelect={isImageSelect} - imageRef={imageRef} - onImageChange={onImageChange} - setSignature={setSignature} - image={image} - onSaveImage={saveImage} - onSaveSign={saveSign} - defaultSign={defaultSignImg} - myInitial={myInitial} - isInitial={isInitial} - setIsInitial={setIsInitial} - setIsStamp={setIsStamp} - widgetType={widgetType} - /> - {/*render email component to send email after finish signature on document */} - <EmailComponent - isEmail={isEmail} - pdfUrl={pdfUrl} - isCeleb={isCeleb} - setIsEmail={setIsEmail} - pdfName={pdfDetails[0] && pdfDetails[0].Name} - setSuccessEmail={setSuccessEmail} - sender={jsonSender} - setIsAlert={setIsAlert} - /> - {/* pdf header which contain funish back button */} - <Header - pageNumber={pageNumber} - allPages={allPages} - changePage={changePage} - pdfUrl={pdfUrl} - documentStatus={documentStatus} - embedWidgetsData={embedWidgetsData} - pdfDetails={pdfDetails} - isShowHeader={true} - currentSigner={true} - alreadySign={pdfUrl ? true : false} - isSignYourself={true} - setIsEmail={setIsEmail} - /> - - <div data-tut="reactourSecond"> - {containerWH && ( - <RenderPdf - pageNumber={pageNumber} - pdfOriginalWidth={pdfOriginalWidth} - pdfNewWidth={pdfNewWidth} - drop={drop} - successEmail={successEmail} - nodeRef={nodeRef} - handleTabDrag={handleTabDrag} - handleStop={handleStop} - isDragging={isDragging} - setIsSignPad={setIsSignPad} - setIsStamp={setIsStamp} - handleDeleteSign={handleDeleteSign} - setSignKey={setSignKey} - pdfDetails={pdfDetails} - setIsDragging={setIsDragging} - xyPostion={xyPostion} - pdfRef={pdfRef} - pdfUrl={pdfUrl} - numPages={numPages} - pageDetails={pageDetails} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - setXyPostion={setXyPostion} - index={index} - containerWH={containerWH} - setIsPageCopy={setIsPageCopy} - setIsInitial={setIsInitial} - setWidgetType={setWidgetType} - setSelectWidgetId={setSelectWidgetId} - selectWidgetId={selectWidgetId} - setIsCheckbox={setIsCheckbox} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - )} - </div> - </div> - - {/*if document is not completed then render signature and stamp button in the right side */} - {/*else document is completed then render signed by signer name in the right side */} - <div - style={{ maxHeight: window.innerHeight - 70 + "px",backgroundColor:"white" }} - className="autoSignScroll" - > - {!documentStatus.isCompleted ? ( - <div> - <FieldsComponent - dataTut="reactourFirst" - pdfUrl={pdfUrl} - dragSignature={dragSignature} - signRef={signRef} - handleDivClick={handleDivClick} - handleMouseLeave={handleMouseLeave} - isDragSign={isDragSign} - themeColor={themeColor} - dragStamp={dragStamp} - dragRef={dragRef} - isDragStamp={isDragStamp} - handleAllDelete={handleAllDelete} - xyPostion={xyPostion} - isSignYourself={true} - addPositionOfSignature={addPositionOfSignature} - isMailSend={false} - /> - </div> - ) : ( - <div> - <Signedby pdfDetails={pdfDetails[0]} /> - </div> - )} - </div> - </div> - </div> - )} - </DndProvider> - ); -} - -export default SignYourSelf; diff --git a/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js b/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js deleted file mode 100644 index c4351b7c6..000000000 --- a/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js +++ /dev/null @@ -1,1505 +0,0 @@ -import React, { useEffect, useState, useRef } from "react"; -import RenderAllPdfPage from "./component/renderAllPdfPage"; -import { useParams, useNavigate } from "react-router-dom"; -import axios from "axios"; -import "../css/./signature.css"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { useDrag, useDrop } from "react-dnd"; -import FieldsComponent from "./component/fieldsComponent"; -import Tour from "reactour"; -import Loader from "./component/loader"; -import HandleError from "./component/HandleError"; -import Nodata from "./component/Nodata"; -import SignerListPlace from "./component/signerListPlace"; -import Header from "./component/header"; -import NameModal from "./WidgetComponent/NameModal"; -import { - pdfNewWidthFun, - contractUsers, - getHostUrl, - randomId, - addZIndex, - createDocument, - defaultWidthHeight, - addWidgetOptions -} from "../utils/Utils"; -import RenderPdf from "./component/renderPdf"; -import "../css/AddUser.css"; -import Title from "./component/Title"; -import LinkUserModal from "./component/LinkUserModal"; -import EditTemplate from "./component/EditTemplate"; -import ModalUi from "../premitives/ModalUi"; -import AddRoleModal from "./component/AddRoleModal"; -import PlaceholderCopy from "./component/PlaceholderCopy"; -import ModalComponent from "./component/modalComponent"; -import TourContentWithBtn from "../premitives/TourContentWithBtn"; -import DropdownWidgetOption from "./WidgetComponent/dropdownWidgetOption"; -const TemplatePlaceholder = () => { - const navigate = useNavigate(); - const { templateId } = useParams(); - const [pdfDetails, setPdfDetails] = useState([]); - const [isMailSend, setIsMailSend] = useState(false); - const [allPages, setAllPages] = useState(null); - const numPages = 1; - const [pageNumber, setPageNumber] = useState(1); - const [signBtnPosition, setSignBtnPosition] = useState([]); - const [xySignature, setXYSignature] = useState({}); - const [dragKey, setDragKey] = useState(); - const [signersdata, setSignersData] = useState([]); - const [signerObjId, setSignerObjId] = useState(); - const [signerPos, setSignerPos] = useState([]); - const [isSelectListId, setIsSelectId] = useState(); - const [isSendAlert, setIsSendAlert] = useState(false); - const [isCreateDocModal, setIsCreateDocModal] = useState(false); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [handleError, setHandleError] = useState(); - const [currentEmail, setCurrentEmail] = useState(); - const [pdfNewWidth, setPdfNewWidth] = useState(); - const [templateTour, setTemplateTour] = useState(true); - const [checkTourStatus, setCheckTourStatus] = useState(false); - const [tourStatus, setTourStatus] = useState([]); - const [signerUserId, setSignerUserId] = useState(); - const [noData, setNoData] = useState(false); - const [pdfOriginalWidth, setPdfOriginalWidth] = useState(); - const [contractName, setContractName] = useState(""); - const [containerWH, setContainerWH] = useState(); - const signRef = useRef(null); - const dragRef = useRef(null); - const divRef = useRef(null); - const [isShowEmail, setIsShowEmail] = useState(false); - const [selectedEmail, setSelectedEmail] = useState(false); - const [isResize, setIsResize] = useState(false); - const [isSigners, setIsSigners] = useState(false); - const [zIndex, setZIndex] = useState(1); - const [showDropdown, setShowDropdown] = useState(false); - const [widgetType, setWidgetType] = useState(""); - const [isRadio, setIsRadio] = useState(false); - const [selectWidgetId, setSelectWidgetId] = useState(""); - const [isNameModal, setIsNameModal] = useState(false); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const color = [ - "#93a3db", - "#e6c3db", - "#c0e3bc", - "#bce3db", - "#b8ccdb", - "#ceb8db", - "#ffccff", - "#99ffcc", - "#cc99ff", - "#ffcc99", - "#66ccff", - "#ffffcc" - ]; - const isMobile = window.innerWidth < 767; - const [, drop] = useDrop({ - accept: "BOX", - drop: (item, monitor) => addPositionOfSignature(item, monitor), - collect: (monitor) => ({ - isOver: !!monitor.isOver() - }) - }); - const [{ isDragSign }, dragSignature] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 1, - text: "signature" - }, - collect: (monitor) => ({ - isDragSign: !!monitor.isDragging() - }) - }); - const [{ isDragStamp }, dragStamp] = useDrag({ - type: "BOX", - - item: { - type: "BOX", - id: 2, - text: "stamp" - }, - collect: (monitor) => ({ - isDragStamp: !!monitor.isDragging() - }) - }); - const [uniqueId, setUniqueId] = useState(""); - const [isModalRole, setIsModalRole] = useState(false); - const [roleName, setRoleName] = useState(""); - const [isAddUser, setIsAddUser] = useState({}); - const [isCreateDoc, setIsCreateDoc] = useState(false); - const [isEditTemplate, setIsEditTemplate] = useState(false); - const [isPageCopy, setIsPageCopy] = useState(false); - const [signKey, setSignKey] = useState(); - const [IsReceipent, setIsReceipent] = useState(true); - const [isDontShow, setIsDontShow] = useState(false); - const [isDragging, setIsDragging] = useState(false); - const [currWidgetsDetails, setCurrWidgetsDetails] = useState([]); - const [isCheckbox, setIsCheckbox] = useState(false); - const [widgetName, setWidgetName] = useState(false); - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - useEffect(() => { - fetchTemplate(); - }, []); - - useEffect(() => { - if (divRef.current) { - const pdfWidth = pdfNewWidthFun(divRef); - setPdfNewWidth(pdfWidth); - setContainerWH({ - width: divRef.current.offsetWidth, - height: divRef.current.offsetHeight - }); - } - }, [divRef.current]); - - // `fetchTemplate` function in used to get Template from server and setPlaceholder ,setSigner if present - const fetchTemplate = async () => { - try { - const params = { templateId: templateId }; - const templateDeatils = await axios.post( - `${localStorage.getItem("baseUrl")}functions/getTemplate`, - params, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessiontoken: localStorage.getItem("accesstoken") - } - } - ); - const documentData = - templateDeatils.data && templateDeatils.data.result - ? [templateDeatils.data.result] - : []; - - if (documentData && documentData.length > 0) { - setPdfDetails(documentData); - setIsSigners(true); - if (documentData[0].Signers && documentData[0].Signers.length > 0) { - setSignerObjId(documentData[0].Signers[0].objectId); - setContractName(documentData[0].Signers[0].className); - setIsSelectId(0); - if ( - documentData[0].Placeholders && - documentData[0].Placeholders.length > 0 - ) { - setSignerPos(documentData[0].Placeholders); - let signers = [...documentData[0].Signers]; - let updatedSigners = documentData[0].Placeholders.map((x) => { - let matchingSigner = signers.find( - (y) => x.signerObjId && x.signerObjId === y.objectId - ); - - if (matchingSigner) { - return { - ...matchingSigner, - Role: x.Role ? x.Role : matchingSigner.Role, - Id: x.Id, - blockColor: x.blockColor - }; - } else { - return { - Role: x.Role, - Id: x.Id, - blockColor: x.blockColor - }; - } - }); - setSignersData(updatedSigners); - setUniqueId(updatedSigners[0].Id); - } else { - const updatedSigners = documentData[0].Signers.map((x, index) => ({ - ...x, - Id: randomId(), - Role: "User " + (index + 1) - })); - setSignersData(updatedSigners); - setUniqueId(updatedSigners[0].Id); - } - } else { - setRoleName("User 1"); - if ( - documentData[0].Placeholders && - documentData[0].Placeholders.length > 0 - ) { - let updatedSigners = documentData[0].Placeholders.map((x) => { - return { - Role: x.Role, - Id: x.Id, - blockColor: x.blockColor - }; - }); - setSignerPos(documentData[0].Placeholders); - setUniqueId(updatedSigners[0].Id); - setSignersData(updatedSigners); - setIsSelectId(0); - } - } - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else { - setNoData(true); - - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - } catch (err) { - console.log("err ", err); - if (err?.response?.data?.code === 101) { - setHandleError("Error: Template not found!"); - } else { - setHandleError("Error: Something went wrong!"); - } - } - const res = await contractUsers(jsonSender.email); - if (res[0] && res.length) { - setSignerUserId(res[0].objectId); - setCurrentEmail(res[0].Email); - const tourstatus = res[0].TourStatus && res[0].TourStatus; - if (tourstatus && tourstatus.length > 0) { - setTourStatus(tourstatus); - const checkTourRecipients = tourstatus.filter( - (data) => data.templatetour - ); - if (checkTourRecipients && checkTourRecipients.length > 0) { - setCheckTourStatus(checkTourRecipients[0].templatetour); - } - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if (res === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else if (res.length === 0) { - setNoData(true); - - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - }; - - //function for setting position after drop signature button over pdf - const addPositionOfSignature = (item, monitor) => { - if (item && item.text) { - setWidgetName(item.text); - } - getSignerPos(item, monitor); - }; - - // `getSignerPos` is used to get placeholder position when user place it and save it in array - const getSignerPos = (item, monitor) => { - if (uniqueId) { - const signer = signersdata.find((x) => x.Id === uniqueId); - if (signer) { - const posZIndex = zIndex + 1; - setZIndex(posZIndex); - const newWidth = containerWH.width; - const scale = pdfOriginalWidth / newWidth; - const key = randomId(); - // let filterSignerPos = signerPos.filter( - // (data) => data.signerObjId === signerObjId - // ); - let filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - const dragTypeValue = item?.text ? item.text : monitor.type; - let dropData = []; - let placeHolder; - if (item === "onclick") { - const dropObj = { - //onclick put placeholder center on pdf - xPosition: window.innerWidth / 2 - 150, - yPosition: window.innerHeight / 2 - 60, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - scale: scale, - isMobile: isMobile, - zIndex: posZIndex, - type: dragTypeValue, - options: addWidgetOptions(dragTypeValue) - }; - dropData.push(dropObj); - placeHolder = { - pageNumber: pageNumber, - pos: dropData - }; - } else { - const offset = monitor.getClientOffset(); - //adding and updating drop position in array when user drop signature button in div - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - const x = offset.x - containerRect.left; - const y = offset.y - containerRect.top; - const dropObj = { - xPosition: signBtnPosition[0] ? x - signBtnPosition[0].xPos : x, - yPosition: signBtnPosition[0] ? y - signBtnPosition[0].yPos : y, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - scale: scale, - isMobile: isMobile, - zIndex: posZIndex, - type: item.text, - options: addWidgetOptions(dragTypeValue) - }; - - dropData.push(dropObj); - placeHolder = { - pageNumber: pageNumber, - pos: dropData - }; - } - const { blockColor, Role } = signer; - //adding placholder in existing signer pos array (placaholder) - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - const updatePlace = getPlaceHolder.filter( - (data) => data.pageNumber !== pageNumber - ); - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - //add entry of position for same signer on multiple page - if (getPageNumer.length > 0) { - const getPos = getPageNumer[0].pos; - const newSignPos = getPos.concat(dropData); - let xyPos = { - pageNumber: pageNumber, - pos: newSignPos - }; - updatePlace.push(xyPos); - const updatesignerPos = signerPos.map((x) => - x.Id === uniqueId ? { ...x, placeHolder: updatePlace } : x - ); - setSignerPos(updatesignerPos); - } else { - const updatesignerPos = signerPos.map((x) => - x.Id === uniqueId - ? { ...x, placeHolder: [...x.placeHolder, placeHolder] } - : x - ); - setSignerPos(updatesignerPos); - } - } else { - //adding new placeholder for selected signer in pos array (placeholder) - let placeHolderPos; - if (contractName) { - placeHolderPos = { - signerPtr: { - __type: "Pointer", - className: `${contractName}`, - objectId: signerObjId - }, - signerObjId: signerObjId, - blockColor: blockColor ? blockColor : color[isSelectListId], - placeHolder: [placeHolder], - Role: Role ? Role : roleName, - Id: uniqueId - }; - } else { - placeHolderPos = { - signerPtr: {}, - signerObjId: "", - blockColor: blockColor ? blockColor : color[isSelectListId], - placeHolder: [placeHolder], - Role: Role ? Role : roleName, - Id: uniqueId - }; - } - setSignerPos((prev) => [...prev, placeHolderPos]); - } - - if (dragTypeValue === "dropdown") { - setShowDropdown(true); - } else if (dragTypeValue === "checkbox") { - setIsCheckbox(true); - } else if (dragTypeValue === "radio") { - setIsRadio(true); - } else if(dragTypeValue !== 'label' && dragTypeValue !== 'signature') { - setIsNameModal(true); - } - setCurrWidgetsDetails(""); - setWidgetType(dragTypeValue); - setSignKey(key); - setSelectWidgetId(key); - - setIsMailSend(false); - } else { - setIsReceipent(false); - } - } - }; - - //function for get pdf page details - const pageDetails = async (pdf) => { - const load = { - status: true - }; - setPdfLoadFail(load); - pdf.getPage(1).then((pdfPage) => { - const pageWidth = pdfPage.view[2]; - setPdfOriginalWidth(pageWidth); - }); - }; - //function for save x and y position and show signature tab on that position - const handleTabDrag = (key) => { - setDragKey(key); - setIsDragging(true); - }; - - //function for set and update x and y postion after drag and drop signature tab - const handleStop = (event, dragElement, signerId, key) => { - if (!isResize && isDragging) { - const dataNewPlace = addZIndex(signerPos, key, setZIndex); - let updateSignPos = [...signerPos]; - updateSignPos.splice(0, updateSignPos.length, ...dataNewPlace); - // signerPos.splice(0, signerPos.length, ...dataNewPlace); - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - const signId = signerId; //? signerId : signerObjId; - const keyValue = key ? key : dragKey; - const ybottom = containerRect.height - dragElement.y; - - if (keyValue >= 0) { - const filterSignerPos = updateSignPos.filter( - (data) => data.Id === signId - ); - - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - - const getPosData = getXYdata; - const addSignPos = getPosData.map((url, ind) => { - if (url.key === keyValue) { - return { - ...url, - xPosition: dragElement.x, - yPosition: dragElement.y, - isDrag: true, - yBottom: ybottom - }; - } - return url; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = updateSignPos.map((obj, ind) => { - if (obj.Id === signId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - - setSignerPos(newUpdateSigner); - } - } - } - } - setIsMailSend(false); - setTimeout(() => { - setIsDragging(false); - }, 200); - }; - - //function for delete signature block - const handleDeleteSign = (key, Id) => { - const updateData = []; - // const filterSignerPos = signerPos.filter( - // (data) => data.signerObjId === signerId - // ); - - const filterSignerPos = signerPos.filter((data) => data.Id === Id); - - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos.filter( - (data, ind) => data.key !== key - ); - - if (getXYdata.length > 0) { - updateData.push(getXYdata); - const newUpdatePos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: updateData[0] }; - } - return obj; - }); - - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === Id) { - return { ...obj, placeHolder: newUpdatePos }; - } - return obj; - }); - - setSignerPos(newUpdateSigner); - } else { - const updateFilter = signerPos.filter((data) => data.Id !== Id); - const getRemainPage = filterSignerPos[0].placeHolder.filter( - (data) => data.pageNumber !== pageNumber - ); - - if (getRemainPage && getRemainPage.length > 0) { - const newUpdatePos = filterSignerPos.map((obj, ind) => { - if (obj.Id === Id) { - return { ...obj, placeHolder: getRemainPage }; - } - return obj; - }); - let signerupdate = []; - signerupdate = signerPos.filter((data) => data.Id !== Id); - signerupdate.push(newUpdatePos[0]); - - setSignerPos(signerupdate); - } else { - setSignerPos(updateFilter); - } - } - } - } - }; - - //function for change page - function changePage(offset) { - setSignBtnPosition([]); - setPageNumber((prevPageNumber) => prevPageNumber + offset); - } - - //function for capture position on hover signature button - const handleDivClick = (e) => { - const divRect = e.currentTarget.getBoundingClientRect(); - const mouseX = e.clientX - divRect.left; - const mouseY = e.clientY - divRect.top; - - const xyPosition = { - xPos: mouseX, - yPos: mouseY - }; - - setXYSignature(xyPosition); - }; - - //function for capture position of x and y on hover signature button last position - const handleMouseLeave = (e) => { - setSignBtnPosition([xySignature]); - }; - - const alertSendEmail = async () => { - if (signerPos.length !== signersdata.length) { - setIsSendAlert(true); - } else { - handleSaveTemplate(); - } - }; - const handleSaveTemplate = async () => { - if (signersdata?.length) { - const loadObj = { - isLoad: true, - message: "This might take some time" - }; - setIsLoading(loadObj); - setIsSendAlert(false); - let signers = []; - if (signersdata?.length > 0) { - signersdata.forEach((x) => { - if (x.objectId) { - const obj = { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: x.objectId - }; - signers.push(obj); - } - }); - } - try { - const data = { - Placeholders: signerPos, - Signers: signers, - Name: pdfDetails[0]?.Name || "", - Note: pdfDetails[0]?.Note || "", - Description: pdfDetails[0]?.Description || "", - SendinOrder: pdfDetails[0]?.SendinOrder || false - }; - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Template/${templateId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - setIsCreateDocModal(true); - setIsMailSend(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - }) - .catch((err) => { - console.log("axois err ", err); - }); - } catch (e) { - console.log("error", e); - } - } else { - setIsReceipent(false); - } - }; - - const handleDontShow = (isChecked) => { - setIsDontShow(isChecked); - }; - - //here you can add your messages in content and selector is key of particular steps - const tourConfig = [ - { - selector: '[data-tut="reactourAddbtn"]', - content: () => ( - <TourContentWithBtn - message={`Clicking "Add role" button will allow you to add various signer roles. You can attach users to each role in subsequent steps.`} - isChecked={handleDontShow} - /> - ), - position: "top", - observe: '[data-tut="reactourAddbtn--observe"]', - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourFirst"]', - content: () => ( - <TourContentWithBtn - message={`Select a role from this list to add a place-holder where he is supposed to sign.The placeholder will appear in the same colour as the recipient name once you drop it on the document.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" }, - action: () => handleCloseRoleModal() - }, - { - selector: '[data-tut="reactourSecond"]', - content: () => ( - <TourContentWithBtn - message={`Drag the signature or stamp placeholder onto the PDF to choose your desired signing location.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourThird"]', - content: () => ( - <TourContentWithBtn - message={`Drag the placeholder for a role anywhere on the document.Remember, it will appear in the same colour as the name of the recipient for easy reference.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourFour"]', - content: () => ( - <TourContentWithBtn - message={`Clicking "Save" button will save the template and will ask you for creating new document.`} - isChecked={handleDontShow} - /> - ), - position: "top", - style: { fontSize: "13px" } - } - ]; - - //function for update TourStatus - const closeTour = async () => { - setTemplateTour(false); - if (isDontShow) { - const extUserClass = localStorage.getItem("extended_class"); - let updatedTourStatus = []; - if (tourStatus.length > 0) { - updatedTourStatus = [...tourStatus]; - const templatetourIndex = tourStatus.findIndex( - (obj) => obj["templatetour"] === false || obj["templatetour"] === true - ); - if (templatetourIndex !== -1) { - updatedTourStatus[templatetourIndex] = { templatetour: true }; - } else { - updatedTourStatus.push({ templatetour: true }); - } - } else { - updatedTourStatus = [{ templatetour: true }]; - } - await axios - .put( - `${localStorage.getItem( - "baseUrl" - )}classes/${extUserClass}/${signerUserId}`, - { - TourStatus: updatedTourStatus - }, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - // const json = Listdata.data; - // const res = json.results; - }) - .catch((err) => { - console.log("axois err ", err); - }); - } - }; - - // `handleCreateDocModal` is used to create Document from template when user click on yes from modal - const handleCreateDocModal = async () => { - setIsCreateDocModal(false); - setIsCreateDoc(true); - const hostUrl = getHostUrl(); - // handle create document - const res = await createDocument(pdfDetails, signerPos, signersdata); - if (res.status === "success") { - navigate(`${hostUrl}placeHolderSign/${res.id}`, { - state: { title: "Use Template" } - }); - setIsCreateDoc(false); - } else { - setHandleError("Error: Something went wrong!"); - setIsCreateDoc(false); - } - }; - - // `handleAddSigner` is used to open Add Role Modal - const handleAddSigner = () => { - setIsModalRole(true); - setRoleName(""); - }; - - // `handleAddRole` function is called when use click on add button in addRole modal - // save Role in entry in signerList and user - const handleAddRole = (e) => { - e.preventDefault(); - setSignerObjId(""); - setContractName(""); - const count = signersdata.length > 0 ? signersdata.length + 1 : 1; - const Id = randomId(); - const index = signersdata.length; - const obj = { - Role: roleName || "User " + count, - Id: Id, - blockColor: color[index] - }; - setSignersData((prevArr) => [...prevArr, obj]); - setIsModalRole(false); - setRoleName(""); - setUniqueId(Id); - setIsSelectId(index); - setIsMailSend(false); - }; - // `handleDeleteUser` function is used to delete record and placeholder when user click on delete which is place next user name in recipients list - const handleDeleteUser = (Id) => { - const updateSigner = signersdata - .filter((x) => x.Id !== Id) - .map((x, i) => ({ ...x, blockColor: color[i] })); - setSignersData(updateSigner); - const updatePlaceholderUser = signerPos - .filter((x) => x.Id !== Id) - .map((x, i) => ({ ...x, blockColor: color[i] })); - const index = signersdata.findIndex((x) => x.Id === Id); - if (index === signersdata.length - 1) { - setUniqueId(updateSigner[updateSigner.length - 1]?.Id || ""); - setIsSelectId(index - 1 || 0); - } else { - setUniqueId(updateSigner[index]?.Id || ""); - setIsSelectId(index); - } - - setSignerPos(updatePlaceholderUser); - setIsMailSend(false); - }; - - // `handleLinkUser` is used to open Add/Choose Signer Modal when user can link existing or new User with placeholder - // and update entry in signersList - const handleLinkUser = (id) => { - setIsAddUser({ [id]: true }); - }; - const handleAddUser = (data) => { - const signerPtr = { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: data.objectId - }; - const updatePlaceHolder = signerPos.map((x) => { - if (x.Id === uniqueId) { - return { ...x, signerPtr: signerPtr, signerObjId: data.objectId }; - } - return { ...x }; - }); - setSignerPos(updatePlaceHolder); - - const updateSigner = signersdata.map((x) => { - if (x.Id === uniqueId) { - return { ...x, ...data, className: "contracts_Contactbook" }; - } - return { ...x }; - }); - setSignersData(updateSigner); - setIsMailSend(false); - const index = signersdata.findIndex((x) => x.Id === uniqueId); - setIsSelectId(index); - }; - - // `closePopup` is used to close Add/Choose signer modal - const closePopup = () => { - setIsAddUser({}); - }; - - // `handleRoleChange` function is call when user update Role name from recipients list - const handleRoleChange = (event, roleId) => { - // Update the role when the content changes - const updatedRoles = signersdata.map((role) => - role.Id === roleId ? { ...role, Role: event.target.value } : role - ); - setSignersData(updatedRoles); - const updatedPlaceholder = signerPos.map((role) => - role.Id === roleId ? { ...role, Role: event.target.value } : role - ); - setSignerPos(updatedPlaceholder); - setIsMailSend(false); - }; - - // `handleOnBlur` function is call when user click outside input box - const handleOnBlur = (updateRole, roleId) => { - // Update the role when the content changes - if (!updateRole) { - const updatedRoles = signersdata.map((role) => - role.Id === roleId ? { ...role, Role: roleName } : role - ); - setSignersData(updatedRoles); - const updatedPlaceholder = signerPos?.map((role) => - role.Id === roleId ? { ...role, Role: roleName } : role - ); - setSignerPos(updatedPlaceholder); - } - }; - - const handleEditTemplateModal = () => { - setIsEditTemplate(!isEditTemplate); - }; - - const handleEditTemplateForm = (data) => { - setIsEditTemplate(false); - const updateTemplate = pdfDetails.map((x) => { - return { ...x, ...data }; - }); - setPdfDetails(updateTemplate); - setIsMailSend(false); - }; - - const handleCloseRoleModal = () => { - setIsModalRole(false); - }; - - const handleSaveWidgetsOptions = ( - dropdownName, - dropdownOptions, - minCount, - maxCount, - isReadOnly, - addOption, - deleteOption, - status, - defaultValue - ) => { - const filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - - const getPosData = getXYdata; - const addSignPos = getPosData.map((position, ind) => { - if (position.key === signKey) { - if (widgetType === "radio") { - if (addOption) { - return { - ...position, - - Height: position.Height - ? position.Height + 15 - : defaultWidthHeight(widgetType).height + 15 - }; - } else if (deleteOption) { - return { - ...position, - Height: position.Height - ? position.Height - 15 - : defaultWidthHeight(widgetType).height - 15 - }; - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - values: dropdownOptions, - status: status, - defaultValue: defaultValue - } - }; - } - } else if (widgetType === "checkbox") { - if (addOption) { - return { - ...position, - Height: position.Height - ? position.Height + 15 - : defaultWidthHeight(widgetType).height + 15 - }; - } else if (deleteOption) { - return { - ...position, - Height: position.Height - ? position.Height - 15 - : defaultWidthHeight(widgetType).height - 15 - }; - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - values: dropdownOptions, - validation: { - minRequiredCount: minCount, - maxRequiredCount: maxCount - }, - isReadOnly: isReadOnly - } - }; - } - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - status: status, - values: dropdownOptions, - defaultValue: defaultValue - } - }; - } - } - return position; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === uniqueId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - - setSignerPos(newUpdateSigner); - } - } - }; - - const handleWidgetdefaultdata = (defaultdata) => { - const options = ["email", "number", "text"]; - let inputype; - if (defaultdata.textvalidate) { - inputype = options.includes(defaultdata.textvalidate) - ? defaultdata.textvalidate - : "regex"; - } else { - inputype = "text"; - } - - const filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - const getPosData = getXYdata; - const addSignPos = getPosData.map((position, ind) => { - if (position.key === signKey) { - if (position.type === "text") { - return { - ...position, - options: { - ...position.options, - name: defaultdata?.name || "text", - status: defaultdata?.status || "required", - hint: defaultdata?.hint || "", - defaultValue: defaultdata?.defaultValue || "", - validation: { - type: inputype, - pattern: - inputype === "regex" ? defaultdata.textvalidate : "" - } - } - }; - } else { - return { - ...position, - options: { - ...position.options, - name: defaultdata.name, - status: defaultdata.status, - defaultValue: defaultdata.defaultValue - } - }; - } - } - return position; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === uniqueId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - setSignerPos(newUpdateSigner); - } - } - setCurrWidgetsDetails({}); - handleNameModal(); - }; - const handleNameModal = () => { - setIsNameModal(!isNameModal); - setCurrWidgetsDetails({}) - }; - - return ( - <div> - <Title title={"Template"} /> - <DndProvider backend={HTML5Backend}> - {isLoading.isLoad ? ( - <Loader isLoading={isLoading} /> - ) : handleError ? ( - <HandleError handleError={handleError} /> - ) : noData ? ( - <Nodata /> - ) : ( - <div className="signatureContainer" ref={divRef}> - {/* this component used for UI interaction and show their functionality */} - {!checkTourStatus && ( - //this tour component used in your html component where you want to put - //onRequestClose function to close tour - //steps is defined what will be your messages and style also - //isOpen is takes boolean value to open - <Tour - onRequestClose={closeTour} - steps={tourConfig} - isOpen={templateTour} - rounded={5} - closeWithMask={false} - /> - )} - {/* this component used to render all pdf pages in left side */} - <RenderAllPdfPage - signPdfUrl={pdfDetails[0].URL} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - setSignBtnPosition={setSignBtnPosition} - pageNumber={pageNumber} - /> - - {/* pdf render view */} - <div - style={{ - marginLeft: !isMobile && pdfOriginalWidth > 500 && "20px", - marginRight: !isMobile && pdfOriginalWidth > 500 && "20px" - }} - > - {/* this modal is used show alert set placeholder for all signers before send mail */} - <ModalUi - headerColor={"#dc3545"} - isOpen={isSendAlert} - title={"Fields required"} - handleClose={() => setIsSendAlert(false)} - > - <div style={{ height: "100%", padding: 20 }}> - <p>Please add field for all recipients.</p> - </div> - </ModalUi> - <ModalUi - headerColor={"#dc3545"} - isOpen={!IsReceipent} - title={"Roles"} - handleClose={() => setIsReceipent(true)} - > - <div style={{ height: "100%", padding: 20 }}> - <p>Please add a role</p> - </div> - </ModalUi> - {/* this modal is used show send mail message and after send mail success message */} - <ModalUi - isOpen={isCreateDocModal} - title={"Create Document"} - handleClose={() => setIsCreateDocModal(false)} - > - <div style={{ height: "100%", padding: 20 }}> - <p> - Do you want to create a document using the template you just - created ? - </p> - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - {currentEmail.length > 0 && ( - <> - <button - onClick={() => { - handleCreateDocModal(); - }} - style={{ - background: themeColor(), - color: "white" - }} - type="button" - className="finishBtn" - > - Yes - </button> - <button - onClick={() => { - setIsCreateDocModal(false); - }} - type="button" - className="finishBtn cancelBtn" - > - No - </button> - </> - )} - </div> - </ModalUi> - {isCreateDoc && <Loader isLoading={isLoading} />} - <ModalComponent - isShow={isShowEmail} - type={"signersAlert"} - setIsShowEmail={setIsShowEmail} - /> - <DropdownWidgetOption - type="radio" - title="Radio group" - showDropdown={isRadio} - setShowDropdown={setIsRadio} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - <DropdownWidgetOption - type="checkbox" - title="Checkbox" - showDropdown={isCheckbox} - setShowDropdown={setIsCheckbox} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - <DropdownWidgetOption - type="dropdown" - title="Dropdown options" - showDropdown={showDropdown} - setShowDropdown={setShowDropdown} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - <PlaceholderCopy - isPageCopy={isPageCopy} - setIsPageCopy={setIsPageCopy} - xyPostion={signerPos} - setXyPostion={setSignerPos} - allPages={allPages} - pageNumber={pageNumber} - signKey={signKey} - // signerObjId={signerObjId} - Id={uniqueId} - /> - {/* pdf header which contain funish back button */} - <Header - completeBtnTitle={"Save"} - isPlaceholder={true} - pageNumber={pageNumber} - allPages={allPages} - changePage={changePage} - pdfDetails={pdfDetails} - signerPos={signerPos} - signersdata={signersdata} - isMailSend={isMailSend} - alertSendEmail={alertSendEmail} - isShowHeader={true} - currentSigner={true} - setIsEditTemplate={handleEditTemplateModal} - dataTut4="reactourFour" - /> - <div data-tut="reactourThird"> - {containerWH && ( - <RenderPdf - pageNumber={pageNumber} - pdfOriginalWidth={pdfOriginalWidth} - pdfNewWidth={pdfNewWidth} - pdfDetails={pdfDetails} - signerPos={signerPos} - successEmail={false} - numPages={numPages} - pageDetails={pageDetails} - placeholder={true} - drop={drop} - handleDeleteSign={handleDeleteSign} - handleTabDrag={handleTabDrag} - handleStop={handleStop} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - setSignerPos={setSignerPos} - containerWH={containerWH} - setIsResize={setIsResize} - setZIndex={setZIndex} - handleLinkUser={handleLinkUser} - setUniqueId={setUniqueId} - signersdata={signersdata} - setIsPageCopy={setIsPageCopy} - setSignKey={setSignKey} - setSignerObjId={setSignerObjId} - isDragging={isDragging} - setShowDropdown={setShowDropdown} - setCurrWidgetsDetails={setCurrWidgetsDetails} - setWidgetType={setWidgetType} - setIsRadio={setIsRadio} - setSelectWidgetId={setSelectWidgetId} - selectWidgetId={selectWidgetId} - setIsCheckbox={setIsCheckbox} - handleNameModal={handleNameModal} - /> - )} - </div> - </div> - {/* signature button */} - {isMobile ? ( - <div> - <FieldsComponent - dataTut="reactourFirst" - dataTut2="reactourSecond" - pdfUrl={isMailSend} - dragSignature={dragSignature} - signRef={signRef} - handleDivClick={handleDivClick} - handleMouseLeave={handleMouseLeave} - isDragSign={isDragSign} - themeColor={themeColor} - dragStamp={dragStamp} - dragRef={dragRef} - isDragStamp={isDragStamp} - isSignYourself={false} - addPositionOfSignature={addPositionOfSignature} - signerPos={signerPos} - signersdata={signersdata} - isSelectListId={isSelectListId} - setSignerObjId={setSignerObjId} - setIsSelectId={setIsSelectId} - setContractName={setContractName} - isSigners={isSigners} - setIsShowEmail={setIsShowEmail} - isMailSend={isMailSend} - setSelectedEmail={setSelectedEmail} - selectedEmail={selectedEmail} - handleAddSigner={handleAddSigner} - setUniqueId={setUniqueId} - setRoleName={setRoleName} - handleDeleteUser={handleDeleteUser} - handleRoleChange={handleRoleChange} - handleOnBlur={handleOnBlur} - title={"Roles"} - initial={true} - isTemplateFlow={true} - /> - </div> - ) : ( - <div> - <div className="signerComponent"> - <div - style={{ maxHeight: window.innerHeight - 70 + "px" }} - className="autoSignScroll" - > - <SignerListPlace - signerPos={signerPos} - signersdata={signersdata} - isSelectListId={isSelectListId} - setSignerObjId={setSignerObjId} - setRoleName={setRoleName} - setIsSelectId={setIsSelectId} - setContractName={setContractName} - handleAddSigner={handleAddSigner} - setUniqueId={setUniqueId} - handleDeleteUser={handleDeleteUser} - handleRoleChange={handleRoleChange} - handleOnBlur={handleOnBlur} - title={"Roles"} - /> - <div data-tut="reactourSecond"> - <FieldsComponent - pdfUrl={isMailSend} - dragSignature={dragSignature} - signRef={signRef} - handleDivClick={handleDivClick} - handleMouseLeave={handleMouseLeave} - isDragSign={isDragSign} - themeColor={themeColor} - dragStamp={dragStamp} - dragRef={dragRef} - isDragStamp={isDragStamp} - isSignYourself={false} - addPositionOfSignature={addPositionOfSignature} - title={"Roles"} - initial={true} - isTemplateFlow={true} - /> - </div> - </div> - </div> - </div> - )} - </div> - )} - </DndProvider> - <div data-tut="reactourAddbtn--observe"> - <AddRoleModal - isModalRole={isModalRole} - roleName={roleName} - signersdata={signersdata} - setRoleName={setRoleName} - handleAddRole={handleAddRole} - handleCloseRoleModal={handleCloseRoleModal} - /> - </div> - <div> - <LinkUserModal - handleAddUser={handleAddUser} - isAddUser={isAddUser} - uniqueId={uniqueId} - closePopup={closePopup} - /> - </div> - <ModalUi - title={"Edit Template"} - isOpen={isEditTemplate} - handleClose={handleEditTemplateModal} - > - <EditTemplate - template={pdfDetails?.[0]} - onSuccess={handleEditTemplateForm} - /> - </ModalUi> - <NameModal - widgetName={widgetName} - defaultdata={currWidgetsDetails} - isOpen={isNameModal} - handleClose={handleNameModal} - handleData={handleWidgetdefaultdata} - /> - </div> - ); -}; - -export default TemplatePlaceholder; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/NameModal.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/NameModal.js deleted file mode 100644 index 5d7ccb63a..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/NameModal.js +++ /dev/null @@ -1,284 +0,0 @@ -import React, { useEffect, useState } from "react"; -import ModalUi from "../../premitives/ModalUi"; -import "../../css/AddUser.css"; -import RegexParser from "regex-parser"; - -const NameModal = (props) => { - const [formdata, setFormdata] = useState({ - name: "", - defaultValue: "", - status: "required", - hint: "", - textvalidate: "text" - }); - const [isValid, setIsValid] = useState(true); - const statusArr = ["Required", "Optional"]; - const inputOpt = ["email", "number", "text"]; - - useEffect(() => { - if (props.defaultdata) { - setFormdata({ - name: props.defaultdata?.options?.name || props?.widgetName || "", - defaultValue: props.defaultdata?.options?.defaultValue || "", - status: props.defaultdata?.options?.status || "required", - hint: props.defaultdata?.options?.hint || "", - textvalidate: - props.defaultdata?.options?.validation?.type === "regex" - ? props.defaultdata?.options?.validation?.pattern - : props.defaultdata?.options?.validation?.type || "" - }); - } else { - setFormdata({ - ...formdata, - name: props.defaultdata?.options?.name || props?.widgetName || "", - - }); - } - }, [props.defaultdata, props.widgetName]); - const handleSubmit = (e) => { - e.preventDefault(); - if (props.handleData) { - props.handleData(formdata); - setFormdata({ - name: "", - defaultValue: "", - status: "required", - hint: "", - textvalidate: "text" - }); - } - }; - const handleChange = (e) => { - setFormdata({ ...formdata, [e.target.name]: e.target.value }); - }; - - const handledefaultChange = (e) => { - if (formdata.textvalidate) { - const regexObject = RegexParser(handleValidation(formdata.textvalidate)); - const isValidate = regexObject?.test(e.target.value); - setIsValid(isValidate); - } else { - setIsValid(true); - } - setFormdata({ ...formdata, [e.target.name]: e.target.value }); - }; - - function handleValidation(type) { - switch (type) { - case "email": - return "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/"; - case "number": - return "/^\\d+$/"; - case "text": - return "/^[a-zA-Zs]+$/"; - default: - return type; - } - } - - function handleBlurRegex() { - if (!formdata.textvalidate) { - setFormdata({ ...formdata, textvalidate: "text" }); - } else { - if (formdata.defaultValue) { - const regexObject = RegexParser( - handleValidation(formdata.textvalidate) - ); - const isValidate = regexObject?.test(formdata.defaultValue); - if (isValidate === false) { - setFormdata({ ...formdata, defaultValue: "" }); - } - } - } - } - return ( - <ModalUi - isOpen={props.isOpen} - handleClose={props.handleClose && props.handleClose} - title={"Widget info"} - > - <form onSubmit={handleSubmit} style={{ padding: 20 }}> - <div className="form-section"> - <label htmlFor="name" style={{ fontSize: 13 }}> - Name - <span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - className="addUserInput" - name="name" - value={formdata.name} - onChange={(e) => handleChange(e)} - required - /> - </div> - {(props.defaultdata?.type === "text" || - props.widgetName === "text") && ( - <> - <div className="form-section"> - <label htmlFor="textvalidate" style={{ fontSize: 13 }}> - Validation - </label> - <div - style={{ - display: "flex", - flexDirection: "row", - gap: 10, - marginBottom: "0.5rem" - }} - > - <div style={{ width: "100%", position: "relative" }}> - <input - style={{ - padding: "0.5rem 0.75rem", - width: "92%", - borderWidth: "1px", - borderColor: "#d1d5db", - borderTopLeftRadius: "0.375rem", - borderBottomLeftRadius: "0.375rem", - outline: "none", - fontSize: "0.75rem", - position: "relative", - zIndex: 2 - }} - name="textvalidate" - placeholder="Enter custom expression" - value={formdata.textvalidate} - onChange={(e) => handleChange(e)} - onBlur={() => handleBlurRegex()} - /> - <select - style={{ position: "absolute", left: 0, zIndex: 1 }} - className="addUserInput" - name="textvalidate" - value={formdata.textvalidate} - onChange={(e) => handleChange(e)} - onBlur={() => handleBlurRegex()} - > - <option disabled style={{ fontSize: "13px" }}> - Select... - </option> - {inputOpt.map((data, ind) => { - return ( - <option - style={{ fontSize: "13px" }} - key={ind} - value={data} - > - {data} - </option> - ); - })} - </select> - </div> - </div> - </div> - <div className="form-section"> - <label htmlFor="name" style={{ fontSize: 13 }}> - Default value - </label> - <input - className="addUserInput" - name="defaultValue" - value={formdata.defaultValue} - onChange={(e) => handledefaultChange(e)} - onBlur={() => - isValid === false && - setFormdata({ ...formdata, defaultValue: "" }) - } - /> - {isValid === false ? ( - <p style={{ color: "Red", fontSize: 8 }}> - invalid default value - </p> - ) : ( - <p - style={{ - color: "transparent", - fontSize: 10, - margin: "3px 8px" - }} - > - . - </p> - )} - </div> - </> - )} - <div className="form-section"> - <div - style={{ - display: "flex", - flexDirection: "row", - gap: 10, - marginBottom: "0.5rem" - }} - > - {statusArr.map((data, ind) => { - return ( - <div - key={ind} - style={{ - display: "flex", - flexDirection: "row", - gap: 5, - alignItems: "center" - }} - > - <input - style={{ accentColor: "red", marginRight: "10px" }} - type="radio" - name="status" - onChange={(e) => - setFormdata({ ...formdata, status: data.toLowerCase() }) - } - checked={ - formdata.status.toLowerCase() === data.toLowerCase() - } - /> - <div style={{ fontSize: "13px", fontWeight: "500" }}> - {data} - </div> - </div> - ); - })} - </div> - </div> - {(props.defaultdata?.type === "text" || - props?.widgetName === "text") && ( - <div className="form-section"> - <label htmlFor="hint" style={{ fontSize: 13 }}> - Hint - </label> - <input - className="addUserInput" - name="hint" - value={formdata.hint} - onChange={(e) => handleChange(e)} - /> - </div> - )} - <div - style={{ - height: 1, - backgroundColor: "#b7b3b3", - width: "100%", - marginBottom: "16px" - }} - ></div> - <button - style={{ - color: "white", - padding: "5px 20px", - backgroundColor: "#32a3ac" - }} - type="submit" - className="finishBtn" - > - Save - </button> - </form> - </ModalUi> - ); -}; - -export default NameModal; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/allWidgets.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/allWidgets.js deleted file mode 100644 index 92df47aac..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/allWidgets.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react"; -import { getWidgetType } from "../../utils/Utils"; - -function AllWidgets(props) { - return props.updateWidgets.map((item, ind) => { - return ( - <div key={ind} style={{ marginBottom: "10px" }}> - <div - className="widgets" - onClick={(e) => { - props.addPositionOfSignature && - props.addPositionOfSignature("onclick", item); - }} - ref={(element) => { - if (!props.isMobile) { - item.ref(element); - if (element) { - if (props?.signRef) { - props.signRef.current = element; - } - } - } - }} - onMouseMove={props?.handleDivClick} - onMouseDown={() => { - props?.handleMouseLeave(); - }} - > - {item.ref && getWidgetType(item, props?.marginLeft)} - </div> - </div> - ); - }); -} - -export default AllWidgets; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/dropdownWidgetOption.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/dropdownWidgetOption.js deleted file mode 100644 index c47841bc4..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/dropdownWidgetOption.js +++ /dev/null @@ -1,367 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import ModalUi from "../../premitives/ModalUi"; -function DropdownWidgetOption(props) { - const [dropdownOptionList, setDropdownOptionList] = useState([ - "option-1", - "option-2" - ]); - const [minCount, setMinCount] = useState(0); - const [maxCount, setMaxCount] = useState(0); - const [dropdownName, setDropdownName] = useState(props.type); - const [isReadOnly, setIsReadOnly] = useState(false); - const [status, setStatus] = useState("required"); - const [defaultValue, setDefaultValue] = useState(""); - const statusArr = ["required", "optional"]; - const [defaultCheckbox, setDefaultCheckbox] = useState([]); - - useEffect(() => { - if ( - props.currWidgetsDetails?.options?.name && - props.currWidgetsDetails?.options?.values - ) { - setDropdownName(props.currWidgetsDetails?.options?.name); - setDropdownOptionList(props.currWidgetsDetails?.options?.values); - setMinCount( - props.currWidgetsDetails?.options?.validation?.minRequiredCount - ); - setMaxCount( - props.currWidgetsDetails?.options?.validation?.maxRequiredCount - ); - setIsReadOnly(props.currWidgetsDetails?.options?.isReadOnly); - setStatus(props.currWidgetsDetails?.options?.status || "required"); - setDefaultValue(props.currWidgetsDetails?.options?.defaultValue || ""); - setDefaultCheckbox(props.currWidgetsDetails?.options?.defaultValue|| []); - } else { - setStatus("required"); - } - }, [props.currWidgetsDetails]); - const handleInputChange = (index, value) => { - setDropdownOptionList((prevInputs) => { - const newInputs = [...prevInputs]; - newInputs[index] = value; - return newInputs; - }); - }; - - const handleAddInput = () => { - const flage = true; - setDropdownOptionList((prevInputs) => [...prevInputs, ""]); - props.handleSaveWidgetsOptions(null, null, null, null, null, flage, false); - }; - - const handleDeleteInput = (ind) => { - const flage = true; - const getUpdatedOptions = dropdownOptionList.filter( - (data, index) => index !== ind - ); - setDropdownOptionList(getUpdatedOptions); - props.handleSaveWidgetsOptions(null, null, null, null, null, false, flage); - }; - - - const handleSaveOption = () => { - const defaultData = - defaultCheckbox && defaultCheckbox.length > 0 - ? defaultCheckbox - : defaultValue; - - props.handleSaveWidgetsOptions( - dropdownName, - dropdownOptionList, - minCount, - maxCount, - isReadOnly, - null, - null, - status, - defaultData - ); - props.setShowDropdown(false); - setDropdownOptionList(["option-1", "option-2"]); - setDropdownName(props.type); - props.setCurrWidgetsDetails({}); - setIsReadOnly(false); - setMinCount(0); - setMaxCount(0); - setDefaultCheckbox([]); - setDefaultValue("") - }; - - const handleSetMinMax = (e) => { - const minValue = e.target.value; - if (minValue > dropdownOptionList.length) { - return ""; - } else { - return minValue; - } - }; - - const handleDefaultCheck = (index) => { - const getDefaultCheck = defaultCheckbox.includes(index); - if (getDefaultCheck) { - return true; - } else { - return false; - } - - }; - - return ( - //props.showDropdown - <ModalUi - dropdownModal={"dropdownModal"} - isOpen={props.showDropdown} - title={props.title} - closeOff={true} - > - <div style={{ height: "100%", padding: 20 }}> - - - <form - onSubmit={(e) => { - e.preventDefault(); - handleSaveOption(); - }} - > - <div className="dropdownContainer"> - {["checkbox","radio"].includes(props.type) && !props.isSignYourself && ( - <div> - <input - type="checkbox" - checked={isReadOnly} - onChange={(e) => { - setIsReadOnly(e.target.checked); - }} - /> - - <label style={{ marginLeft: "10px" }}>Is read only</label> - </div> - )} - <label style={{ fontSize: "13px", fontWeight: "600" }}> - Name<span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - required - defaultValue={dropdownName} - value={dropdownName} - onChange={(e) => setDropdownName(e.target.value)} - className="drodown-input" - /> - - - {props.type === "checkbox" && !props.isSignYourself && ( - <> - <label style={{ fontSize: "13px", fontWeight: "600" }}> - Minimun check - </label> - <input - required - defaultValue={0} - value={minCount} - onChange={(e) => { - const count = handleSetMinMax(e); - setMinCount(count); - }} - className="drodown-input" - /> - <label style={{ fontSize: "13px", fontWeight: "600" }}> - Maximum check - </label> - <input - required - defaultValue={0} - value={maxCount} - onChange={(e) => { - const count = handleSetMinMax(e); - setMaxCount(count); - }} - className="drodown-input" - /> - </> - )} - <label - style={{ fontSize: "13px", fontWeight: "600", marginTop: "5px" }} - > - Options - </label> - - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - {dropdownOptionList.map((option, index) => ( - <div - key={index} - style={{ - display: "flex", - flexDirection: "row", - marginBottom: "5px", - alignItems: "center" - }} - > - {props.type === "checkbox" && !props.isSignYourself && ( - <input type="checkbox" - checked={handleDefaultCheck(index)} - onChange={(e) => { - - if (e.target.checked) { - const getDefaultCheck = - defaultCheckbox?.includes(index); - if (!getDefaultCheck) { - setDefaultCheckbox((prev) => [...prev, index]); - } - } else { - const removeOption = defaultCheckbox.filter( - (data) => data !== index - ); - setDefaultCheckbox(removeOption); - } - }} - style={{width:"23px",height:"19px",marginRight:"5px"}} /> - )} - <input - required - className="drodown-input" - type="text" - value={option} - onChange={(e) => handleInputChange(index, e.target.value)} - /> - - <i - className="fa-solid fa-rectangle-xmark" - onClick={() => handleDeleteInput(index)} - style={{ - color: "red", - fontSize: "25px", - marginLeft: "10px" - }} - ></i> - </div> - ))} - - <i - onClick={handleAddInput} - style={{ - cursor: "pointer", - color: themeColor(), - fontSize: "25px", - marginLeft: "10px" - }} - className="fa-solid fa-square-plus" - ></i> - </div> - {["dropdown","radio"].includes(props.type) && ( - <> - <label style={{ fontSize: "13px", fontWeight: "600", marginTop: "5px" }}>Default value</label> - <select - onChange={(e) => setDefaultValue(e.target.value)} - className="drodown-input" - name="defaultvalue" - value={defaultValue} - placeholder="select default value" - > - <option value="" disabled hidden style={{ fontSize: "13px" }}> - Select... - </option> - {dropdownOptionList.map((data, ind) => { - return ( - <option - style={{ fontSize: "13px" }} - key={ind} - value={data} - > - {data} - </option> - ); - })} - </select> - - - </> - )} - {props.type !== "checkbox" && props.type !== 'radio' && ( - <> - <div - style={{ - display: "flex", - flexDirection: "row", - gap: 10, - marginTop: "0.5rem" - }} - > - {statusArr.map((data, ind) => { - return ( - <div - key={ind} - style={{ - display: "flex", - flexDirection: "row", - gap: 5, - alignItems: "center" - }} - > - <input - style={{ accentColor: "red" }} - type="radio" - name="status" - onChange={(e) => setStatus(data.toLowerCase())} - checked={status.toLowerCase() === data.toLowerCase()} - /> - <div style={{ fontSize: "13px", fontWeight: "500" }}> - {data} - </div> - </div> - ); - })} - </div> - </> - )} - </div> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - // onClick={() => handleSaveOption()} - disabled={dropdownOptionList.length === 0 && true} - style={{ - background: themeColor(), - color: "white" - }} - type="submit" - className={"finishBtn"} - > - Save - </button> - {props.currWidgetsDetails?.options?.values?.length > 0 && ( - <button - type="submit" - className="finishBtn cancelBtn" - onClick={() => { - setDropdownOptionList(["option-1", "option-2"]); - setDropdownName(props.type); - props.setCurrWidgetsDetails([]); - props.setShowDropdown(false); - setDefaultCheckbox([]); - setDefaultValue("") - }} - > - Cancel - </button> - )} - </form> - </div> - </ModalUi> - ); -} - -export default DropdownWidgetOption; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/inputValidation.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/inputValidation.js deleted file mode 100644 index a03f0708c..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/inputValidation.js +++ /dev/null @@ -1,131 +0,0 @@ -import React, { useEffect } from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import ModalUi from "../../premitives/ModalUi"; - -function InputValidation(props) { - const options = ["email", "number", "text"]; - useEffect(() => { - if ( - props.currWidgetsDetails?.options?.validation?.pattern || - props.currWidgetsDetails.options?.validation?.type - ) { - props.setHint(props.currWidgetsDetails?.options?.hint || ""); - if (props.currWidgetsDetails.options?.validation.type === "regex") { - props.setTextValidate( - props.currWidgetsDetails.options?.validation?.pattern || "text" - ); - } else { - props.setTextValidate( - props.currWidgetsDetails.options?.validation?.type || "text" - ); - } - } - }, [props.currWidgetsDetails]); - return ( - <ModalUi - isOpen={props.isValidate} - handleClose={() => { - props.setIsValidate(false); - }} - title={"Validation"} - > - <div style={{ height: "100%", padding: "10px 20px" }}> - <div className="validateText"> - <label - style={{ - marginRight: "5px", - fontSize: "14px", - fontWeight: "500" - }} - > - Hint: - </label> - <div style={{ position: "relative" }}> - <input - value={props.hint} - style={{ - position: "absolute", - top: "0", - left: "0", - height: "100%", - padding: 10 - }} - placeholder="Enter hint" - className="drodown-input validateInputText" - onChange={(e) => props.setHint(e.target.value)} - /> - </div> - </div> - </div> - <div style={{ height: "100%", padding: 20 }}> - <div className="validateText"> - <label - style={{ - marginRight: "5px", - fontSize: "14px", - fontWeight: "500" - }} - > - Regular expression: - </label> - <div style={{ position: "relative" }}> - <input - value={props.textValidate} - style={{ - position: "absolute", - top: "0", - left: "0", - height: "100%" - }} - placeholder="Enter custom regular expression" - className="drodown-input validateInputText" - onChange={(e) => props.setTextValidate(e.target.value)} - /> - <select - value="" - className="regxSelect" - onChange={(e) => props.setTextValidate(e.target.value)} - > - <option style={{ fontSize: "13px" }} value=""> - Select... - </option> - {options.map((data, ind) => { - return ( - <option style={{ fontSize: "13px" }} key={ind} value={data}> - {data} - </option> - ); - })} - </select> - </div> - </div> - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => { - props.handleValidateInput(); - props.setHint(""); - props.setTextValidate(""); - }} - style={{ - background: themeColor() - }} - type="button" - // disabled={!selectCopyType} - className="finishBtn" - > - Apply - </button> - </div> - </ModalUi> - ); -} - -export default InputValidation; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholder.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholder.js deleted file mode 100644 index 44f23a98f..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholder.js +++ /dev/null @@ -1,622 +0,0 @@ -import React, { useState, useEffect } from "react"; -import BorderResize from "../component/borderResize"; -import PlaceholderBorder from "./placeholderBorder"; -import { Rnd } from "react-rnd"; -import { defaultWidthHeight, isMobile } from "../../utils/Utils"; -import PlaceholderType from "./placeholderType"; -import moment from "moment"; -import "../LegaDrive/LegaDrive.css"; - -function Placeholder(props) { - const [isDraggingEnabled, setDraggingEnabled] = useState(true); - const [isShowDateFormat, setIsShowDateFormat] = useState(false); - const [selectDate, setSelectDate] = useState({ - date: moment(new Date().getTime()).format("MM/DD/YYYY"), - format: "MM/dd/YYYY" - }); - const [dateFormat, setDateFormat] = useState([]); - const [saveDateFormat, setSaveDateFormat] = useState(""); - const dateFormatArr = [ - "L", - "DD-MM-YYYY", - "YYYY-MM-DD", - "MM.DD.YYYY", - "MM-DD-YYYY", - "MMM DD, YYYY", - "LL", - "DD MMM, YYYY", - "DD MMMM, YYYY" - ]; - - const selectFormat = (data) => { - switch (data) { - case "L": - return "MM/dd/yyyy"; - case "DD-MM-YYYY": - return "dd-MM-yyyy"; - case "DD/MM/YYYY": - return "dd/MM/yyyy"; - case "LL": - return "MMMM dd, yyyy"; - case "DD MMM, YYYY": - return "dd MMM, YYYY"; - case "YYYY-MM-DD": - return "YYYY-MM-dd"; - case "MM-DD-YYYY": - return "MM-dd-YYYY"; - case "MM.DD.YYYY": - return "MM.dd.YYYY"; - case "MMM DD, YYYY": - return "MMM dd, YYYY"; - case "DD MMMM, YYYY": - return "dd MMMM, YYYY"; - default: - return "dd/MM/yyyy"; - } - }; - - //function for add selected date and format in selectFormat - const changeDateFormat = () => { - const updateDate = []; - dateFormatArr.map((data) => { - let date; - if (selectDate.format === "dd-MM-yyyy") { - const [day, month, year] = selectDate.date.split("-"); - date = new Date(`${year}-${month}-${day}`); - } else { - date = new Date(selectDate?.date); - } - const milliseconds = date.getTime(); - const newDate = moment(milliseconds).format(data); - const dateObj = { - date: newDate, - format: selectFormat(data) - }; - updateDate.push(dateObj); - }); - setDateFormat(updateDate); - }; - useEffect(() => { - if (props.isPlaceholder || props.isSignYourself) { - selectDate && changeDateFormat(); - } - }, [selectDate]); - //handle to close drop down menu onclick screen - useEffect(() => { - const closeMenuOnOutsideClick = (e) => { - if (isShowDateFormat && !e.target.closest("#menu-container")) { - setIsShowDateFormat(!isShowDateFormat); - } - }; - document.addEventListener("click", closeMenuOnOutsideClick); - return () => { - // Cleanup the event listener when the component unmounts - document.removeEventListener("click", closeMenuOnOutsideClick); - }; - }, [isShowDateFormat]); - - //onclick placeholder function to open signature pad - const handlePlaceholderClick = () => { - if (props.setSelectWidgetId) { - props.setSelectWidgetId(props.pos.key); - } - - const widgetTypeExist = [ - "text", - "checkbox", - "name", - "company", - "job title", - "date", - "email" - ].includes(props.pos.type); - - if (widgetTypeExist) { - setDraggingEnabled(false); - } - if ((props.isNeedSign || props.isSignYourself) && !props.isDragging) { - if (props.pos.type) { - if ( - props.pos.type === "signature" || - props.pos.type === "stamp" || - props.pos.type === "image" - ) { - props.setIsSignPad(true); - props.setSignKey(props.pos.key); - props.setIsStamp(props.pos.isStamp); - } else if (props.pos.type === "initials") { - props.setIsSignPad(true); - props.setSignKey(props.pos.key); - props.setIsStamp(props.pos.isStamp); - props.setIsInitial(true); - } - } else { - props.setIsSignPad(true); - props.setSignKey(props.pos.key); - props.setIsStamp(props.pos?.isStamp ? props.pos.isStamp : false); - } - } else if ( - props.isPlaceholder && - !props.isDragging && - props.pos.type !== "label" - ) { - if (props.pos.key === props.selectWidgetId) { - props.handleLinkUser(props.data.Id); - props.setUniqueId(props.data.Id); - } - } else if (!props.pos.type) { - if ( - !props.pos.type && - props.isNeedSign && - props.data.signerObjId === props.signerObjId - ) { - props.setIsSignPad(true); - props.setSignKey(props.pos.key); - props.setIsStamp(props.pos.isStamp); - } else if ( - (props.isNeedSign && props.pos.type === "signature") || - props.pos.type === "stamp" - ) { - props.setIsSignPad(true); - props.setSignKey(props.pos.key); - props.setIsStamp(props.pos.isStamp); - } else if (props.isNeedSign && props.pos.type === "dropdown") { - props.setSignKey(props.pos.key); - } - } - }; - - const handleWidgetsOnclick = () => { - if (props.pos.type === "radio") { - props.setIsRadio(true); - } else if (props.pos.type === "dropdown") { - props?.setShowDropdown(true); - } else if (props.pos.type === "checkbox") { - props?.setIsCheckbox(true); - } else { - props?.handleNameModal(true); - } - - if(props.isPlaceholder){ - props.setUniqueId(props.data.Id); - } - props.setSignKey(props.pos.key); - props.setWidgetType(props.pos.type); - props.setCurrWidgetsDetails(props.pos); - }; - const PlaceholderIcon = () => { - return ( - props.isShowBorder && ( - <> - {(props.isPlaceholder || props.isSignYourself) && ( - <> - {props.pos.type === 'checkbox' && props.isSignYourself ? - ( - <i - onClick={(e) => { - e.stopPropagation(); - handleWidgetsOnclick(); - }} - onTouchEnd={(e) => { - e.stopPropagation(); - handleWidgetsOnclick(); - }} - className="fa-solid fa-gear settingIcon" - style={{ - color: "#188ae2", - right:'9px', - top: "-28px" - - }} - ></i>): props.pos.type !== "date" && props.pos.type !== 'label' && props.pos.type !== 'signature' && !props.isSignYourself &&( - <i - onClick={(e) => { - e.stopPropagation(); - handleWidgetsOnclick(); - }} - onTouchEnd={(e) => { - e.stopPropagation(); - handleWidgetsOnclick(); - }} - className="fa-solid fa-gear settingIcon" - style={{ - color: "#188ae2", - right: ["checkbox", "radio"].includes(props.pos.type) - ? "24px" - : "47px", - top: ["checkbox", "radio"].includes(props.pos.type) - ? "-28px" - : "-19px" - }} - ></i> - ) - } - - {props.pos.type !== "label" && !props.isSignYourself && ( - <i - data-tut="reactourLinkUser" - className="fa-regular fa-user signUserIcon" - onClick={(e) => { - e.stopPropagation(); - props.handleLinkUser(props.data.Id); - props.setUniqueId(props.data.Id); - }} - onTouchEnd={(e) => { - e.stopPropagation(); - props.handleLinkUser(props.data.Id); - props.setUniqueId(props.data.Id); - }} - style={{ - color: "#188ae2", - right: - props.pos.type === "checkbox" || - props.pos.type === "radio" - ? "8px" - : "32px", - top: - props.pos.type === "checkbox" || - props.pos.type === "radio" - ? "-28px" - : "-18px" - }} - ></i> - - )} - </> - )} - {props.pos.type === "date" && selectDate && ( - <div - id="menu-container" - style={{ - zIndex: "99", - top: "-19px", - right: props.isPlaceholder ? "60px" : "44px" - }} - className={ - isShowDateFormat - ? "dropdown signUserIcon show" - : "dropdown signUserIcon" - } - onClick={(e) => { - setIsShowDateFormat(!isShowDateFormat); - e.stopPropagation(); - if (props.data) { - props.setSignKey(props.pos.key); - props.setUniqueId(props.data.Id); - } - }} - onTouchEnd={(e) => { - e.stopPropagation(); - setIsShowDateFormat(!isShowDateFormat); - if (props.data) { - props.setSignKey(props.pos.key); - props.setUniqueId(props.data.Id); - } - }} - > - <i - className="fa-solid fa-gear settingIcon" - style={{ - color: "#188ae2", - fontSize: "14px" - }} - ></i> - <div - className={ - isShowDateFormat ? "dropdown-menu show" : "dropdown-menu" - } - aria-labelledby="dropdownMenuButton" - aria-expanded={isShowDateFormat ? "true" : "false"} - > - {dateFormat.map((data, ind) => { - return ( - <span - key={ind} - onTouchEnd={(e) => { - e.stopPropagation(); - setIsShowDateFormat(!isShowDateFormat); - setSelectDate(data); - }} - onClick={() => { - setIsShowDateFormat(!isShowDateFormat); - setSelectDate(data); - }} - className="dropdown-item itemColor" - style={{ fontSize: "12px" }} - > - {data?.date ? data?.date : "nodata"} - </span> - ); - })} - </div> - </div> - )} - <i - className="fa-regular fa-copy signCopy" - onClick={(e) => { - if (props.data) { - props.setSignerObjId(props.data.signerObjId); - props.setUniqueId(props.data.Id); - } - e.stopPropagation(); - props.setIsPageCopy(true); - props.setSignKey(props.pos.key); - }} - onTouchEnd={(e) => { - if (props.data) { - props.setSignerObjId(props.data.signerObjId); - props.setUniqueId(props.data.Id); - } - e.stopPropagation(); - props.setIsPageCopy(true); - props.setSignKey(props.pos.key); - }} - style={{ - color: "#188ae2", - right: - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? "-9px" - : "12px", - top: - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? "-28px" - : "-18px" - }} - ></i> - <i - className="fa-regular fa-circle-xmark signCloseBtn" - onClick={(e) => { - e.stopPropagation(); - - if (props.data) { - props.handleDeleteSign(props.pos.key, props.data.Id); - } else { - props.handleDeleteSign(props.pos.key); - props.setIsStamp(false); - } - }} - onTouchEnd={(e) => { - e.stopPropagation(); - if (props.data) { - props.handleDeleteSign(props.pos.key, props.data?.Id); - } else { - props.handleDeleteSign(props.pos.key); - props.setIsStamp(false); - } - }} - style={{ - color: "#188ae2", - right: - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? "-27px" - : "-8px", - top: - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? "-28px" - : "-18px" - }} - ></i> - </> - ) - ); - }; - - return ( - <Rnd - data-tut={props.pos.key === props.unSignedWidgetId ? "IsSigned" : ""} - //ref={nodeRef} - key={props.pos.key} - lockAspectRatio={ - props.pos.Width - ? props.pos.Width / props.pos.Height - : defaultWidthHeight(props.pos.type).width / - defaultWidthHeight(props.pos.type).height - } - enableResizing={{ - top: false, - right: false, - bottom: false, - left: false, - topRight: false, - bottomRight: - props.data && props.isNeedSign - ? props.data?.signerObjId === props.signerObjId && - props.pos.type !== "checkbox" && - props.pos.type !== "radio" - ? true - : false - : props.pos.type !== "radio" && - props.pos.type !== "checkbox" && - props.pos.key === props.selectWidgetId && - true, - bottomLeft: false, - topLeft: false - }} - bounds="parent" - className="signYourselfBlock" - style={{ - border: props.pos.type !== "checkbox" && "1px solid #007bff", - borderRadius: props.pos.type !== "checkbox" && "2px", - textAlign: - props.pos.type !== "name" && - props.pos.type !== "company" && - props.pos.type !== "job title" && - "center", - cursor: - props.data && props.isNeedSign - ? props.data?.signerObjId === props.signerObjId - ? "pointer" - : "not-allowed" - : "all-scroll", - zIndex: - props.pos.type === "date" - ? "99" - : props?.pos?.zIndex - ? props.pos.zIndex - : "5", - background: props.data - ? props.pos.type !== "checkbox" && props.data.blockColor - : props.pos.type !== "checkbox" && "rgb(203 233 237)" - }} - onDrag={() => { - setDraggingEnabled(true); - props.handleTabDrag && props.handleTabDrag(props.pos.key); - }} - size={{ - width: props.posWidth(props.pos, props.isSignYourself), - height: props.posHeight(props.pos, props.isSignYourself) - }} - onResizeStart={() => { - setDraggingEnabled(true); - props.setIsResize && props.setIsResize(true); - }} - onResizeStop={() => { - props.setIsResize && props.setIsResize(false); - }} - disableDragging={ - props.isNeedSign - ? true - : props.isPlaceholder && props.pos.type !== "date" - ? false - : !isDraggingEnabled - } - onDragStop={(event, dragElement) => - props.handleStop && - props.handleStop(event, dragElement, props.data?.Id, props.pos?.key) - } - default={{ - x: props.xPos(props.pos, props.isSignYourself), - y: props.yPos(props.pos, props.isSignYourself) - }} - onResize={(e, direction, ref, delta, position) => { - props.handleSignYourselfImageResize && - props.handleSignYourselfImageResize( - ref, - props.pos.key, - props.xyPostion, - props.setXyPostion, - props.index, - props.data && props.data.Id, - false - ); - }} - onClick={() => { - !props.isNeedSign && props.setWidgetType(props.pos.type); - props.isNeedSign && props.data?.signerObjId === props.signerObjId - ? handlePlaceholderClick() - : props.isPlaceholder - ? handlePlaceholderClick() - : props.isSignYourself && handlePlaceholderClick(); - }} - > - {props.isShowBorder && - props.pos.type !== "radio" && - props.pos.type !== "checkbox" && - props.pos.key === props.selectWidgetId ? ( - <BorderResize - right={ - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? -21 - : -12 - } - top={ - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? -21 - : -11 - } - /> - ) : props.data && props.isNeedSign && props.pos.type !== "checkbox" ? ( - props.data?.signerObjId === props.signerObjId && - props.pos.type !== "radio" && - props.pos.type !== "checkbox" ? ( - <BorderResize /> - ) : ( - <></> - ) - ) : ( - props.pos.type !== "radio" && - props.pos.type !== "checkbox" && - props.pos.key === props.selectWidgetId && <BorderResize /> - )} - - {props.isShowBorder && props.pos.key === props.selectWidgetId && ( - <PlaceholderBorder - setDraggingEnabled={setDraggingEnabled} - pos={props.pos} - isPlaceholder={props.isPlaceholder} - /> - )} - {isMobile ? ( - <div - style={{ - left: props.xPos(props.pos, props.isSignYourself), - top: props.yPos(props.pos, props.isSignYourself), - width: props.posWidth(props.pos, props.isSignYourself), - // height: props.posHeight(props.pos, props.isSignYourself), - zIndex: "10" - }} - onTouchEnd={() => { - !props.isNeedSign && props.setWidgetType(props.pos.type); - props.isNeedSign && props.data?.signerObjId === props.signerObjId - ? handlePlaceholderClick() - : props.isPlaceholder - ? handlePlaceholderClick() - : props.isSignYourself && handlePlaceholderClick(); - }} - > - {props.pos.key === props.selectWidgetId && <PlaceholderIcon />} - - <PlaceholderType - pos={props.pos} - xyPostion={props.xyPostion} - index={props.index} - setXyPostion={props.setXyPostion} - data={props.data} - setSignKey={props.setSignKey} - isShowDropdown={props?.isShowDropdown} - isPlaceholder={props.isPlaceholder} - isSignYourself={props.isSignYourself} - signerObjId={props.signerObjId} - handleUserName={props.handleUserName} - setDraggingEnabled={setDraggingEnabled} - pdfDetails={props?.pdfDetails && props?.pdfDetails[0]} - isNeedSign={props.isNeedSign} - setSelectDate={setSelectDate} - selectDate={selectDate} - setSaveDateFormat={setSaveDateFormat} - saveDateFormat={saveDateFormat} - setValidateAlert={props.setValidateAlert} - /> - </div> - ) : ( - <> - {props.pos.key === props.selectWidgetId && <PlaceholderIcon />} - - <PlaceholderType - pos={props.pos} - xyPostion={props.xyPostion} - index={props.index} - setXyPostion={props.setXyPostion} - data={props.data} - setSignKey={props.setSignKey} - isShowDropdown={props?.isShowDropdown} - isPlaceholder={props.isPlaceholder} - isSignYourself={props.isSignYourself} - signerObjId={props.signerObjId} - handleUserName={props.handleUserName} - setDraggingEnabled={setDraggingEnabled} - pdfDetails={props?.pdfDetails && props?.pdfDetails[0]} - isNeedSign={props.isNeedSign} - setSelectDate={setSelectDate} - selectDate={selectDate} - setSaveDateFormat={setSaveDateFormat} - saveDateFormat={saveDateFormat} - setValidateAlert={props.setValidateAlert} - /> - </> - )} - </Rnd> - ); -} - -export default Placeholder; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderBorder.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderBorder.js deleted file mode 100644 index daf2e6e93..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderBorder.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import { defaultWidthHeight, resizeBorderExtraWidth } from "../../utils/Utils"; -function PlaceholderBorder(props) { - const getResizeBorderExtraWidth = - (props.pos.type === "checkbox" || props.pos.type === "radio") - ? 38 - : resizeBorderExtraWidth(); - const defaultWidth = defaultWidthHeight(props.pos.type).width; - const defaultHeight = defaultWidthHeight(props.pos.type).height; - - return ( - <div - className="borderResize" - style={{ - borderColor: themeColor(), - borderStyle: "dashed", - - width: props.pos.Width - ? props.pos.Width + getResizeBorderExtraWidth - : defaultWidth + getResizeBorderExtraWidth, - height: props.pos.Height - ? props.pos.Height + getResizeBorderExtraWidth - : defaultHeight + getResizeBorderExtraWidth, - borderWidth: "0.2px", - overflow: "hidden" - }} - ></div> - ); -} - -export default PlaceholderBorder; diff --git a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderType.js b/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderType.js deleted file mode 100644 index c7a5d9db8..000000000 --- a/microfrontends/SignDocuments/src/Component/WidgetComponent/placeholderType.js +++ /dev/null @@ -1,749 +0,0 @@ -import React, { useEffect, useState, forwardRef, useRef } from "react"; -import { onChangeInput } from "../../utils/Utils"; -import DatePicker from "react-datepicker"; -import "react-datepicker/dist/react-datepicker.css"; -import "../../css/signature.css"; -import RegexParser from "regex-parser"; - -function PlaceholderType(props) { - const type = props.pos.type; - const [selectOption, setSelectOption] = useState(props.pos?.options?.defaultValue ? props.pos?.options?.defaultValue :""); - const [startDate, setStartDate] = useState(new Date()); - const [validatePlaceholder, setValidatePlaceholder] = useState(""); - const inputRef = useRef(null); - const [textValue, setTextValue] = useState(); - const [selectedCheckbox, setSelectedCheckbox] = useState([]); - - - - - const validateExpression = (regexValidation) => { - let regexObject = regexValidation; - if (props.pos?.options.validation.type === "regex") { - regexObject = RegexParser(regexValidation); - } - // new RegExp(regexValidation); - let isValidate = regexObject.test(textValue); - if (!isValidate) { - props.setValidateAlert(true); - inputRef.current.focus(); - } - }; - - - const handleInputBlur = () => { - props.setDraggingEnabled(true); - const validateType = props.pos?.options?.validation?.type; - - let regexValidation; - if (validateType) { - switch (validateType) { - case "email": - regexValidation = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; - validateExpression(regexValidation); - break; - case "number": - regexValidation = /^\d+$/; - validateExpression(regexValidation); - break; - case "text": - regexValidation = /^[a-zA-Z\s]+$/; - validateExpression(regexValidation); - break; - default: - regexValidation = props.pos?.options.validation.pattern; - validateExpression(regexValidation); - } - } - }; - - const handleTextValid = (e) => { - const textInput = e.target.value; - setTextValue(textInput); - }; - function checkRegularExpress(validateType) { - switch (validateType) { - case "email": - setValidatePlaceholder("demo@gmail.com"); - break; - case "number": - setValidatePlaceholder("12345"); - break; - case "text": - setValidatePlaceholder("enter text"); - break; - default: - setValidatePlaceholder("enter text"); - } - } - useEffect(() => { - if (props.pos?.options?.hint) { - setValidatePlaceholder(props.pos?.options.hint); - } else if (props.pos?.options?.validation?.type) { - checkRegularExpress(props.pos?.options?.validation?.type); - } - }, []); - - useEffect(() => { - if (props.isNeedSign && props.pos.type === "date") { - const updateDate = new Date(); - setStartDate(updateDate); - } - setTextValue(props.pos?.options?.defaultValue ? props.pos?.options?.defaultValue :"") - }, []); - - - - //for handle default checked options - useEffect(() => { - if (props.pos?.type && props.pos.type === "checkbox" && props.isNeedSign) { - const isDefaultValue = props.pos.options?.defaultValue; - setSelectedCheckbox(isDefaultValue); - } - }, []); - useEffect(() => { - if (props.pos?.type && props.pos.type === "date") { - if (props.selectDate) { - let updateDate; - if (props.selectDate.format === "dd-MM-yyyy") { - const [day, month, year] = props.saveDateFormat.split("-"); - updateDate = new Date(`${year}-${month}-${day}`); - } else { - updateDate = new Date(); - } - // const updateDate = new Date(props.saveDateFormat); - setStartDate(updateDate); - const dateObj = { - date: props.saveDateFormat, - format: props.selectDate - ? props.selectDate?.format - : props.pos?.options?.validation?.format - ? props.pos?.options?.validation?.format - : "MM/dd/YYYY" - }; - props.setSelectDate(dateObj); - } - - onChangeInput( - props.saveDateFormat, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data.Id, - false, - props.selectDate?.format - ? props.selectDate.format - : props.pos?.options?.validation?.format - ? props.pos?.options?.validation?.format - : "MM/dd/YYYY" - ); - } - }, [props.saveDateFormat]); - - const dateValue = (value) => { - props.setSaveDateFormat(value); - return <span>{value}</span>; - }; - const ExampleCustomInput = forwardRef(({ value, onClick }, ref) => ( - <div - className="inputPlaceholder" - style={{ overflow: "hidden", fontSize: calculateFontSize() }} - onClick={onClick} - ref={ref} - > - {dateValue(value)} - <i className="fa-regular fa-calendar" style={{ marginLeft: "5px" }}></i> - </div> - )); - - useEffect(() => { - if (props.pos?.type) { - const senderUser = localStorage.getItem(`Extand_Class`); - const jsonSender = JSON.parse(senderUser); - - if (props.isNeedSign && props.data?.signerObjId === props.signerObjId) { - onChangeInput( - jsonSender && jsonSender[0], - null, - props.xyPostion, - null, - props.setXyPostion, - props.data.Id, - true - ); - } - } - }, [type]); - - const calculateFontSize = () => { - const fontSize = 10 + Math.min(props.pos.Width, props.pos.Height) * 0.1; - const size = fontSize ? fontSize : 12; - return size + "px"; - }; - //function for show checked checkbox - const selectCheckbox = (ind) => { - const res = props.pos.options?.response; - const defaultCheck = props.pos.options?.defaultValue; - if (res && res?.length>0) { - const isSelectIndex = res.indexOf(ind); - if (isSelectIndex > -1) { - return true; - } else { - return false; - } - // } - } else if (defaultCheck) { - const isSelectIndex = defaultCheck.indexOf(ind); - if (isSelectIndex > -1) { - return true; - } else { - return false; - } - } else { - return false; - } - }; - - const handleRadioCheck =(data)=>{ - const defaultData = props.pos.options?.defaultValue; - if(textValue === data){ - return true; - }else if(defaultData ===data) - { - return true; - } - else{ - return false; - } -} - - //function for set checked and unchecked value of checkbox - const handleCheckboxValue =(isChecked,ind)=>{ - let updateSelectedCheckbox =[], checkedList; - let isDefaultValue,isDefaultEmpty; - if (props.pos?.type && ["checkbox","radio"].includes(props.pos.type) ) { - updateSelectedCheckbox = selectedCheckbox - if(isChecked){ - updateSelectedCheckbox.push(ind) - setSelectedCheckbox(updateSelectedCheckbox) - }else{ - checkedList = selectedCheckbox.filter((data)=> data!==ind) - setSelectedCheckbox(checkedList) - } - if (props.isNeedSign) { - isDefaultValue = props.pos.options?.defaultValue; - } - if (isDefaultValue && isDefaultValue.length > 0) { - isDefaultEmpty = true; - } - onChangeInput( - checkedList ? checkedList :updateSelectedCheckbox, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data.Id, - false, - null, - null, - null, - isDefaultEmpty - ); - } - } - - //function to handle select radio widget and set value seletced by user - const handleCheckRadio =(isChecked,data)=>{ - let isDefaultValue,isDefaultEmpty; - if (props.isNeedSign) { - isDefaultValue = props.pos.options?.defaultValue; - } - if (isDefaultValue ) { - isDefaultEmpty = true; - } - if(isChecked){ - setTextValue(data) - }else{ - setTextValue("") - } - onChangeInput( - textValue, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data.Id, - false, - null, - null, - null, - isDefaultEmpty - ); - - } - switch (props.pos.type) { - case "signature": - return props.pos.SignUrl ? ( - <img - alt="signimg" - src={props.pos.SignUrl} - style={{ - width: "99%", - height: "100%", - objectFit: "contain" - }} - /> - ) : ( - <div style={{ fontSize: 11, color: "black", justifyContent: "center" }}> - {props?.handleUserName && - props?.handleUserName( - props?.data?.Id, - props?.data?.Role, - props?.pos?.type - )} - </div> - ); - case "stamp": - return props.pos.SignUrl ? ( - <img - alt="signimg" - src={props.pos.SignUrl} - style={{ - width: "99%", - height: "100%", - objectFit: "contain" - }} - /> - ) : ( - <div style={{ fontSize: 11, color: "black", justifyContent: "center" }}> - {props?.handleUserName && - props?.handleUserName( - props?.data?.Id, - props?.data?.Role, - props?.pos?.type - )} - </div> - ); - case "checkbox": - return ( - <div style={{ zIndex: props.isSignYourself && "99" }}> - {props.pos.options?.values?.map((data, ind) => { - return ( - <input - key={ind} - style={{ - width: props.pos.Width, - display: "flex", - justifyContent: "center", - marginBottom: "6px", - marginTop: "5px" - }} - onBlur={handleInputBlur} - disabled={ - props.isNeedSign && - props.pos.options?.isReadOnly && - props.pos.options?.isReadOnly - } - type="checkbox" - checked={selectCheckbox(ind)} - onChange={(e) => { - if (e.target.checked && !props.isPlaceholder) { - const maxRequired = - props.pos.options?.validation?.maxRequiredCount; - const maxCountInt = maxRequired && parseInt(maxRequired); - if (maxCountInt > 0) { - if (selectedCheckbox.length <= maxCountInt - 1) { - handleCheckboxValue(e.target.checked,ind) - } - } else { - handleCheckboxValue(e.target.checked,ind) - } - } else { - handleCheckboxValue(e.target.checked,ind) - } - }} - - /> - ); - })} - </div> - ); - case "text": - return props.isSignYourself || - (props.isNeedSign && props.data?.signerObjId === props.signerObjId) ? ( - <input - className="inputPlaceholder" - ref={inputRef} - placeholder={validatePlaceholder} - style={{ fontSize: calculateFontSize() }} - value={textValue} - type="text" - tabIndex="0" - disabled={ - props.isNeedSign && props.data?.signerObjId !== props.signerObjId - ? true - : props.isPlaceholder - } - onBlur={handleInputBlur} - onChange={(e) => { - - setTextValue(e.target.value); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - /> - ) : ( - <div - style={{ - color: "black", - fontSize: calculateFontSize() - }} - > - <span>{props.pos.type}</span> - </div> - ); - case "dropdown": - return props.data?.signerObjId === props.signerObjId ? ( - <select - className="inputPlaceholder" - id="myDropdown" - style={{ fontSize: "12px" }} - value={selectOption} - onChange={(e) => { - setSelectOption(e.target.value); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - > - {/* Default/Title option */} - <option value="" disabled hidden> - {props.pos.options.name} - </option> - - {props.pos?.options?.values.map((data, ind) => { - return ( - <option key={ind} value={data}> - {data} - </option> - ); - })} - </select> - ) : ( - <div - className="inputPlaceholder" - style={{ fontSize: calculateFontSize() }} - > - {props.pos?.options?.name ? props.pos.options.name : props.pos.type} - </div> - ); - case "initials": - return props.pos.SignUrl ? ( - <img - alt="signimg" - src={props.pos.SignUrl} - style={{ - width: "99%", - height: "100%", - objectFit: "contain" - }} - /> - ) : ( - <div style={{ fontSize: 11, color: "black", justifyContent: "center" }}> - {props?.handleUserName && - props?.handleUserName( - props?.data?.Id, - props?.data?.Role, - props?.pos?.type - )} - </div> - ); - case "name": - return props.isSignYourself || - (props.isNeedSign && props.data?.signerObjId === props.signerObjId) ? ( - <input - tabIndex="0" - ref={inputRef} - placeholder={"name"} - style={{ fontSize: calculateFontSize() }} - className="inputPlaceholder" - type="text" - value={textValue} - onBlur={handleInputBlur} - onChange={(e) => { - handleTextValid(e); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - /> - ) : ( - <div - style={{ - color: "black", - fontSize: calculateFontSize() - }} - > - <span>{props.pos.type}</span> - </div> - ); - case "company": - return props.isSignYourself || - (props.isNeedSign && props.data?.signerObjId === props.signerObjId) ? ( - <input - className="inputPlaceholder" - type="text" - ref={inputRef} - placeholder={"company"} - style={{ fontSize: calculateFontSize() }} - value={textValue} - onBlur={handleInputBlur} - onChange={(e) => { - handleTextValid(e); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - /> - ) : ( - <div - style={{ - color: "black", - fontSize: calculateFontSize() - }} - > - <span>{props.pos.type}</span> - </div> - ); - case "job title": - return props.isSignYourself || - (props.isNeedSign && props.data?.signerObjId === props.signerObjId) ? ( - <input - className="inputPlaceholder" - type="text" - ref={inputRef} - placeholder={"job title"} - style={{ fontSize: calculateFontSize() }} - value={textValue} - onBlur={handleInputBlur} - onChange={(e) => { - handleTextValid(e); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - /> - ) : ( - <div - style={{ - color: "black", - fontSize: calculateFontSize() - }} - > - <span>{props.pos.type}</span> - </div> - ); - case "date": - return ( - <div> - <DatePicker - disabled={ - props.isNeedSign && props.data?.signerObjId !== props.signerObjId - } - onBlur={handleInputBlur} - closeOnScroll={true} - className="inputPlaceholder" - style={{ outlineColor: "#007bff" }} - selected={ - startDate - ? startDate - : props.pos.options?.response && - new Date(props.pos.options.response) - } - onChange={(date) => { - setStartDate(date); - }} - popperPlacement="top-end" - customInput={<ExampleCustomInput />} - dateFormat={ - props.selectDate - ? props.selectDate?.format - : props.pos?.options?.validation?.format - ? props.pos?.options?.validation?.format - : "dd MMMM, YYYY" - } - /> - </div> - ); - case "image": - return props.pos.SignUrl ? ( - <img - alt="signimg" - src={props.pos.SignUrl} - style={{ - width: "99%", - height: "100%", - objectFit: "contain" - }} - /> - ) : ( - <div style={{ fontSize: 11, color: "black", justifyContent: "center" }}> - {props?.handleUserName && - props?.handleUserName( - props?.data?.Id, - props?.data?.Role, - props?.pos?.type - )} - </div> - ); - case "email": - return props.isSignYourself || - (props.isNeedSign && props.data?.signerObjId === props.signerObjId) ? ( - <input - className="inputPlaceholder" - type="text" - ref={inputRef} - placeholder={"email"} - style={{ fontSize: calculateFontSize() }} - value={textValue} - onBlur={handleInputBlur} - onChange={(e) => { - handleTextValid(e); - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - /> - ) : ( - <div - style={{ - color: "black", - fontSize: calculateFontSize() - }} - > - <span>{props.pos.type}</span> - </div> - ); - case "radio": - return ( - <div> - {props.pos.options?.values.map((data, ind) => { - return ( - <input - key={ind} - style={{ - width: props.pos.Width, - display: "flex", - justifyContent: "center", - marginBottom: "6px", - marginTop: "5px" - }} - type="radio" - disabled={ - props.isNeedSign && - props.pos.options?.isReadOnly && - props.pos.options?.isReadOnly - } - // disabled={props.isPlaceholder} - checked={handleRadioCheck(data)} - // checked={isCheckedRadio.isChecked} - onChange={(e)=>{ - if(!props.isPlaceholder){ - handleCheckRadio(e.target.checked,data) - - } - - }} - - /> - ); - })} - </div> - ); - case "label": - return ( - <textarea - rows={1} - onChange={(e) => { - onChangeInput( - e.target.value, - props.pos.key, - props.xyPostion, - props.index, - props.setXyPostion, - props.data && props.data?.Id, - false - ); - }} - className="labelTextArea" - cols="50" - /> - ); - default: - return props.pos.SignUrl ? ( - <div style={{ pointerEvents: "none" }}> - <img - alt="signimg" - src={props.pos.SignUrl} - style={{ - width: "99%", - height: "100%", - objectFit: "contain" - }} - /> - </div> - ) : ( - <div - style={{ - fontSize: "10px", - color: "black", - justifyContent: "center" - }} - > - {props.pos.isStamp ? <div>stamp</div> : <div>signature</div>} - {props?.handleUserName && - props?.handleUserName(props?.data?.Id, props?.data?.Role)} - </div> - ); - } -} - -export default PlaceholderType; diff --git a/microfrontends/SignDocuments/src/Component/component/AddRoleModal.js b/microfrontends/SignDocuments/src/Component/component/AddRoleModal.js deleted file mode 100644 index 8e6491376..000000000 --- a/microfrontends/SignDocuments/src/Component/component/AddRoleModal.js +++ /dev/null @@ -1,67 +0,0 @@ -import React from "react"; -import ModalUi from "../../premitives/ModalUi"; - -const AddRoleModal = (props) => { - return ( - <ModalUi - title={"Add Role"} - isOpen={props.isModalRole} - handleClose={props.handleCloseRoleModal} - > - <div className="addusercontainer"> - <form - style={{ display: "flex", flexDirection: "column" }} - onSubmit={props.handleAddRole} - > - <input - value={props.roleName} - onChange={(e) => props.setRoleName(e.target.value)} - placeholder={ - props.signersdata.length > 0 - ? "User " + (props.signersdata.length + 1) - : "User 1" - } - className="addUserInput" - /> - <p - style={{ - color: "grey", - fontSize: 11, - margin: "10px 0 10px 5px" - }} - > - e.g: Hr, Director, Manager, New joinee, Accountant, etc... - </p> - <div> - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginBottom: "15px" - }} - ></div> - <button - type="submit" - style={{ - background: "#00a2b7" - }} - className="finishBtn" - > - Add - </button> - <button - onClick={props.handleCloseRoleModal} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </div> - </form> - </div> - </ModalUi> - ); -}; - -export default AddRoleModal; diff --git a/microfrontends/SignDocuments/src/Component/component/CustomModal.js b/microfrontends/SignDocuments/src/Component/component/CustomModal.js deleted file mode 100644 index ba2eb720d..000000000 --- a/microfrontends/SignDocuments/src/Component/component/CustomModal.js +++ /dev/null @@ -1,68 +0,0 @@ -import React from "react"; -import "../../css/customModal.css"; -import "../../css/signature.css"; - -function CustomModal({ - show, - headMsg, - bodyMssg, - footerMessage, - declineDoc, - setIsDecline, - containerWH -}) { - const isMobile = window.innerWidth < 767; - return ( - show && ( - <div - className="parentDiv" - style={{ - width: containerWH && containerWH.width, - height: isMobile ? "100%" : containerWH && containerWH.height - }} - > - <div className="childDiv"> - <div className="modalHeadDiv bg-danger">{headMsg && headMsg}</div> - <div className="modalBodyDIv"> - <p className="pTagBody">{bodyMssg && bodyMssg}</p> - - {footerMessage && ( - <> - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <div className="modalFooterDiv"> - <button - style={{ - background: "#de4337" - }} - type="button" - className="finishBtn" - onClick={() => declineDoc()} - > - Yes - </button> - <button - type="button" - className="finishBtn cancelBtn" - onClick={() => setIsDecline({ isDeclined: false })} - > - Close - </button> - </div> - </> - )} - </div> - </div> - </div> - ) - ); -} - -export default CustomModal; diff --git a/microfrontends/SignDocuments/src/Component/component/DragElement.js b/microfrontends/SignDocuments/src/Component/component/DragElement.js deleted file mode 100644 index 978cc01a8..000000000 --- a/microfrontends/SignDocuments/src/Component/component/DragElement.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { getWidgetType, widgets } from "../../utils/Utils"; - -function DragElement(item) { - const getWidgets = widgets; - const filterWidgetPreview = getWidgets.filter( - (data) => data.type === item?.text - ); - - return <div>{getWidgetType(filterWidgetPreview[0])}</div>; -} - -export default DragElement; diff --git a/microfrontends/SignDocuments/src/Component/component/EditTemplate.js b/microfrontends/SignDocuments/src/Component/component/EditTemplate.js deleted file mode 100644 index c69543bf1..000000000 --- a/microfrontends/SignDocuments/src/Component/component/EditTemplate.js +++ /dev/null @@ -1,142 +0,0 @@ -import React, { useState } from "react"; -import "../../css/AddUser.css"; -// import SelectFolder from "../../premitives/SelectFolder"; - -const EditTemplate = ({ template, onSuccess }) => { - // const [folder, setFolder] = useState({ ObjectId: "", Name: "" }); - const [formData, setFormData] = useState({ - Name: template?.Name || "", - Note: template?.Note || "", - Description: template?.Description || "", - SendinOrder: template?.SendinOrder ? `${template?.SendinOrder}` : "false" - }); - - const handleStrInput = (e) => { - setFormData({ ...formData, [e.target.name]: e.target.value }); - }; - // const handleFolder = (data) => { - // console.log("handleFolder ", data) - // setFolder(data); - // }; - - // Define a function to handle form submission - const handleSubmit = async (e) => { - e.preventDefault(); - e.stopPropagation(); - const isChecked = formData.SendinOrder === "true" ? true : false; - const data = { ...formData, SendinOrder: isChecked }; - onSuccess(data); - }; - - return ( - <div className="addusercontainer"> - <div className="form-wrapper"> - <form onSubmit={handleSubmit}> - <div> - <label htmlFor="name" style={{ fontSize: 13 }}> - File - </label> - <div - style={{ - padding: "0.5rem 0.75rem", - border: "1px solid #d1d5db", - borderRadius: "0.375rem", - fontSize: "0.75rem", - fontWeight: "700" - }} - > - {template.URL?.split("/")?.pop()?.split("_")[1]} - </div> - </div> - <div className="form-section"> - <label htmlFor="name" style={{ fontSize: 13 }}> - Name - <span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - type="text" - name="Name" - value={formData.Name} - onChange={(e) => handleStrInput(e)} - required - className="addUserInput" - /> - </div> - <div className="form-section"> - <label htmlFor="Note" style={{ fontSize: 13 }}> - Note - </label> - <input - type="text" - name="Note" - id="Note" - value={formData.Note} - onChange={(e) => handleStrInput(e)} - className="addUserInput" - /> - </div> - <div className="form-section"> - <label htmlFor="Description" style={{ fontSize: 13 }}> - Description - </label> - <input - type="text" - name="Description" - id="Description" - value={formData.Description} - onChange={(e) => handleStrInput(e)} - className="addUserInput" - /> - </div> - <div className="form-section"> - <label style={{ fontSize: 13 }}>Send In Order</label> - <div - style={{ - display: "flex", - alignItems: "center", - gap: 8, - marginLeft: 8, - marginBottom: 5 - }} - > - <input - type="radio" - value={"true"} - name="SendinOrder" - checked={formData.SendinOrder === "true"} - onChange={handleStrInput} - /> - <div style={{ fontSize: 12 }}>Yes</div> - </div> - <div - style={{ - display: "flex", - alignItems: "center", - gap: 8, - marginLeft: 8, - marginBottom: 5 - }} - > - <input - type="radio" - value={"false"} - name="SendinOrder" - checked={formData.SendinOrder === "false"} - onChange={handleStrInput} - /> - <div style={{ fontSize: 12 }}>No</div> - </div> - </div> - {/* <SelectFolder onSuccess={handleFolder} folderCls={"contracts_Template"} /> */} - <div className="buttoncontainer"> - <button type="submit" className="submitbutton"> - Submit - </button> - </div> - </form> - </div> - </div> - ); -}; - -export default EditTemplate; diff --git a/microfrontends/SignDocuments/src/Component/component/HandleError.js b/microfrontends/SignDocuments/src/Component/component/HandleError.js deleted file mode 100644 index c2908bff5..000000000 --- a/microfrontends/SignDocuments/src/Component/component/HandleError.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; - -function HandleError({ handleError }) { - return ( - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - height: "100vh", - }} - > - <span style={{ fontSize: "20px", color: "gray" }}>{handleError}</span> - </div> - ); -} - -export default HandleError; diff --git a/microfrontends/SignDocuments/src/Component/component/LinkUserModal.js b/microfrontends/SignDocuments/src/Component/component/LinkUserModal.js deleted file mode 100644 index b7a5cac97..000000000 --- a/microfrontends/SignDocuments/src/Component/component/LinkUserModal.js +++ /dev/null @@ -1,35 +0,0 @@ -import React from "react"; -import SelectSigners from "../../premitives/SelectSigners"; -import AddUser from "../../premitives/AddUser"; -import ModalUi from "../../premitives/ModalUi"; - -const LinkUserModal = (props) => { - return ( - <ModalUi title={"Add/Choose Signer"} isOpen={props.isAddUser[props.uniqueId]} handleClose={props.closePopup}> - <SelectSigners - details={props.handleAddUser} - closePopup={props.closePopup} - /> - <div style={{ display: "flex", alignItems: "center", gap: 5, margin:"0 30%", color:"#808080" }}> - <span - style={{ - height: 1, - width: "100%", - backgroundColor: "#ccc" - }} - ></span> - <span>or</span> - <span - style={{ - height: 1, - width: "100%", - backgroundColor: "#ccc" - }} - ></span> - </div> - <AddUser details={props.handleAddUser} closePopup={props.closePopup} /> - </ModalUi> - ); -}; - -export default LinkUserModal; diff --git a/microfrontends/SignDocuments/src/Component/component/Nodata.js b/microfrontends/SignDocuments/src/Component/component/Nodata.js deleted file mode 100644 index 03fc3c7cc..000000000 --- a/microfrontends/SignDocuments/src/Component/component/Nodata.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; - -function Nodata() { - return ( - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - height: "50vh", - }} - > - <span style={{ fontWeight: "bold" }}>No Data Found!</span> - </div> - ); -} - -export default Nodata; diff --git a/microfrontends/SignDocuments/src/Component/component/PlaceholderCopy.js b/microfrontends/SignDocuments/src/Component/component/PlaceholderCopy.js deleted file mode 100644 index d952ea0a6..000000000 --- a/microfrontends/SignDocuments/src/Component/component/PlaceholderCopy.js +++ /dev/null @@ -1,264 +0,0 @@ -import React, { useState } from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import ModalUi from "../../premitives/ModalUi"; - -function PlaceholderCopy(props) { - const copyType = ["All pages", "All pages but last", "All pages but first"]; - const [selectCopyType, setSelectCopyType] = useState(""); - - //get RandomKey Id - const randomKey = () => { - const randomId = Math.floor(1000 + Math.random() * 9000); - return randomId; - }; - - //function for get copy placeholder position - const getCopyPlaceholderPosition = ( - type, - rest, - newPageNumber, - existPlaceholderPosition - ) => { - let obj; - - const filterPosition = - existPlaceholderPosition && - existPlaceholderPosition.filter( - (data) => data.xPosition !== rest.xPosition - ); - //copy all page placeholder at requested position except first page - if (newPageNumber === 1 && type === "first") { - if (filterPosition && filterPosition.length > 0) { - return (obj = { - pageNumber: newPageNumber, - pos: [...filterPosition] - }); - } - } - //copy all page placeholder at requested position except last page - else if (newPageNumber === props.allPages && type === "last") { - if (existPlaceholderPosition) { - return (obj = { - pageNumber: newPageNumber, - pos: [...filterPosition] - }); - } - } - //copy all page placeholder at requested position with existing placeholder position - else if (existPlaceholderPosition) { - return (obj = { - pageNumber: newPageNumber, - pos: [...filterPosition, rest] - }); - } - //copy all page placeholder at requested position - else { - return (obj = { - pageNumber: newPageNumber, - pos: [rest] - }); - } - }; - - //function for copy placeholder as per select copy type - const copyPlaceholder = (type) => { - let newPlaceholderPosition = []; - let newPageNumber = 1; - const signerPosition = props.xyPostion; - const signerId = props.signerObjId ? props.signerObjId : props.Id; - - //handle placeholder array and copy for multiple signers placeholder at requested location - if (signerId) { - //get current signers data - let filterSignerPosition; - if (props?.signerObjId) { - filterSignerPosition = signerPosition.filter( - (data) => data.signerObjId === signerId - ); - } else { - filterSignerPosition = signerPosition.filter( - (item) => item.Id === signerId - ); - } - //get current pagenumber's all placeholder position data - const placeholderPosition = filterSignerPosition[0].placeHolder.filter( - (data) => data.pageNumber === props.pageNumber - ); - //get current placeholder position data which user want to copy - const currentPlaceholder = placeholderPosition[0].pos.filter( - (position) => position.key === props.signKey - ); - const { key, ...rest } = currentPlaceholder[0]; - for (let i = 0; i < props.allPages; i++) { - const newId = randomKey(); - rest.key = newId; - //get exist placeholder position for particular page - const existPlaceholder = filterSignerPosition[0].placeHolder.filter( - (data) => data.pageNumber === newPageNumber - ); - const existPlaceholderPosition = - existPlaceholder[0] && existPlaceholder[0].pos; - - //function for get copy to requested location of placeholder position - const getPlaceholderObj = getCopyPlaceholderPosition( - type, - rest, - newPageNumber, - existPlaceholderPosition - ); - if (getPlaceholderObj) { - newPlaceholderPosition.push(getPlaceholderObj); - } - newPageNumber++; - } - let updatedSignerPlaceholder; - if (props?.signerObjId) { - updatedSignerPlaceholder = signerPosition.map((signersData, ind) => { - if (signersData.signerObjId === props.signerObjId) { - return { - ...signersData, - placeHolder: newPlaceholderPosition - }; - } - return signersData; - }); - } else { - updatedSignerPlaceholder = signerPosition.map((signersData, ind) => { - if (signersData.Id === props.Id) { - return { - ...signersData, - placeHolder: newPlaceholderPosition - }; - } - return signersData; - }); - } - // const updatedSignerPlaceholder = signerPosition.map( - // (signersData, ind) => { - // if (signersData.signerObjId === props.signerObjId) { - // return { - // ...signersData, - // placeHolder: newPlaceholderPosition - // }; - // } - // return signersData; - // } - // ); - - const signersData = signerPosition; - signersData.splice(0, signerPosition.length, ...updatedSignerPlaceholder); - props.setXyPostion(signersData); - } - //handle signyourself array and copy for single signers placeholder at requested location - else { - const xyPostion = props.xyPostion; - - const placeholderPosition = xyPostion.filter( - (data) => data.pageNumber === props.pageNumber - ); - //get current placeholder position data which user want to copy - const currentPlaceholder = placeholderPosition[0].pos.filter( - (pos) => pos.key === props.signKey - ); - const { key, ...rest } = currentPlaceholder[0]; - for (let i = 0; i < props.allPages; i++) { - //get exist placeholder position for particular page - const existPlaceholder = xyPostion.filter( - (data) => data.pageNumber === newPageNumber - ); - const existPlaceholderPosition = - existPlaceholder[0] && existPlaceholder[0].pos; - - const newId = randomKey(); - rest.key = newId; - //function for get copy to requested location of placeholder position - const getPlaceholderObj = getCopyPlaceholderPosition( - type, - rest, - newPageNumber, - existPlaceholderPosition - ); - if (getPlaceholderObj) { - newPlaceholderPosition.push(getPlaceholderObj); - } - - newPageNumber++; - } - props.setXyPostion(newPlaceholderPosition); - } - }; - - //function for getting selected type placeholder copy - const handleApplyCopy = () => { - if (selectCopyType === "All pages") { - copyPlaceholder("all"); - } else if (selectCopyType === "All pages but last") { - copyPlaceholder("last"); - } else if (selectCopyType === "All pages but first") { - copyPlaceholder("first"); - } - }; - - return ( - <ModalUi - isOpen={props.isPageCopy} - title={"Copy to all pages"} - handleClose={() => { - props.setIsPageCopy(false); - }} - > - <div style={{ height: "100%", padding: 20 }}> - {copyType.map((data, key) => { - return ( - <div key={key} style={{ display: "flex", flexDirection: "column" }}> - <label key={key} style={{ fontSize: "16px", fontWeight: "500" }}> - <input - style={{ accentColor: "red", marginRight: "10px" }} - type="radio" - value={data} - onChange={() => setSelectCopyType(data)} - checked={selectCopyType === data} - /> - - {data} - </label> - </div> - ); - })} - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => { - handleApplyCopy(); - props.setIsPageCopy(false); - }} - style={{ - background: themeColor() - }} - type="button" - disabled={!selectCopyType} - className="finishBtn" - > - Apply - </button> - <button - type="button" - className="finishBtn cancelBtn" - onClick={() => props.setIsPageCopy(false)} - > - Cancel - </button> - </div> - </ModalUi> - ); -} - -export default PlaceholderCopy; diff --git a/microfrontends/SignDocuments/src/Component/component/RenderDebugPdf.js b/microfrontends/SignDocuments/src/Component/component/RenderDebugPdf.js deleted file mode 100644 index 8a2e1e403..000000000 --- a/microfrontends/SignDocuments/src/Component/component/RenderDebugPdf.js +++ /dev/null @@ -1,83 +0,0 @@ -import React from "react"; -import { Document, Page, pdfjs } from "react-pdf"; -import { Stage, Layer, Rect } from "react-konva"; -const RenderDebugPdf = (props) => { - return ( - <div> - <div - style={{ - position: "sticky", - top: 0, - padding: 10, - zIndex: 1, - backgroundColor: "white", - border: "1px solid grey", - margin: "5px 0" - }} - > - {`Co-ordinates: X - ${props.hoverCoordinates.x}, Y - ${props.hoverCoordinates.y}`} - </div> - <div - style={{ - flex: 1, - position: "relative", - border: "1px solid grey", - overflow: "auto" - }} - onMouseMove={props.handleMouseMoveDiv} - > - <Document - onLoadError={(e) => { - const load = { - status: false, - type: "failed" - }; - props.setPdfLoadFail(load); - }} - loading={"Loading Document.."} - onLoadSuccess={props.pageDetails} - ref={props.pdfRef} - file={props.pdfUrl} - > - <Page - onLoadSuccess={props.handlePageLoadSuccess} - pageNumber={props.pageNumber} - renderAnnotationLayer={false} - renderTextLayer={false} - onGetAnnotationsError={(error) => { - console.log("annotation error", error); - }} - /> - </Document> - - <Stage - onMouseMove={props.handleMouseMove} - onMouseDown={props.handleMouseDown} - onMouseUp={props.handleMouseUp} - width={props.pdfDimension.width} - height={props.pdfDimension.height} - style={{ position: "absolute", top: 0, left: 0 }} - > - <Layer> - {props.annotations - .filter((value) => value.page === props.pageNumber) - .map((value) => { - return ( - <Rect - x={value.x} - y={value.y} - width={value.width} - height={value.height} - fill="transparent" - stroke="black" - /> - ); - })} - </Layer> - </Stage> - </div> - </div> - ); -}; - -export default RenderDebugPdf; diff --git a/microfrontends/SignDocuments/src/Component/component/Title.js b/microfrontends/SignDocuments/src/Component/component/Title.js deleted file mode 100644 index 6781b61b4..000000000 --- a/microfrontends/SignDocuments/src/Component/component/Title.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; -import { Helmet } from "react-helmet"; - -function Title({ title, drive }) { - return ( - <Helmet> - <title>{drive ? title : `${title} - OpenSign™`} - - - - ); -} - -export default Title; diff --git a/microfrontends/SignDocuments/src/Component/component/alertComponent.js b/microfrontends/SignDocuments/src/Component/component/alertComponent.js deleted file mode 100644 index f242e87a2..000000000 --- a/microfrontends/SignDocuments/src/Component/component/alertComponent.js +++ /dev/null @@ -1,79 +0,0 @@ -import React from "react"; -import Modal from "react-bootstrap/Modal"; -import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { themeColor } from "../../utils/ThemeColor/backColor"; - -function AlertComponent({ - isShow, - alertMessage, - setIsAlert, - isdefaultSign, - addDefaultSignature, - headBG -}) { - return ( - - - Alert - - - - {alertMessage} - - - {isdefaultSign ? ( - <> - - - - ) : ( - - )} - - - ); -} - -export default AlertComponent; diff --git a/microfrontends/SignDocuments/src/Component/component/borderResize.js b/microfrontends/SignDocuments/src/Component/component/borderResize.js deleted file mode 100644 index 505c68d30..000000000 --- a/microfrontends/SignDocuments/src/Component/component/borderResize.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; - -function BorderResize({ right, top }) { - return ( -
- ); -} - -export default BorderResize; diff --git a/microfrontends/SignDocuments/src/Component/component/defaultSignature.js b/microfrontends/SignDocuments/src/Component/component/defaultSignature.js deleted file mode 100644 index 1fbee6604..000000000 --- a/microfrontends/SignDocuments/src/Component/component/defaultSignature.js +++ /dev/null @@ -1,79 +0,0 @@ -import React from "react"; - -function DefaultSignature({ - themeColor, - defaultSignImg, - xyPostion, - setDefaultSignAlert -}) { - const confirmToaddDefaultSign = () => { - if (xyPostion.length > 0) { - setDefaultSignAlert({ - isShow: true, - alertMessage: - "Are you sure you want to auto sign at requested all locations?" - }); - } else { - setDefaultSignAlert({ - isShow: true, - alertMessage: "please select position!" - }); - } - }; - - return ( -
-
- Signature -
-
- <> -

Your Signature

-
- default img -
- - -
-
- ); -} - -export default DefaultSignature; diff --git a/microfrontends/SignDocuments/src/Component/component/emailComponent.js b/microfrontends/SignDocuments/src/Component/component/emailComponent.js deleted file mode 100644 index 1b5aaa36d..000000000 --- a/microfrontends/SignDocuments/src/Component/component/emailComponent.js +++ /dev/null @@ -1,430 +0,0 @@ -import React, { useState } from "react"; -import { saveAs } from "file-saver"; -import celebration from "../../assests/newCeleb.gif"; -import axios from "axios"; -import { getBase64FromUrl } from "../../utils/Utils"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import printModule from "print-js"; -import loader from "../../assests/loader2.gif"; - -function EmailComponent({ - isEmail, - pdfUrl, - isCeleb, - setIsEmail, - setSuccessEmail, - pdfName, - sender, - setIsAlert -}) { - const [emailList, setEmailList] = useState([]); - const [emailValue, setEmailValue] = useState(); - const [isLoading, setIsLoading] = useState(false); - //function for send email - const sendEmail = async () => { - setIsLoading(true); - let sendMail; - for (let i = 0; i < emailList.length; i++) { - try { - const imgPng = - "https://qikinnovation.ams3.digitaloceanspaces.com/logo.png"; - // "https://qikinnovation.ams3.digitaloceanspaces.com/mailLogo_2023-08-18T12%3A51%3A31.573Z.png"; - - let url = `${localStorage.getItem("baseUrl")}functions/sendmailv3/`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - }; - const openSignUrl = "https://www.opensignlabs.com/contact-us"; - const themeBGcolor = themeColor(); - let params = { - pdfName: pdfName, - url: pdfUrl, - recipient: emailList[i], - subject: `${sender.name} has signed the doc - ${pdfName}`, - from: sender.email, - html: - "

Document Copy

A copy of the document " + - pdfName + - " is attached to this email. Kindly download the document from the attachment.

This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + - sender.email + - " directly. If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ here

" - }; - sendMail = await axios.post(url, params, { headers: headers }); - } catch (error) { - console.log("error", error); - setIsLoading(false); - setIsEmail(false); - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } - - if (sendMail && sendMail.data.result.status === "success") { - setSuccessEmail(true); - setTimeout(() => { - setSuccessEmail(false); - setIsEmail(false); - setEmailValue(""); - setEmailList([]); - }, 1500); - - setIsLoading(false); - } else if (sendMail && sendMail.data.result.status === "error") { - setIsLoading(false); - setIsEmail(false); - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - setEmailValue(""); - setEmailList([]); - } else { - setIsLoading(false); - setIsEmail(false); - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - setEmailValue(""); - setEmailList([]); - } - }; - - //function for remove email - const removeChip = (index) => { - const updateEmailCount = emailList.filter((data, key) => key !== index); - setEmailList(updateEmailCount); - }; - //function for get email value - const handleEmailValue = (e) => { - const value = e.target.value; - setEmailValue(value); - }; - - //function for save email in array after press enter - const handleEnterPress = (e) => { - if (e.key === "Enter" && emailValue) { - setEmailList((prev) => [...prev, emailValue]); - setEmailValue(""); - } else if (e === "add" && emailValue) { - setEmailList((prev) => [...prev, emailValue]); - setEmailValue(""); - } - }; - - // function for print signed pdf - const handleToPrint = async (event) => { - event.preventDefault(); - - const pdf = await getBase64FromUrl(pdfUrl); - const isAndroidDevice = navigator.userAgent.match(/Android/i); - const isAppleDevice = - (/iPad|iPhone|iPod/.test(navigator.platform) || - (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) && - !window.MSStream; - if (isAndroidDevice || isAppleDevice) { - const byteArray = Uint8Array.from( - atob(pdf) - .split("") - .map((char) => char.charCodeAt(0)) - ); - const blob = new Blob([byteArray], { type: "application/pdf" }); - const blobUrl = URL.createObjectURL(blob); - window.open(blobUrl, "_blank"); - } else { - printModule({ printable: pdf, type: "pdf", base64: true }); - } - }; - - //handle download signed pdf - const handleDownloadPdf = () => { - saveAs(pdfUrl, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); - }; - - const sanitizeFileName = (pdfName) => { - // Replace spaces with underscore - return pdfName.replace(/ /g, "_"); - }; - - const isAndroid = /Android/i.test(navigator.userAgent); - - return ( -
- {/* isEmail */} - {isEmail && ( -
-
- {isLoading && ( -
- no img - - This might take some time - -
- )} -
- Successfully signed! - -
-
- {!isAndroid && ( - - )} - - -
-
-
- {isCeleb && ( -
- print img -
- )} -

- Recipients added here will get a copy of the signed document. -

- {emailList.length > 0 ? ( - <> -
-
- {emailList.map((data, ind) => { - return ( -
- - {data} - - removeChip(ind)} - > - - -
- ); - })} -
- {emailList.length <= 9 && ( - { - if (emailValue) { - handleEnterPress("add"); - } - }} - required - /> - )} -
- - ) : ( -
- { - if (emailValue) { - handleEnterPress("add"); - } - }} - required - /> -
- )} - { - if (emailValue) { - handleEnterPress("add"); - } - }} - > - - - -
- Note: - - {" "} - You can only send to ten recipients at a time. - -
-
- - -
-
-
- )} -
- ); -} - -export default EmailComponent; diff --git a/microfrontends/SignDocuments/src/Component/component/emailToast.js b/microfrontends/SignDocuments/src/Component/component/emailToast.js deleted file mode 100644 index a2779210a..000000000 --- a/microfrontends/SignDocuments/src/Component/component/emailToast.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; -import "../../css/signature.css"; - -function EmailToast({ isShow }) { - return ( - <> - {isShow && ( -
-
- Email sent successfully! -
-
- )} - - ); -} - -export default EmailToast; diff --git a/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js b/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js deleted file mode 100644 index f736d3d31..000000000 --- a/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js +++ /dev/null @@ -1,419 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import ModalUi from "../../premitives/ModalUi"; -import RecipientList from "../../premitives/RecipientList"; -import { useDrag } from "react-dnd"; -import AllWidgets from "../WidgetComponent/allWidgets"; -import { widgets } from "../../utils/Utils"; - -function FieldsComponent({ - dragSignature, - signRef, - handleDivClick, - handleMouseLeave, - themeColor, - dragStamp, - isSignYourself, - addPositionOfSignature, - signersdata, - isSelectListId, - setSignerObjId, - setIsSelectId, - setContractName, - isSigners, - dataTut, - isMailSend, - handleAddSigner, - setUniqueId, - setRoleName, - handleDeleteUser, - signerPos, - handleRoleChange, - handleOnBlur, - title, - - isTemplateFlow -}) { - const [isSignersModal, setIsSignersModal] = useState(false); - - const [, dropdown] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 5, - text: "dropdown" - }, - - collect: (monitor) => ({ - isDragDropdown: !!monitor.isDragging() - }) - }); - const [, checkbox] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 6, - text: "checkbox" - }, - - collect: (monitor) => ({ - isDragCheck: !!monitor.isDragging() - }) - }); - const [, text] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 7, - text: "text" - }, - - collect: (monitor) => ({ - isDragText: !!monitor.isDragging() - }) - }); - const [, initials] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 8, - text: "initials" - }, - - collect: (monitor) => ({ - isDragInitial: !!monitor.isDragging() - }) - }); - const [, name] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 9, - text: "name" - }, - - collect: (monitor) => ({ - isDragName: !!monitor.isDragging() - }) - }); - const [, company] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 10, - text: "company" - }, - - collect: (monitor) => ({ - isDragCompany: !!monitor.isDragging() - }) - }); - const [, jobTitle] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 11, - text: "job title" - }, - - collect: (monitor) => ({ - isDragJobtitle: !!monitor.isDragging() - }) - }); - const [, date] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 12, - text: "date" - }, - - collect: (monitor) => ({ - isDragDate: !!monitor.isDragging() - }) - }); - const [, image] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 13, - text: "image" - }, - - collect: (monitor) => ({ - isDragImage: !!monitor.isDragging() - }) - }); - const [, email] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 14, - text: "email" - }, - collect: (monitor) => ({ - isDragEmail: !!monitor.isDragging() - }) - }); - const [, radio] = useDrag({ - type: "BOX", - - item: { - type: "BOX", - id: 15, - text: "radio" - }, - collect: (monitor) => ({ - isDragRadio: !!monitor.isDragging() - }) - }); - const [, label] = useDrag({ - type: "BOX", - - item: { - type: "BOX", - id: 16, - text: "label" - }, - collect: (monitor) => ({ - isDragLabel: !!monitor.isDragging() - }) - }); - const isMobile = window.innerWidth < 767; - const scrollContainerRef = useRef(null); - const [widget, setWidget] = useState([]); - - const color = [ - "#93a3db", - "#e6c3db", - "#c0e3bc", - "#bce3db", - "#b8ccdb", - "#ceb8db", - "#ffccff", - "#99ffcc", - "#cc99ff", - "#ffcc99", - "#66ccff", - "#ffffcc" - ]; - const handleModal = () => { - setIsSignersModal(!isSignersModal); - }; - - useEffect(() => { - const widgetRef = [ - dragSignature, - dragStamp, - initials, - label, - text, - checkbox, - dropdown, - radio, - image, - date, - name, - email, - company, - jobTitle, - ]; - const getWidgetArray = widgets; - const newUpdateSigner = getWidgetArray.map((obj, ind) => { - return { ...obj, ref: widgetRef[ind] }; - }); - - setWidget(newUpdateSigner); - }, []); - - const filterWidgets = widget.filter( - (data) => - data.type !== "dropdown" && data.type !== "radio" && data.type !== "label" - ); - const labelWidget = widget.filter((data) => data.type !== "label"); - const updateWidgets = isSignYourself - ? filterWidgets - : isTemplateFlow - ? labelWidget - : widget; - - return ( - <> - {isMobile ? ( - !isMailSend && ( - - ) - ) : ( -
-
- Fields -
- -
- -
-
- )} - {isSignersModal && ( - - {signersdata.length > 0 ? ( - - ) : ( -
- Please add a role -
- )} -
- )} - - ); -} - -export default FieldsComponent; diff --git a/microfrontends/SignDocuments/src/Component/component/header.js b/microfrontends/SignDocuments/src/Component/component/header.js deleted file mode 100644 index 695821b36..000000000 --- a/microfrontends/SignDocuments/src/Component/component/header.js +++ /dev/null @@ -1,784 +0,0 @@ -import React from "react"; -import PrevNext from "./prevNext"; -import { PDFDownloadLink } from "@react-pdf/renderer"; -import Certificate from "../Certificate/Certificate"; -import printModule from "print-js"; -import { getBase64FromUrl } from "../../utils/Utils"; -import { saveAs } from "file-saver"; -import "../../css/signature.css"; -import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; -import { useNavigate } from "react-router-dom"; -import { themeColor } from "../../utils/ThemeColor/backColor"; - -function Header({ - isPdfRequestFiles, - isPlaceholder, - recipient, - setIsDecline, - pageNumber, - isAlreadySign, - allPages, - changePage, - pdfUrl, - documentStatus, - embedWidgetsData, - pdfDetails, - signerPos, - signersdata, - isMailSend, - alertSendEmail, - isCompleted, - isShowHeader, - decline, - currentSigner, - dataTut4, - alreadySign, - isSignYourself, - setIsEmail, - completeBtnTitle, - setIsEditTemplate -}) { - const filterPrefill = - signerPos && signerPos?.filter((data) => data.Role !== "prefill"); - const isMobile = window.innerWidth < 767; - const navigate = useNavigate(); - const isGuestSigner = localStorage.getItem("isGuestSigner"); - //for go to previous page - function previousPage() { - changePage(-1); - } - //for go to next page - function nextPage() { - changePage(1); - } - //function for show decline alert - const handleDeclinePdfAlert = async () => { - const currentDecline = { - currnt: "Sure", - isDeclined: true - }; - setIsDecline(currentDecline); - }; - - //function for print digital sign pdf - const handleToPrint = async (event) => { - event.preventDefault(); - - const pdf = await getBase64FromUrl(pdfUrl); - const isAndroidDevice = navigator.userAgent.match(/Android/i); - const isAppleDevice = - (/iPad|iPhone|iPod/.test(navigator.platform) || - (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) && - !window.MSStream; - if (isAndroidDevice || isAppleDevice) { - const byteArray = Uint8Array.from( - atob(pdf) - .split("") - .map((char) => char.charCodeAt(0)) - ); - const blob = new Blob([byteArray], { type: "application/pdf" }); - const blobUrl = URL.createObjectURL(blob); - window.open(blobUrl, "_blank"); - } else { - printModule({ printable: pdf, type: "pdf", base64: true }); - } - }; - - //handle download signed pdf - const handleDownloadPdf = () => { - const pdfName = pdfDetails[0] && pdfDetails[0].Name; - saveAs(pdfUrl, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); - }; - - const sanitizeFileName = (pdfName) => { - // Replace spaces with underscore - return pdfName.replace(/ /g, "_"); - }; - //certificate generate and download component in mobile view - const CertificateDropDown = () => { - //after generate download certifcate pdf - const handleDownload = (pdfBlob, fileName) => { - if (pdfBlob) { - const url = window.URL.createObjectURL(pdfBlob); - // Create a temporary anchor element - const link = document.createElement("a"); - link.href = url; - link.download = fileName; - // Append the anchor to the body - document.body.appendChild(link); - // Programmatically click the anchor to trigger the download - link.click(); - // Remove the anchor from the body - document.body.removeChild(link); - // Release the object URL to free up resources - window.URL.revokeObjectURL(url); - } - }; - - return ( - e.preventDefault()} - style={{ textDecoration: "none", zIndex: "35" }} - document={} - > - {({ blob, url, loading, error }) => ( - <> - {loading ? ( -
- - Certificate -
- ) : ( -
- handleDownload( - blob, - `completion certificate-${ - pdfDetails[0] && pdfDetails[0].Name - }.pdf` - ) - } - > - - Certificate -
- )} - - )} -
- ); - }; - const CertificateComponent = () => { - return ( - } - fileName={`completion certificate-${ - pdfDetails[0] && pdfDetails[0].Name - }.pdf`} - > - {({ blob, url, loading, error }) => - loading ? ( - - ) : ( - - ) - } - - ); - }; - return ( -
- {isMobile && isShowHeader ? ( - - ) : ( -
- - - {recipient ? ( - pdfUrl || isAlreadySign.mssg ? ( -
- {pdfDetails[0] && pdfDetails.length > 0 && ( - - )} - - - -
- ) : ( -
- - - -
- ) - ) : isPlaceholder ? ( - <> - {!isMailSend && - signersdata.length > 0 && - signersdata.length !== filterPrefill.length && ( -
- {filterPrefill.length === 0 ? ( - - Add {signersdata.length - filterPrefill.length}{" "} - recipients signature - - ) : ( - - Add {signersdata.length - filterPrefill.length} more - recipients signature - - )} -
- )} - -
- {setIsEditTemplate && ( - - )} - - - -
- - ) : isPdfRequestFiles ? ( - alreadySign ? ( -
- {isCompleted.isCertificate && } - - - -
- ) : ( -
- - {currentSigner && ( - <> - - - - )} -
- ) - ) : pdfUrl || (documentStatus && documentStatus.isCompleted) ? ( -
- - - - -
- ) : ( -
- - - -
- )} -
- )} -
- ); -} - -export default Header; diff --git a/microfrontends/SignDocuments/src/Component/component/loader.js b/microfrontends/SignDocuments/src/Component/component/loader.js deleted file mode 100644 index f158dd453..000000000 --- a/microfrontends/SignDocuments/src/Component/component/loader.js +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react' -import loader from "../../assests/loader2.gif"; - - -function Loader({isLoading}) { - return ( -
- no img - - {isLoading.message} - -
- ) -} - -export default Loader diff --git a/microfrontends/SignDocuments/src/Component/component/modalComponent.js b/microfrontends/SignDocuments/src/Component/component/modalComponent.js deleted file mode 100644 index 8ab872e35..000000000 --- a/microfrontends/SignDocuments/src/Component/component/modalComponent.js +++ /dev/null @@ -1,63 +0,0 @@ -import React from "react"; -import Modal from "react-bootstrap/Modal"; -import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { useNavigate } from "react-router-dom"; -function ModalComponent({ isShow, type, setIsShowEmail }) { - const navigate = useNavigate(); - return ( - - - {type === "signersAlert" ? ( - Select signers - ) : type === "alreadyPlace" ? ( - Already Placed! - ) : ( - Document Expired! - )} - - - - {type === "signersAlert" ? ( -

Please select signer for add placeholder!

- ) : type === "alreadyPlace" ? ( -

Already set placeHolder for this document.

- ) : ( -

This Document is no longer available.

- )} -
- - {type === "signersAlert" ? ( - - ) : ( - type === "alreadyPlace" && ( - - ) - )} - -
- ); -} - -export default ModalComponent; diff --git a/microfrontends/SignDocuments/src/Component/component/prevNext.js b/microfrontends/SignDocuments/src/Component/component/prevNext.js deleted file mode 100644 index 42017ccaa..000000000 --- a/microfrontends/SignDocuments/src/Component/component/prevNext.js +++ /dev/null @@ -1,58 +0,0 @@ -import React from "react"; - -function PrevNext({ pageNumber, allPages, changePage }) { - //for go to previous page - function previousPage() { - changePage(-1); - } - //for go to next page - function nextPage() { - changePage(1); - } - - return ( -
-
- - - {pageNumber || (allPages ? 1 : "--")} of {allPages || "--"} - - -
-
- ); -} - -export default PrevNext; diff --git a/microfrontends/SignDocuments/src/Component/component/renderAllPdfPage.js b/microfrontends/SignDocuments/src/Component/component/renderAllPdfPage.js deleted file mode 100644 index 68c7ada02..000000000 --- a/microfrontends/SignDocuments/src/Component/component/renderAllPdfPage.js +++ /dev/null @@ -1,103 +0,0 @@ -import React from "react"; -import RSC from "react-scrollbars-custom"; -import { Document, Page, pdfjs } from "react-pdf"; -import { themeColor } from "../../utils/ThemeColor/backColor"; - -function RenderAllPdfPage({ - pdfUrl, - signPdfUrl, - allPages, - setAllPages, - setPageNumber, - setSignBtnPosition, - pageNumber -}) { - pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`; - - //set all number of pages after load pdf - function onDocumentLoad({ numPages }) { - setAllPages(numPages); - } - - return ( -
-
-
-
- Pages -
- -
- - - {Array.from(new Array(allPages), (el, index) => ( -
{ - setPageNumber(index + 1); - if (setSignBtnPosition) { - setSignBtnPosition([]); - } - }} - > - -
- ))} -
-
-
-
-
-
-
- ); -} - -export default RenderAllPdfPage; diff --git a/microfrontends/SignDocuments/src/Component/component/renderPdf.js b/microfrontends/SignDocuments/src/Component/component/renderPdf.js deleted file mode 100644 index 9f739d7b2..000000000 --- a/microfrontends/SignDocuments/src/Component/component/renderPdf.js +++ /dev/null @@ -1,688 +0,0 @@ -import React from "react"; -import RSC from "react-scrollbars-custom"; -import { Document, Page, pdfjs } from "react-pdf"; -import { - defaultWidthHeight, - handleImageResize, - handleSignYourselfImageResize -} from "../../utils/Utils"; -import EmailToast from "./emailToast"; -import Placeholder from "../WidgetComponent/placeholder"; - -pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`; - -function RenderPdf({ - pageNumber, - pdfOriginalWidth, - pdfNewWidth, - drop, - signerPos, - successEmail, - handleTabDrag, - handleStop, - isDragging, - setIsSignPad, - setIsStamp, - handleDeleteSign, - setSignKey, - pdfDetails, - xyPostion, - pdfUrl, - numPages, - pageDetails, - pdfRequest, - setCurrentSigner, - signerObjectId, - signedSigners, - setPdfLoadFail, - placeholder, - pdfLoadFail, - setSignerPos, - setXyPostion, - index, - containerWH, - setIsResize, - handleLinkUser, - setUniqueId, - signersdata, - setIsPageCopy, - setSignerObjId, - setShowDropdown, - setIsInitial, - setIsValidate, - setWidgetType, - setValidateAlert, - setIsRadio, - setCurrWidgetsDetails, - setSelectWidgetId, - selectWidgetId, - unSignedWidgetId, - setIsCheckbox, - handleNameModal -}) { - const isMobile = window.innerWidth < 767; - const newWidth = containerWH.width; - const scale = isMobile ? pdfOriginalWidth / newWidth : 1; - //check isGuestSigner is present in local if yes than handle login flow header in mobile view - const isGuestSigner = localStorage.getItem("isGuestSigner"); - - // handle signature block width and height according to screen - const posWidth = (pos, signYourself) => { - const defaultWidth = defaultWidthHeight(pos.type).width; - const posWidth = pos.Width ? pos.Width : defaultWidth; - let width; - if (signYourself) { - width = posWidth; - return width; - } else { - if (isMobile) { - if (!pos.isMobile) { - if (pos.IsResize) { - width = posWidth ? posWidth : defaultWidth; - return width; - } else { - width = (posWidth || defaultWidth) / scale; - - return width; - } - } else { - width = posWidth; - return width; - } - } else { - if (pos.isMobile) { - if (pos.IsResize) { - width = posWidth ? posWidth : defaultWidth; - return width; - } else { - width = (posWidth || defaultWidth) * pos.scale; - return width; - } - } else { - width = posWidth ? posWidth : defaultWidth; - return width; - } - } - } - }; - const posHeight = (pos, signYourself) => { - let height; - const posHeight = pos.Height; - const defaultHeight = defaultWidthHeight(pos.type).height; - - if (signYourself) { - height = posHeight ? posHeight : defaultHeight; - - return height; - } else { - if (isMobile) { - if (!pos.isMobile) { - if (pos.IsResize) { - height = posHeight ? posHeight : defaultHeight; - return height; - } else { - height = (posHeight || defaultHeight) / scale; - - return height; - } - } else { - height = posHeight ? posHeight : defaultHeight; - return height; - } - } else { - if (pos.isMobile) { - if (pos.IsResize) { - height = posHeight ? posHeight : defaultHeight; - return height; - } else { - height = (posHeight || defaultHeight) * pos.scale; - return height; - } - } else { - height = posHeight ? posHeight : defaultHeight; - return height; - } - } - } - }; - - const xPos = (pos, signYourself) => { - const resizePos = pos.xPosition; - if (signYourself) { - return resizePos; - } else { - //checking both condition mobile and desktop view - if (isMobile) { - //if pos.isMobile false -- placeholder saved from desktop view then handle position in mobile view divided by scale - if (!pos.isMobile) { - return resizePos / scale; - } - //pos.isMobile true -- placeholder save from mobile view(small device) handle position in mobile view(small screen) view divided by scale - else { - return resizePos * (pos.scale / scale); - } - } else { - //else if pos.isMobile true -- placeholder saved from mobile or tablet view then handle position in desktop view divide by scale - - if (pos.isMobile) { - return pos.scale && resizePos * pos.scale; - } - //else placeholder save from desktop(bigscreen) and show in desktop(bigscreen) - else { - return resizePos; - } - } - } - }; - const yPos = (pos, signYourself) => { - const resizePos = pos.yPosition; - if (signYourself) { - return resizePos; - } else { - //checking both condition mobile and desktop view - if (isMobile) { - //if pos.isMobile false -- placeholder saved from desktop view then handle position in mobile view divided by scale - if (!pos.isMobile) { - return resizePos / scale; - } - //pos.isMobile true -- placeholder save from mobile view(small device) handle position in mobile view(small screen) view divided by scale - else { - return resizePos * (pos.scale / scale); - } - } else { - //else if pos.isMobile true -- placeholder saved from mobile or tablet view then handle position in desktop view divide by scale - - if (pos.isMobile) { - return pos.scale && resizePos * pos.scale; - } - //else placeholder save from desktop(bigscreen) and show in desktop(bigscreen) - else { - return resizePos; - } - } - } - }; - //function for render placeholder block over pdf document - const checkSignedSignes = (data) => { - const checkSign = signedSigners.filter( - (sign) => sign.objectId === data.signerObjId - ); - if (data.signerObjId === signerObjectId) { - setCurrentSigner(true); - } - const handleAllUserName = (Id, Role, type) => { - return pdfDetails[0].Signers.map((signerData, key) => { - return ( - signerData.objectId === data.signerObjId && ( - - {signerData?.Name && ( -
- {signerData.Name} -
- )} - {type && ( -
{type}
- )} - {Role && ( -
- {`(${Role})`} -
- )} -
- ) - ); - }); - }; - - return ( - checkSign.length === 0 && - data.placeHolder.map((placeData, key) => { - return ( - - {placeData.pageNumber === pageNumber && - placeData.pos.map((pos, index) => { - return ( - pos && ( - - - - ) - ); - })} - - ); - }) - ); - }; - - const handleUserName = (Id, Role, type) => { - if (Id) { - const checkSign = signersdata.find((sign) => sign.Id === Id); - if (checkSign?.Name) { - return ( - <> -
- {checkSign?.Name} -
- {type && ( -
{type}
- )} -
- {`(${Role})`} -
- - ); - } else { - return ( - <> - {type && ( -
{type}
- )} -
- {Role} -
- - ); - } - } else { - return ( - <> - {type && ( -
{type}
- )} -
- {Role} -
- - ); - } - }; - - return ( - <> - {isMobile && scale ? ( -
- - {pdfLoadFail.status && - (pdfRequest - ? signerPos.map((data, key) => { - return ( - - {checkSignedSignes(data)} - - ); - }) - : placeholder // placeholder mobile - ? signerPos.map((data, ind) => { - return ( - - {data.placeHolder.map((placeData, index) => { - return ( - - {placeData.pageNumber === pageNumber && - placeData.pos.map((pos) => { - return ( - - - - ); - })} - - ); - })} - - ); - }) - : xyPostion.map((data, ind) => { - return ( - - {data.pageNumber === pageNumber && - data.pos.map((pos) => { - return ( - pos && ( - - ) - ); - })} - - ); - }))} - - {/* this component for render pdf document is in middle of the component */} -
- { - setPdfLoadFail(true); - }} - loading={"Loading Document.."} - onLoadSuccess={pageDetails} - // ref={pdfRef}' - onClick={() => { - if (setSelectWidgetId) { - setSelectWidgetId(""); - } - }} - file={ - pdfUrl - ? pdfUrl - : pdfDetails[0] && pdfDetails[0].SignedUrl - ? pdfDetails[0].SignedUrl - : pdfDetails[0].URL - } - > - {Array.from(new Array(numPages), (el, index) => ( - { - console.log("annotation error", error); - }} - /> - ))} - -
-
- ) : ( - pdfNewWidth ? pdfNewWidth : pdfOriginalWidth, - height: window.innerHeight - 110 + "px" - }} - noScrollY={false} - noScrollX={pdfNewWidth < pdfOriginalWidth ? false : true} - > -
- - {pdfLoadFail.status && - (pdfRequest - ? signerPos.map((data, key) => { - return ( - - {checkSignedSignes(data)} - - ); - }) - : placeholder - ? signerPos.map((data, ind) => { - return ( - - {data.placeHolder.map((placeData, index) => { - return ( - - {placeData.pageNumber === pageNumber && - placeData.pos.map((pos) => { - return ( - - - - ); - })} - - ); - })} - - ); - }) - : xyPostion.map((data, ind) => { - return ( - - {data.pageNumber === pageNumber && - data.pos.map((pos) => { - return ( - pos && ( - - - handleStop(event, dragElement, pos.type) - } - handleSignYourselfImageResize={ - handleSignYourselfImageResize - } - index={index} - xyPostion={xyPostion} - setXyPostion={setXyPostion} - pdfOriginalWidth={pdfOriginalWidth} - containerWH={containerWH} - setIsSignPad={setIsSignPad} - isShowBorder={true} - isSignYourself={true} - xPos={xPos} - yPos={yPos} - posWidth={posWidth} - posHeight={posHeight} - pdfDetails={pdfDetails[0]} - isDragging={isDragging} - setIsInitial={setIsInitial} - setWidgetType={setWidgetType} - setSelectWidgetId={setSelectWidgetId} - selectWidgetId={selectWidgetId} - handleUserName={handleUserName} - setIsCheckbox={setIsCheckbox} - setCurrWidgetsDetails={ - setCurrWidgetsDetails - } - /> - - ) - ); - })} - - ); - }))} - - {/* this component for render pdf document is in middle of the component */} - { - const load = { - status: false, - type: "failed" - }; - setPdfLoadFail(load); - }} - loading={"Loading Document.."} - onLoadSuccess={pageDetails} - onClick={() => { - if (setSelectWidgetId) { - setSelectWidgetId(""); - } - }} - // ref={pdfRef} - file={ - pdfUrl - ? pdfUrl - : pdfDetails[0] && pdfDetails[0].SignedUrl - ? pdfDetails[0].SignedUrl - : pdfDetails[0].URL - } - > - {Array.from(new Array(numPages), (el, index) => ( - { - console.log("annotation error", error); - }} - /> - ))} - -
-
- )} - - ); -} - -export default RenderPdf; diff --git a/microfrontends/SignDocuments/src/Component/component/signPad.js b/microfrontends/SignDocuments/src/Component/component/signPad.js deleted file mode 100644 index 6374ef7d3..000000000 --- a/microfrontends/SignDocuments/src/Component/component/signPad.js +++ /dev/null @@ -1,680 +0,0 @@ -import React from "react"; -import { useRef, useState } from "react"; -import SignatureCanvas from "react-signature-canvas"; -import redPen from "../../assests/redPen.png"; -import bluePen from "../../assests/bluePen.png"; -import blackPen from "../../assests/blackPen.png"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import { useEffect } from "react"; - -function SignPad({ - isSignPad, - isStamp, - setIsImageSelect, - onSaveSign, - setIsSignPad, - setImage, - isImageSelect, - imageRef, - onImageChange, - onSaveImage, - image, - defaultSign, - setSignature, - myInitial, - isInitial, - setIsInitial, - setIsStamp, - widgetType -}) { - const [penColor, setPenColor] = useState("blue"); - const allColor = [bluePen, redPen, blackPen]; - const canvasRef = useRef(null); - const [isDefaultSign, setIsDefaultSign] = useState(false); - const [isTab, setIsTab] = useState("draw"); - const [isSignImg, setIsSignImg] = useState(""); - const [signValue, setSignValue] = useState(""); - const [textWidth, setTextWidth] = useState(null); - const [textHeight, setTextHeight] = useState(null); - const fontOptions = [ - { value: "Fasthand" }, - { value: "Dancing Script" }, - { value: "Cedarville Cursive" }, - { value: "Delicious Handrawn" } - // Add more font options as needed - ]; - const [fontSelect, setFontSelect] = useState(fontOptions[0].value); - - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - const currentUserName = jsonSender && jsonSender.name; - - useEffect(() => { - const trimmedName = currentUserName.trim(); - const firstCharacter = trimmedName.charAt(0); - const userName = isInitial ? firstCharacter : currentUserName; - setSignValue(userName); - setFontSelect("Fasthand"); - }, []); - //function for clear signature image - const handleClear = () => { - if (isTab === "draw") { - if (canvasRef.current) { - canvasRef.current.clear(); - } else if (isStamp) { - setImage(""); - } - - setIsSignImg(""); - } else if (isTab === "uploadImage") { - setImage(""); - } - setIsInitial(false); - }; - //function for set signature url - const handleSignatureChange = (dataURL) => { - // canvasRef.current.backgroundColor = 'rgb(165, 26, 26)' - setSignature(canvasRef.current.toDataURL()); - setIsSignImg(canvasRef.current.toDataURL()); - }; - - //save button component - const SaveBtn = () => { - return ( -
- {(isTab === "draw" || isTab === "uploadImage") && ( - - )} - - -
- ); - }; - - useEffect(() => { - const loadFont = async () => { - try { - await document.fonts.load(`20px ${fontSelect}`); - const selectFontSTyle = fontOptions.find( - (font) => font.value === fontSelect - ); - setFontSelect(selectFontSTyle?.value || fontOptions[0].value); - } catch (error) { - console.error("Error loading font:", error); - } - }; - - loadFont(); - }, [fontSelect]); - - useEffect(() => { - // Load the default signature after the component mounts - if (canvasRef.current) { - canvasRef.current.fromDataURL(isSignImg); - } - if (isTab === "type") { - const trimmedName = signValue ? signValue.trim() : currentUserName.trim(); - const firstCharacter = trimmedName.charAt(0); - const userName = isInitial ? firstCharacter : signValue; - setSignValue(userName); - convertToImg(fontSelect, userName); - } - }, [isTab]); - - //function for convert input text value in image - const convertToImg = async (fontStyle, text) => { - //get text content to convert in image - const textContent = text; - const fontfamily = fontStyle - ? fontStyle - : fontSelect - ? fontSelect - : "Fasthand"; - - //creating span for getting text content width - const span = document.createElement("span"); - span.textContent = textContent; - span.style.font = `20px ${fontfamily}`; // here put your text size and font family - span.style.display = "hidden"; - document.body.appendChild(span); // Replace 'container' with the ID of the container element - - //create canvas to render text in canvas and convert in image - const canvasElement = document.createElement("canvas"); - // Draw the text content on the canvas - const ctx = canvasElement.getContext("2d"); - const pixelRatio = window.devicePixelRatio || 1; - const width = span.offsetWidth; - const height = span.offsetHeight; - setTextWidth(width); - setTextHeight(height); - const font = span.style["font"]; - // Set the canvas dimensions to match the span - canvasElement.width = width * pixelRatio; - canvasElement.height = height * pixelRatio; - - // Render the content of the span onto the canvas - // ctx.fillStyle = "white"; // Set the background color of the canvas - // ctx.fillRect(0, 0, width*pixelRatio, height*pixelRatio); - - // You can customize text styles if needed - ctx.font = font; - ctx.fillStyle = "black"; // Set the text color - ctx.textAlign = "center"; - ctx.textBaseline = "middle"; - ctx.scale(pixelRatio, pixelRatio); - // Draw the content of the span onto the canvas - ctx.fillText(span.textContent, width / 2, height / 2); // Adjust the x,y-coordinate as needed - //remove span tag - document.body.removeChild(span); - // Convert the canvas to image data - const dataUrl = canvasElement.toDataURL("image/png"); - setSignature(dataUrl); - }; - - return ( -
- {isSignPad && ( -
-
-
-
-
-
- {isStamp ? ( - - {widgetType === "image" - ? "Upload image" - : "Upload stamp image"} - - ) : ( - <> -
- { - setIsDefaultSign(false); - setIsImageSelect(false); - setIsTab("draw"); - setImage(); - }} - style={{ - color: - isTab === "draw" ? themeColor() : "#515252", - - marginLeft: "2px" - }} - className="signTab" - > - Draw - - -
-
-
- { - setIsDefaultSign(false); - setIsImageSelect(true); - setIsTab("uploadImage"); - }} - style={{ - color: - isTab === "uploadImage" - ? themeColor() - : "#515252" - }} - className="signTab" - > - Upload Image - -
-
-
- { - setIsDefaultSign(false); - setIsImageSelect(false); - setIsTab("type"); - setImage(); - }} - style={{ - color: - isTab === "type" ? themeColor() : "#515252", - - marginLeft: "2px" - }} - className="signTab" - > - Type - - -
-
- {!isInitial && defaultSign ? ( -
- { - setIsDefaultSign(true); - setIsImageSelect(true); - setIsTab("mysignature"); - setImage(); - }} - style={{ - color: - isTab === "mysignature" - ? themeColor() - : "#515252" - }} - className="signTab" - > - My Signature - -
-
- ) : ( - isInitial && - myInitial && ( -
- { - setIsDefaultSign(true); - setIsImageSelect(true); - setIsTab("mysignature"); - setImage(); - }} - style={{ - color: - isTab === "mysignature" - ? themeColor() - : "#515252" - }} - className="signTab" - > - My Initials - -
-
- ) - )} - - )} -
-
-
-
{ - setPenColor("blue"); - setIsSignPad(false); - setIsInitial(false); - setIsImageSelect(false); - setIsDefaultSign(false); - setImage(); - setIsTab("draw"); - setSignValue(""); - setIsStamp(false); - }} - > - × -
-
-
- {isDefaultSign ? ( - <> -
-
- stamp img -
-
-
- -
- - ) : isImageSelect || isStamp ? ( - !image ? ( -
-
imageRef.current.click()} - > - - -
Upload
-
-
- ) : ( - <> -
-
- print img -
-
-
- -
- - ) - ) : isTab === "type" ? ( -
-
- - {isInitial ? "Initials" : "Signature"}: - - - { - setSignValue(e.target.value); - convertToImg(fontSelect, e.target.value); - }} - /> -
- -
- {fontOptions.map((font, ind) => { - return ( -
{ - setFontSelect(font.value); - convertToImg(font.value, signValue); - }} - > -
- {signValue ? signValue : "Your signature"} -
-
- ); - })} -
- -
- -
-
- ) : ( - <> -
- - handleSignatureChange(canvasRef.current.toDataURL()) - } - dotSize={1} - /> -
-
-
- {allColor.map((data, key) => { - return ( - pen img { - if (key === 0) { - setPenColor("blue"); - } else if (key === 1) { - setPenColor("red"); - } else if (key === 2) { - setPenColor("black"); - } - }} - src={data} - width={20} - height={20} - /> - ); - })} -
- - -
- - )} -
-
-
- )} -
- ); -} - -export default SignPad; diff --git a/microfrontends/SignDocuments/src/Component/component/signedby.js b/microfrontends/SignDocuments/src/Component/component/signedby.js deleted file mode 100644 index f7e8f8ce8..000000000 --- a/microfrontends/SignDocuments/src/Component/component/signedby.js +++ /dev/null @@ -1,70 +0,0 @@ -import React from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import "../../css/signature.css"; -function Signedby({ pdfDetails }) { - const getFirstLetter = (name) => { - const firstLetter = name.charAt(0); - return firstLetter; - }; - - return ( -
-
- Signed By -
-
-
-
- - {" "} - {getFirstLetter(pdfDetails.ExtUserPtr.Name)} - -
-
- {pdfDetails.ExtUserPtr.Name} - {pdfDetails.ExtUserPtr.Email} -
-
-
-
- - - - - ); -} - -export default Signedby; diff --git a/microfrontends/SignDocuments/src/Component/component/signerListPlace.js b/microfrontends/SignDocuments/src/Component/component/signerListPlace.js deleted file mode 100644 index 68b0df130..000000000 --- a/microfrontends/SignDocuments/src/Component/component/signerListPlace.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react"; -import { themeColor } from "../../utils/ThemeColor/backColor"; -import "../../css/signerListPlace.css"; -import RecipientList from "../../premitives/RecipientList"; - -function SignerListPlace(props) { - return ( -
-
- - {props.title ? props.title : "Recipients"} - -
-
- -
- {props.handleAddSigner && ( -
props.handleAddSigner()} - > - - Add role -
- )} -
- ); -} - -export default SignerListPlace; diff --git a/microfrontends/SignDocuments/src/Component/login.js b/microfrontends/SignDocuments/src/Component/login.js deleted file mode 100644 index 7fadc7776..000000000 --- a/microfrontends/SignDocuments/src/Component/login.js +++ /dev/null @@ -1,282 +0,0 @@ -import React, { useState } from "react"; -import "../css/LoginPage.css"; -import loader from "../assests/loader2.gif"; -import axios from "axios"; -import { useParams } from "react-router-dom"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import { useEffect } from "react"; -import { useNavigate } from "react-router-dom"; - -function Login() { - const { id, userMail, contactBookId, serverUrl } = useParams(); - let navigate = useNavigate(); - const [email, setEmail] = useState(userMail); - const [OTP, setOTP] = useState(""); - const [EnterOTP, setEnterOtp] = useState(false); - const [loading, setLoading] = useState(false); - const [isLoading, setIsLoading] = useState(true); - - useEffect(() => { - handleServerUrl(); - }, []); - - //function generate serverUrl and parseAppId from url and save it in local storage - const handleServerUrl = () => { - //split url in array from '&' - localStorage.clear(); - const checkSplit = serverUrl.split("&"); - const server = checkSplit[0]; - const parseId = checkSplit[1]; - const appName = checkSplit[2]; - - const newServer = server.replaceAll("%2F", "/"); - localStorage.setItem("baseUrl", newServer); - localStorage.setItem("parseAppId", parseId); - localStorage.setItem("_appName", appName); - setIsLoading(false); - }; - - const handleChange = (event) => { - const { value } = event.target; - setOTP(value); - }; - - //send email OTP function - const SendOtp = async (e) => { - const serverUrl = - localStorage.getItem("baseUrl") && localStorage.getItem("baseUrl"); - const parseId = - localStorage.getItem("parseAppId") && localStorage.getItem("parseAppId"); - if (serverUrl && localStorage) { - setLoading(true); - e.preventDefault(); - setEmail(email); - - try { - let url = `${serverUrl}functions/SendOTPMailV1/`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": parseId - }; - let body = { - email: email.toString() - }; - let Otp = await axios.post(url, body, { headers: headers }); - - if (Otp) { - setLoading(false); - setEnterOtp(true); - } - } catch (error) { - alert("something went wrong!"); - } - } else { - alert("something went wrong!"); - } - }; - - //verify OTP send on via email - const VerifyOTP = async (e) => { - e.preventDefault(); - const serverUrl = - localStorage.getItem("baseUrl") && localStorage.getItem("baseUrl"); - const parseId = - localStorage.getItem("parseAppId") && localStorage.getItem("parseAppId"); - if (OTP) { - setLoading(true); - try { - let url = `${serverUrl}functions/AuthLoginAsMail/`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": parseId - }; - let body = { - email: email, - otp: OTP - }; - let user = await axios.post(url, body, { headers: headers }); - if (user.data.result === "Invalid Otp") { - alert("Invalid Otp"); - setLoading(false); - } else if (user.data.result === "user not found!") { - alert("User not found!"); - setLoading(false); - } else { - let _user = user.data.result; - const parseId = localStorage.getItem("parseAppId"); - localStorage.setItem("UserInformation", JSON.stringify(_user)); - localStorage.setItem( - `Parse/${parseId}/currentUser`, - JSON.stringify(_user) - ); - localStorage.setItem("username", _user.name); - localStorage.setItem("accesstoken", _user.sessionToken); - //save isGuestSigner true in local to handle login flow header in mobile view - localStorage.setItem("isGuestSigner", true); - setLoading(false); - navigate( - `/loadmf/signmicroapp/recipientSignPdf/${id}/${contactBookId}` - ); - } - } catch (error) {} - } else { - alert("Please Enter OTP!"); - } - }; - - return ( -
- {isLoading ? ( -
- no img - - {isLoading.message} - -
- ) : ( -
-
-
- sign img -
-
- - {!EnterOTP ? ( -
-
- Welcome Back ! -
- - Verification code is sent to your email - -
-
- -
-
-
-
- {loading ? ( - - ) : ( - - )} -
-
-
- ) : ( -
-
- Welcome Back ! -
- You will get a OTP via Email -
-
- - - -
-
-
-
- {loading ? ( - - ) : ( - - )} -
-
-
- )} -
- )} -
- ); -} - -export default Login; diff --git a/microfrontends/SignDocuments/src/Component/placeHolderSign.js b/microfrontends/SignDocuments/src/Component/placeHolderSign.js deleted file mode 100644 index 5d3fb7828..000000000 --- a/microfrontends/SignDocuments/src/Component/placeHolderSign.js +++ /dev/null @@ -1,1757 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import axios from "axios"; -import Parse from "parse"; -import "../css/./signature.css"; -import { PDFDocument } from "pdf-lib"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { useDrag, useDrop } from "react-dnd"; -import RenderAllPdfPage from "./component/renderAllPdfPage"; -import FieldsComponent from "./component/fieldsComponent"; -import Tour from "reactour"; -import loader from "../assests/loader2.gif"; -import { useLocation, useParams } from "react-router-dom"; -import Loader from "./component/loader"; -import HandleError from "./component/HandleError"; -import Nodata from "./component/Nodata"; -import SignerListPlace from "./component/signerListPlace"; -import Header from "./component/header"; -import { - pdfNewWidthFun, - contractDocument, - contractUsers, - getHostUrl, - addZIndex, - randomId, - defaultWidthHeight, - multiSignEmbed, - addWidgetOptions -} from "../utils/Utils"; -import RenderPdf from "./component/renderPdf"; -import { useNavigate } from "react-router-dom"; -import PlaceholderCopy from "./component/PlaceholderCopy"; -import LinkUserModal from "./component/LinkUserModal"; -import Title from "./component/Title"; -import TourContentWithBtn from "../premitives/TourContentWithBtn"; -import ModalUi from "../premitives/ModalUi"; -import DropdownWidgetOption from "../Component/WidgetComponent/dropdownWidgetOption"; -import NameModal from "./WidgetComponent/NameModal"; - -function PlaceHolderSign() { - const navigate = useNavigate(); - const { state } = useLocation(); - const [pdfDetails, setPdfDetails] = useState([]); - const [isMailSend, setIsMailSend] = useState(false); - const [allPages, setAllPages] = useState(null); - const numPages = 1; - const [pageNumber, setPageNumber] = useState(1); - const [signBtnPosition, setSignBtnPosition] = useState([]); - const [xySignature, setXYSignature] = useState({}); - const [dragKey, setDragKey] = useState(); - const [signersdata, setSignersData] = useState(); - const [signerObjId, setSignerObjId] = useState(); - const [signerPos, setSignerPos] = useState([]); - const [isSelectListId, setIsSelectId] = useState(); - const [isSendAlert, setIsSendAlert] = useState({}); - const [isSend, setIsSend] = useState(false); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [handleError, setHandleError] = useState(); - const [currentId, setCurrentId] = useState(""); - const [pdfNewWidth, setPdfNewWidth] = useState(); - const [placeholderTour, setPlaceholderTour] = useState(true); - const [checkTourStatus, setCheckTourStatus] = useState(false); - const [tourStatus, setTourStatus] = useState([]); - const [signerUserId, setSignerUserId] = useState(); - const [noData, setNoData] = useState(false); - const [pdfOriginalWidth, setPdfOriginalWidth] = useState(); - const [contractName, setContractName] = useState(""); - const [containerWH, setContainerWH] = useState(); - const { docId } = useParams(); - const signRef = useRef(null); - const dragRef = useRef(null); - const divRef = useRef(null); - const [isShowEmail, setIsShowEmail] = useState(false); - const [selectedEmail, setSelectedEmail] = useState(false); - const [isResize, setIsResize] = useState(false); - const [zIndex, setZIndex] = useState(1); - const [signKey, setSignKey] = useState(); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const [isPageCopy, setIsPageCopy] = useState(false); - const [uniqueId, setUniqueId] = useState(""); - const [roleName, setRoleName] = useState(""); - const [isAddUser, setIsAddUser] = useState({}); - const [signerExistModal, setSignerExistModal] = useState(false); - const [isDontShow, setIsDontShow] = useState(false); - const [isDragging, setIsDragging] = useState(false); - const [showDropdown, setShowDropdown] = useState(false); - const [widgetType, setWidgetType] = useState(""); - const [isUiLoading, setIsUiLoading] = useState(false); - const [isRadio, setIsRadio] = useState(false); - const [currWidgetsDetails, setCurrWidgetsDetails] = useState([]); - const [selectWidgetId, setSelectWidgetId] = useState(""); - const [isCheckbox, setIsCheckbox] = useState(false); - const [isNameModal, setIsNameModal] = useState(false); - const [widgetName, setWidgetName] = useState(false); - const [mailStatus, setMailStatus] = useState(""); - const color = [ - "#93a3db", - "#e6c3db", - "#c0e3bc", - "#bce3db", - "#b8ccdb", - "#ceb8db", - "#ffccff", - "#99ffcc", - "#cc99ff", - "#ffcc99", - "#66ccff", - "#ffffcc" - ]; - - const isMobile = window.innerWidth < 767; - const [, drop] = useDrop({ - accept: "BOX", - drop: (item, monitor) => addPositionOfSignature(item, monitor), - collect: (monitor) => ({ - isOver: !!monitor.isOver() - }) - }); - - const [{ isDragSign }, dragSignature] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 1, - text: "signature" - }, - - collect: (monitor) => ({ - isDragSign: !!monitor.isDragging() - }) - }); - const [{ isDragStamp }, dragStamp] = useDrag({ - type: "BOX", - item: { - type: "BOX", - id: 2, - text: "stamp" - }, - - collect: (monitor) => ({ - isDragStamp: !!monitor.isDragging() - }) - }); - - const rowLevel = - localStorage.getItem("rowlevel") && - JSON.parse(localStorage.getItem("rowlevel")); - const objectId = - rowLevel && rowLevel.id - ? rowLevel.id - : rowLevel?.objectId && rowLevel.objectId; - - const documentId = docId ? docId : objectId && objectId; - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - useEffect(() => { - if (documentId) { - getDocumentDetails(); - } - }, []); - - useEffect(() => { - if (divRef.current) { - const pdfWidth = pdfNewWidthFun(divRef); - setPdfNewWidth(pdfWidth); - setContainerWH({ - width: divRef.current.offsetWidth, - height: divRef.current.offsetHeight - }); - } - }, [divRef.current]); - - //function for get document details - const getDocumentDetails = async () => { - //getting document details - const documentData = await contractDocument(documentId); - if (documentData && documentData.length > 0) { - // const alreadyPlaceholder = - // documentData[0].Placeholders && documentData[0].Placeholders; - // if (alreadyPlaceholder && alreadyPlaceholder.length > 0) { - // setIsAlreadyPlace(true); - // } - // setSignersData(documentData[0]); - // setIsSelectId(0); - // setSignerObjId(documentData[0].Signers[0].objectId); - // setContractName(documentData[0].Signers[0].className); - setPdfDetails(documentData); - - if (documentData[0].Signers && documentData[0].Signers.length > 0) { - const currEmail = documentData[0].ExtUserPtr.Email; - setCurrentId(currEmail); - setSignerObjId(documentData[0].Signers[0].objectId); - setContractName(documentData[0].Signers[0].className); - setIsSelectId(0); - if ( - documentData[0].Placeholders && - documentData[0].Placeholders.length > 0 - ) { - setSignerPos(documentData[0].Placeholders); - let signers = [...documentData[0].Signers]; - let updatedSigners = documentData[0].Placeholders.map((x) => { - let matchingSigner = signers.find( - (y) => x.signerObjId && x.signerObjId === y.objectId - ); - - if (matchingSigner) { - return { - ...matchingSigner, - Role: x.Role ? x.Role : matchingSigner.Role, - Id: x.Id, - blockColor: x.blockColor - }; - } else { - return { - Role: x.Role, - Id: x.Id, - blockColor: x.blockColor - }; - } - }); - setSignersData(updatedSigners); - setUniqueId(updatedSigners[0].Id); - } else { - const updatedSigners = documentData[0].Signers.map((x, index) => ({ - ...x, - Id: randomId(), - Role: "User " + (index + 1) - })); - setSignersData(updatedSigners); - setUniqueId(updatedSigners[0].Id); - } - } else { - setRoleName("User 1"); - if ( - documentData[0].Placeholders && - documentData[0].Placeholders.length > 0 - ) { - let updatedSigners = documentData[0].Placeholders.map((x) => { - return { - Role: x.Role, - Id: x.Id, - blockColor: x.blockColor - }; - }); - - setSignerPos(documentData[0].Placeholders); - setSignersData(updatedSigners); - setIsSelectId(0); - setUniqueId(updatedSigners[0].Id); - } - } - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else { - setNoData(true); - - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - const res = await contractUsers(jsonSender.email); - if (res[0] && res.length) { - setSignerUserId(res[0].objectId); - const tourstatus = res[0].TourStatus && res[0].TourStatus; - if (tourstatus && tourstatus.length > 0) { - setTourStatus(tourstatus); - const checkTourRecipients = tourstatus.filter( - (data) => data.placeholder - ); - if (checkTourRecipients && checkTourRecipients.length > 0) { - setCheckTourStatus(checkTourRecipients[0].placeholder); - } - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } else if (res === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else if (res.length === 0) { - setNoData(true); - - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - } - }; - - //function for setting position after drop signature button over pdf - const addPositionOfSignature = (item, monitor) => { - if (item && item.text) { - setWidgetName(item.text); - } - getSignerPos(item, monitor); - }; - - const getSignerPos = (item, monitor) => { - // setSignerObjId(""); - // setContractName(""); - if (uniqueId) { - const posZIndex = zIndex + 1; - setZIndex(posZIndex); - const signer = signersdata.find((x) => x.Id === uniqueId); - const newWidth = containerWH.width; - const scale = pdfOriginalWidth / newWidth; - const key = randomId(); - let dropData = []; - let placeHolder; - const dragTypeValue = item?.text ? item.text : monitor.type; - - if (item === "onclick") { - const dropObj = { - //onclick put placeholder center on pdf - xPosition: window.innerWidth / 2 - 150, - yPosition: window.innerHeight / 2 - 60, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - isDrag: false, - scale: scale, - isMobile: isMobile, - zIndex: posZIndex, - type: dragTypeValue, - options: addWidgetOptions(dragTypeValue) - }; - dropData.push(dropObj); - placeHolder = { - pageNumber: pageNumber, - pos: dropData - }; - } else { - const offset = monitor.getClientOffset(); - //adding and updating drop position in array when user drop signature button in div - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - const x = offset.x - containerRect.left; - const y = offset.y - containerRect.top; - const dropObj = { - xPosition: signBtnPosition[0] ? x - signBtnPosition[0].xPos : x, - yPosition: signBtnPosition[0] ? y - signBtnPosition[0].yPos : y, - isStamp: - (dragTypeValue === "stamp" || dragTypeValue === "image") && true, - key: key, - scale: scale, - isMobile: isMobile, - zIndex: posZIndex, - type: dragTypeValue, - options: addWidgetOptions(dragTypeValue) - }; - - dropData.push(dropObj); - placeHolder = { - pageNumber: pageNumber, - pos: dropData - }; - } - - setSelectWidgetId(key); - if (signer) { - let filterSignerPos; - if (dragTypeValue === "label") { - filterSignerPos = signerPos.filter((data) => data.Role === "prefill"); - } else { - filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - } - - const { blockColor, Role } = signer; - - //adding placholder in existing signer pos array (placaholder) - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - const updatePlace = getPlaceHolder.filter( - (data) => data.pageNumber !== pageNumber - ); - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - //add entry of position for same signer on multiple page - if (getPageNumer.length > 0) { - const getPos = getPageNumer[0].pos; - const newSignPos = getPos.concat(dropData); - let xyPos = { - pageNumber: pageNumber, - pos: newSignPos - }; - updatePlace.push(xyPos); - let updatesignerPos; - if (dragTypeValue === "label") { - updatesignerPos = signerPos.map((x) => - x.Role === "prefill" ? { ...x, placeHolder: updatePlace } : x - ); - } else { - updatesignerPos = signerPos.map((x) => - x.Id === uniqueId ? { ...x, placeHolder: updatePlace } : x - ); - } - - setSignerPos(updatesignerPos); - } else { - let updatesignerPos; - if (dragTypeValue === "label") { - updatesignerPos = signerPos.map((x) => - x.Role === "prefill" - ? { ...x, placeHolder: [...x.placeHolder, placeHolder] } - : x - ); - } else { - updatesignerPos = signerPos.map((x) => - x.Id === uniqueId - ? { ...x, placeHolder: [...x.placeHolder, placeHolder] } - : x - ); - } - setSignerPos(updatesignerPos); - } - } else { - //adding new placeholder for selected signer in pos array (placeholder) - // const signerData = signerPos; - let placeHolderPos; - if (dragTypeValue === "label") { - placeHolderPos = { - signerPtr: {}, - signerObjId: "", - blockColor: "#f58f8c", - placeHolder: [placeHolder], - Role: "prefill", - Id: key - }; - } else { - if (contractName) { - placeHolderPos = { - signerPtr: { - __type: "Pointer", - className: `${contractName}`, - objectId: signerObjId - }, - signerObjId: signerObjId, - blockColor: blockColor ? blockColor : color[isSelectListId], - placeHolder: [placeHolder], - Role: Role ? Role : roleName, - Id: uniqueId - }; - } else { - placeHolderPos = { - signerPtr: {}, - signerObjId: "", - blockColor: blockColor ? blockColor : color[isSelectListId], - placeHolder: [placeHolder], - Role: Role ? Role : roleName, - Id: uniqueId - }; - } - } - setSignerPos((prev) => [...prev, placeHolderPos]); - } - if (dragTypeValue === "dropdown") { - setShowDropdown(true); - } else if (dragTypeValue === "checkbox") { - setIsCheckbox(true); - } else if (dragTypeValue === "radio") { - setIsRadio(true); - } else if (dragTypeValue !== "label" && dragTypeValue !== "signature") { - setIsNameModal(true); - } - setWidgetType(dragTypeValue); - setSignKey(key); - } - } - }; - - //function for get pdf page details - const pageDetails = async (pdf) => { - const load = { - status: true - }; - setPdfLoadFail(load); - pdf.getPage(1).then((pdfPage) => { - const pageWidth = pdfPage.view[2]; - - setPdfOriginalWidth(pageWidth); - }); - }; - - //function for save x and y position and show signature tab on that position - const handleTabDrag = (key, signerId) => { - setDragKey(key); - setIsDragging(true); - }; - - //function for set and update x and y postion after drag and drop signature tab - const handleStop = (event, dragElement, signerId, key) => { - if (!isResize && isDragging) { - const dataNewPlace = addZIndex(signerPos, key, setZIndex); - let updateSignPos = [...signerPos]; - updateSignPos.splice(0, updateSignPos.length, ...dataNewPlace); - // signerPos.splice(0, signerPos.length, ...dataNewPlace); - const containerRect = document - .getElementById("container") - .getBoundingClientRect(); - const signId = signerId ? signerId : uniqueId; //? signerId : signerObjId; - const keyValue = key ? key : dragKey; - const ybottom = containerRect.height - dragElement.y; - - if (keyValue >= 0) { - let filterSignerPos; - if (signId) { - filterSignerPos = updateSignPos.filter((data) => data.Id === signId); - } else { - filterSignerPos = updateSignPos.filter( - (data) => data.Role === "prefill" - ); - } - - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - - const getPosData = getXYdata; - const addSignPos = getPosData.map((url, ind) => { - if (url.key === keyValue) { - return { - ...url, - xPosition: dragElement.x, - yPosition: dragElement.y, - isDrag: true, - yBottom: ybottom - }; - } - return url; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = updateSignPos.map((obj, ind) => { - if (signId) { - if (obj.Id === signId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - } else { - if (obj.Role === "prefill") { - return { ...obj, placeHolder: newUpdateSignPos }; - } - } - - return obj; - }); - - setSignerPos(newUpdateSigner); - } - } - } - } - setTimeout(() => { - setIsDragging(false); - }, 200); - }; - - //function for delete signature block - const handleDeleteSign = (key, Id) => { - const updateData = []; - const filterSignerPos = signerPos.filter((data) => data.Id === Id); - - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos.filter( - (data, ind) => data.key !== key - ); - - if (getXYdata.length > 0) { - updateData.push(getXYdata); - const newUpdatePos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: updateData[0] }; - } - return obj; - }); - - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === Id) { - return { ...obj, placeHolder: newUpdatePos }; - } - return obj; - }); - setSignerPos(newUpdateSigner); - } else { - const updateFilter = signerPos.filter((data) => data.Id !== Id); - const getRemainPage = filterSignerPos[0].placeHolder.filter( - (data) => data.pageNumber !== pageNumber - ); - - if (getRemainPage && getRemainPage.length > 0) { - const newUpdatePos = filterSignerPos.map((obj, ind) => { - if (obj.Id === Id) { - return { ...obj, placeHolder: getRemainPage }; - } - return obj; - }); - let signerupdate = []; - signerupdate = signerPos.filter((data) => data.Id !== Id); - signerupdate.push(newUpdatePos[0]); - - setSignerPos(signerupdate); - } else { - setSignerPos(updateFilter); - } - } - } - } - }; - - //function for change page - function changePage(offset) { - setSignBtnPosition([]); - setPageNumber((prevPageNumber) => prevPageNumber + offset); - } - - //function for capture position on hover signature button - const handleDivClick = (e) => { - const divRect = e.currentTarget.getBoundingClientRect(); - const mouseX = e.clientX - divRect.left; - const mouseY = e.clientY - divRect.top; - - const xyPosition = { - xPos: mouseX, - yPos: mouseY - }; - - setXYSignature(xyPosition); - }; - - //function for capture position of x and y on hover signature button last position - const handleMouseLeave = (e) => { - setSignBtnPosition([xySignature]); - }; - - function sanitizeFileName(fileName) { - // Remove spaces and invalid characters - return fileName.replace(/[^a-zA-Z0-9._-]/g, ""); - } - //embed prefill label widget data - const embedPrefilllData = async () => { - const prefillExist = signerPos.filter((data) => data.Role === "prefill"); - if (prefillExist && prefillExist.length > 0) { - const placeholder = prefillExist[0].placeHolder; - const pdfUrl = pdfDetails[0].URL; - const existingPdfBytes = await fetch(pdfUrl).then((res) => - res.arrayBuffer() - ); - const pdfDoc = await PDFDocument.load(existingPdfBytes, { - ignoreEncryption: true - }); - - const flag = false; - try { - const pdfBytes = await multiSignEmbed( - placeholder, - pdfDoc, - pdfOriginalWidth, - flag, - containerWH - ); - - const parseBaseUrl = localStorage.getItem("baseUrl"); - const parseAppId = localStorage.getItem("parseAppId"); - Parse.serverURL = parseBaseUrl; - Parse.initialize(parseAppId); - const fileName = sanitizeFileName(pdfDetails[0].Name) + ".pdf"; - const pdfFile = new Parse.File(fileName, { base64: pdfBytes }); - - // Save the Parse File if needed - const pdfData = await pdfFile.save(); - const pdfUrl = pdfData.url(); - return pdfUrl; - } catch (e) { - console.log("error", e); - } - } else { - return pdfDetails[0].URL; - } - }; - - const alertSendEmail = async () => { - const filterPrefill = signerPos.filter((data) => data.Role !== "prefill"); - if (filterPrefill.length === signersdata.length) { - const IsSignerNotExist = filterPrefill?.some((x) => !x.signerObjId); - if (IsSignerNotExist) { - setSignerExistModal(true); - } else { - const alert = { - mssg: "confirm", - alert: true - }; - setIsSendAlert(alert); - } - } else { - const alert = { - mssg: "sure", - alert: true - }; - setIsSendAlert(alert); - } - }; - - const sendEmailToSigners = async () => { - setIsUiLoading(true); - const pdfUrl = await embedPrefilllData(); - setIsSendAlert({}); - let sendMail; - const expireDate = pdfDetails?.[0].ExpiryDate.iso; - const newDate = new Date(expireDate); - const localExpireDate = newDate.toLocaleDateString("en-US", { - day: "numeric", - month: "long", - year: "numeric" - }); - let sender = pdfDetails?.[0].ExtUserPtr.Email; - let signerMail = signersdata.slice(); - - if (pdfDetails?.[0]?.SendinOrder && pdfDetails?.[0]?.SendinOrder === true) { - signerMail.splice(1); - } - for (let i = 0; i < signerMail.length; i++) { - try { - const imgPng = - "https://qikinnovation.ams3.digitaloceanspaces.com/logo.png"; - let url = `${localStorage.getItem("baseUrl")}functions/sendmailv3/`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - }; - const serverUrl = localStorage.getItem("baseUrl"); - const newServer = serverUrl.replaceAll("/", "%2F"); - const objectId = signerMail[i].objectId; - const serverParams = `${newServer}&${localStorage.getItem( - "parseAppId" - )}&${localStorage.getItem("_appName")}`; - - const hostUrl = window.location.origin + "/loadmf/signmicroapp"; - let signPdf = `${hostUrl}/login/${pdfDetails?.[0].objectId}/${signerMail[i].Email}/${objectId}/${serverParams}`; - const openSignUrl = "https://www.opensignlabs.com/"; - const orgName = pdfDetails[0]?.ExtUserPtr.Company - ? pdfDetails[0].ExtUserPtr.Company - : ""; - const themeBGcolor = themeColor(); - let params = { - recipient: signerMail[i].Email, - subject: `${pdfDetails?.[0].ExtUserPtr.Name} has requested you to sign ${pdfDetails?.[0].Name}`, - from: sender, - html: - "

Digital Signature Request

" + - pdfDetails?.[0].ExtUserPtr.Name + - " has requested you to review and sign " + - pdfDetails?.[0].Name + - ".

Sender " + - sender + - "
Organization " + - orgName + - "
Expire on " + - localExpireDate + - "

This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + - sender + - " directly.If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ here.

" - }; - sendMail = await axios.post(url, params, { headers: headers }); - } catch (error) { - console.log("error", error); - } - } - - if (sendMail.data.result.status === "success") { - setMailStatus("success"); - const signers = signersdata?.map((x) => { - return { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: x.objectId - }; - }); - const addExtraDays = pdfDetails[0]?.TimeToCompleteDays - ? pdfDetails[0].TimeToCompleteDays - : 15; - const currentUser = signersdata.find((x) => x.Email === currentId); - setCurrentId(currentUser?.objectId); - let updateExpiryDate, data; - updateExpiryDate = new Date(); - updateExpiryDate.setDate(updateExpiryDate.getDate() + addExtraDays); - //filter label widgets after add label widgets data on pdf - const filterPrefill = signerPos.filter((data) => data.Role !== "prefill"); - - try { - if (updateExpiryDate) { - data = { - Placeholders: filterPrefill, - SignedUrl: pdfUrl, - Signers: signers, - ExpiryDate: { - iso: updateExpiryDate, - __type: "Date" - } - }; - } else { - data = { - Placeholders: filterPrefill, - SignedUrl: pdfUrl, - Signers: signers - }; - } - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${documentId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - setIsSend(true); - setIsMailSend(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - setIsUiLoading(false); - }) - .catch((err) => { - console.log("axois err ", err); - }); - } catch (e) { - console.log("error", e); - } - } else { - setMailStatus("failed"); - const signers = signersdata?.map((x) => { - return { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: x.objectId - }; - }); - const addExtraDays = pdfDetails[0]?.TimeToCompleteDays - ? pdfDetails[0].TimeToCompleteDays - : 15; - const currentUser = signersdata.find((x) => x.Email === currentId); - setCurrentId(currentUser?.objectId); - let updateExpiryDate, data; - updateExpiryDate = new Date(); - updateExpiryDate.setDate(updateExpiryDate.getDate() + addExtraDays); - const filterPrefill = signerPos.filter((data) => data.Role !== "prefill"); - - try { - if (updateExpiryDate) { - data = { - Placeholders: filterPrefill, - SignedUrl: pdfUrl, - Signers: signers, - ExpiryDate: { - iso: updateExpiryDate, - __type: "Date" - } - }; - } else { - data = { - Placeholders: filterPrefill, - SignedUrl: pdfUrl, - Signers: signers - }; - } - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${documentId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - setIsSend(true); - setIsMailSend(true); - setIsUiLoading(false); - }) - .catch((err) => { - console.log("axois err ", err); - }); - } catch (e) { - console.log("error", e); - } - } - }; - const handleDontShow = (isChecked) => { - setIsDontShow(isChecked); - }; - //here you can add your messages in content and selector is key of particular steps - - const tourConfig = [ - { - selector: '[data-tut="reactourFirst"]', - content: () => ( - - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourSecond"]', - content: () => ( - - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourThird"]', - content: () => ( - - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourLinkUser"]', - content: () => ( - - ), - position: "top", - style: { fontSize: "13px" } - }, - { - selector: '[data-tut="reactourFour"]', - content: () => ( - - ), - position: "top", - style: { fontSize: "13px" } - } - ]; - - const handleSaveWidgetsOptions = ( - dropdownName, - dropdownOptions, - minCount, - maxCount, - isReadOnly, - addOption, - deleteOption, - status, - defaultValue - ) => { - const filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - - const getPosData = getXYdata; - const addSignPos = getPosData.map((position) => { - if (position.key === signKey) { - if (widgetType === "radio") { - if (addOption) { - return { - ...position, - Height: position.Height - ? position.Height + 15 - : defaultWidthHeight(widgetType).height + 15 - }; - } else if (deleteOption) { - return { - ...position, - Height: position.Height - ? position.Height - 15 - : defaultWidthHeight(widgetType).height - 15 - }; - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - values: dropdownOptions, - isReadOnly: isReadOnly, - defaultValue: defaultValue - } - }; - } - } else if (widgetType === "checkbox") { - if (addOption) { - return { - ...position, - Height: position.Height - ? position.Height + 15 - : defaultWidthHeight(widgetType).height + 15 - }; - } else if (deleteOption) { - return { - ...position, - Height: position.Height - ? position.Height - 15 - : defaultWidthHeight(widgetType).height - 15 - }; - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - values: dropdownOptions, - validation: { - minRequiredCount: minCount, - maxRequiredCount: maxCount - }, - defaultValue: defaultValue, - isReadOnly: isReadOnly - } - }; - } - } else { - return { - ...position, - options: { - ...position.options, - name: dropdownName, - status: status, - values: dropdownOptions, - defaultValue: defaultValue - } - }; - } - } - return position; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === uniqueId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - - setSignerPos(newUpdateSigner); - } - } - }; - - const handleWidgetdefaultdata = (defaultdata) => { - const options = ["email", "number", "text"]; - let inputype; - if (defaultdata.textvalidate) { - inputype = options.includes(defaultdata.textvalidate) - ? defaultdata.textvalidate - : "regex"; - } else { - inputype = "text"; - } - - const filterSignerPos = signerPos.filter((data) => data.Id === uniqueId); - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - const getPosData = getXYdata; - const addSignPos = getPosData.map((position, ind) => { - if (position.key === signKey) { - if (position.type === "text") { - return { - ...position, - options: { - ...position.options, - name: defaultdata?.name || "text", - status: defaultdata?.status || "required", - hint: defaultdata?.hint || "", - defaultValue: defaultdata?.defaultValue || "", - validation: { - type: inputype, - pattern: - inputype === "regex" ? defaultdata.textvalidate : "" - } - } - }; - } else { - return { - ...position, - options: { - ...position.options, - name: defaultdata.name, - status: defaultdata.status, - defaultValue: defaultdata.defaultValue - } - }; - } - } - return position; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj, ind) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === uniqueId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - setSignerPos(newUpdateSigner); - } - } - setCurrWidgetsDetails({}); - handleNameModal(); - }; - - const handleNameModal = () => { - setIsNameModal(!isNameModal); - setCurrWidgetsDetails({}); - }; - //function for update TourStatus - const closeTour = async () => { - setPlaceholderTour(false); - if (isDontShow) { - const extUserClass = localStorage.getItem("extended_class"); - let updatedTourStatus = []; - if (tourStatus.length > 0) { - updatedTourStatus = [...tourStatus]; - const placeholderIndex = tourStatus.findIndex( - (obj) => obj["placeholder"] === false || obj["placeholder"] === true - ); - if (placeholderIndex !== -1) { - updatedTourStatus[placeholderIndex] = { placeholder: true }; - } else { - updatedTourStatus.push({ placeholder: true }); - } - } else { - updatedTourStatus = [{ placeholder: true }]; - } - await axios - .put( - `${localStorage.getItem( - "baseUrl" - )}classes/${extUserClass}/${signerUserId}`, - { - TourStatus: updatedTourStatus - }, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - // const json = Listdata.data; - // const res = json.results; - }) - .catch((err) => { - console.log("axois err ", err); - }); - } - }; - const handleRecipientSign = () => { - const hostUrl = getHostUrl(); - navigate(`${hostUrl}recipientSignPdf/${documentId}/${currentId}`); - }; - - const handleLinkUser = (id) => { - setIsAddUser({ [id]: true }); - }; - const handleAddUser = (data) => { - if (data && data.objectId) { - const signerPtr = { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: data.objectId - }; - const updatePlaceHolder = signerPos.map((x) => { - if (x.Id === uniqueId) { - return { ...x, signerPtr: signerPtr, signerObjId: data.objectId }; - } - return { ...x }; - }); - - setSignerPos(updatePlaceHolder); - - const updateSigner = signersdata.map((x) => { - if (x.Id === uniqueId) { - return { ...x, ...data, className: "contracts_Contactbook" }; - } - return { ...x }; - }); - if (updateSigner && updateSigner.length > 0) { - const currEmail = pdfDetails[0].ExtUserPtr.Email; - const getCurrentUserDeatils = updateSigner.filter( - (x) => x.Email === currEmail - ); - if (getCurrentUserDeatils && getCurrentUserDeatils.length > 0) { - setCurrentId(getCurrentUserDeatils[0].Email); - } - } - - setSignersData(updateSigner); - const index = signersdata.findIndex((x) => x.Id === uniqueId); - setIsSelectId(index); - } - }; - - const closePopup = () => { - setIsAddUser({}); - }; - - return ( - <> - - <DndProvider backend={HTML5Backend}> - {isLoading.isLoad ? ( - <Loader isLoading={isLoading} /> - ) : handleError ? ( - <HandleError handleError={handleError} /> - ) : noData ? ( - <Nodata /> - ) : ( - <div className="signatureContainer" ref={divRef}> - {isUiLoading && ( - <div - style={{ - position: "absolute", - height: "100vh", - width: "100%", - display: "flex", - justifyContent: "center", - flexDirection: "column", - alignItems: "center", - zIndex: "999", - backgroundColor: "#e6f2f2", - opacity: 0.8 - }} - > - <img - alt="no img" - src={loader} - style={{ width: "100px", height: "100px" }} - /> - <span style={{ fontSize: "13px", fontWeight: "bold" }}> - This might take some time - </span> - </div> - )} - {/* this component used for UI interaction and show their functionality */} - {!checkTourStatus && ( - //this tour component used in your html component where you want to put - //onRequestClose function to close tour - //steps is defined what will be your messages and style also - //isOpen is takes boolean value to open - <Tour - onRequestClose={closeTour} - steps={tourConfig} - isOpen={placeholderTour} - rounded={5} - closeWithMask={false} - /> - )} - {/* this component used to render all pdf pages in left side */} - <RenderAllPdfPage - signPdfUrl={pdfDetails[0].URL} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - setSignBtnPosition={setSignBtnPosition} - pageNumber={pageNumber} - /> - - {/* pdf render view */} - <div - style={{ - marginLeft: !isMobile && pdfOriginalWidth > 500 && "20px", - marginRight: !isMobile && pdfOriginalWidth > 500 && "20px" - }} - > - {/* this modal is used show alert set placeholder for all signers before send mail */} - - <ModalUi - headerColor={ - isSendAlert.mssg === "sure" - ? "#dc3545" - : isSendAlert.mssg === "confirm" && themeColor() - } - isOpen={isSendAlert.alert} - title={ - isSendAlert.mssg === "sure" - ? "Fields required" - : isSendAlert.mssg === "confirm" && "Send Mail" - } - handleClose={() => setIsSendAlert({})} - > - <div style={{ height: "100%", padding: 20 }}> - {isSendAlert.mssg === "sure" ? ( - <p>Please add field for all recipients.</p> - ) : ( - isSendAlert.mssg === "confirm" && ( - <p> - Are you sure you want to send out this document for - signatures? - </p> - ) - )} - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - - {isSendAlert.mssg === "confirm" && ( - <button - onClick={() => sendEmailToSigners()} - style={{ - background: themeColor() - }} - type="button" - className="finishBtn" - > - Yes - </button> - )} - <button - onClick={() => setIsSendAlert({})} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </div> - </ModalUi> - - {/* this modal is used show send mail message and after send mail success message */} - <ModalUi - isOpen={isSend} - title={"Mails Sent"} - handleClose={() => { - setIsSend(false); - setSignerPos([]); - }} - > - <div style={{ height: "100%", padding: 20 }}> - {mailStatus === "success" ? ( - <p>You have successfully sent mails to all recipients!</p> - ) : ( - <p>Please setup mail adapter to send mail!</p> - )} - {currentId && ( - <p>Do you want to sign documents right now ?</p> - )} - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - {currentId ? ( - <> - <button - onClick={() => { - handleRecipientSign(); - }} - style={{ - background: themeColor(), - color: "white" - }} - type="button" - className="finishBtn" - > - Yes - </button> - <button - onClick={() => { - setIsSend(false); - setSignerPos([]); - }} - type="button" - className="finishBtn cancelBtn" - > - No - </button> - </> - ) : ( - <button - onClick={() => { - setIsSend(false); - setSignerPos([]); - }} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - )} - </div> - </ModalUi> - - {/* <ModalComponent isShow={isAlreadyPlace} type={"alreadyPlace"} /> */} - <ModalUi - headerColor={"#dc3545"} - isOpen={isShowEmail} - title={"signersAlert"} - handleClose={() => { - setIsShowEmail(false); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>Please select signer for add placeholder!</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => { - setIsShowEmail(false); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - </div> - </ModalUi> - <PlaceholderCopy - isPageCopy={isPageCopy} - setIsPageCopy={setIsPageCopy} - xyPostion={signerPos} - setXyPostion={setSignerPos} - allPages={allPages} - pageNumber={pageNumber} - signKey={signKey} - // signerObjId={signerObjId} - Id={uniqueId} - /> - <DropdownWidgetOption - type="radio" - title="Radio group" - showDropdown={isRadio} - setShowDropdown={setIsRadio} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - <DropdownWidgetOption - type="checkbox" - title="Checkbox" - showDropdown={isCheckbox} - setShowDropdown={setIsCheckbox} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - <DropdownWidgetOption - type="dropdown" - title="Dropdown options" - showDropdown={showDropdown} - setShowDropdown={setShowDropdown} - handleSaveWidgetsOptions={handleSaveWidgetsOptions} - currWidgetsDetails={currWidgetsDetails} - setCurrWidgetsDetails={setCurrWidgetsDetails} - /> - - {/* pdf header which contain funish back button */} - <Header - isPlaceholder={true} - pageNumber={pageNumber} - allPages={allPages} - changePage={changePage} - pdfDetails={pdfDetails} - signerPos={signerPos} - signersdata={signersdata} - isMailSend={isMailSend} - alertSendEmail={alertSendEmail} - isShowHeader={true} - currentSigner={true} - dataTut4="reactourFour" - /> - <div data-tut="reactourThird"> - {containerWH && ( - <RenderPdf - pageNumber={pageNumber} - pdfOriginalWidth={pdfOriginalWidth} - pdfNewWidth={pdfNewWidth} - pdfDetails={pdfDetails} - signerPos={signerPos} - successEmail={false} - numPages={numPages} - pageDetails={pageDetails} - placeholder={true} - drop={drop} - handleDeleteSign={handleDeleteSign} - handleTabDrag={handleTabDrag} - handleStop={handleStop} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - setSignerPos={setSignerPos} - containerWH={containerWH} - setIsResize={setIsResize} - setZIndex={setZIndex} - setIsPageCopy={setIsPageCopy} - signersdata={signersdata} - setSignKey={setSignKey} - setSignerObjId={setSignerObjId} - handleLinkUser={handleLinkUser} - setUniqueId={setUniqueId} - isDragging={isDragging} - setShowDropdown={setShowDropdown} - setWidgetType={setWidgetType} - setIsRadio={setIsRadio} - setIsCheckbox={setIsCheckbox} - setCurrWidgetsDetails={setCurrWidgetsDetails} - setSelectWidgetId={setSelectWidgetId} - selectWidgetId={selectWidgetId} - handleNameModal={handleNameModal} - /> - )} - </div> - </div> - - {/* signature button */} - {isMobile ? ( - <div> - <FieldsComponent - dataTut="reactourFirst" - dataTut2="reactourSecond" - pdfUrl={isMailSend} - dragSignature={dragSignature} - signRef={signRef} - handleDivClick={handleDivClick} - handleMouseLeave={handleMouseLeave} - isDragSign={isDragSign} - themeColor={themeColor} - dragStamp={dragStamp} - dragRef={dragRef} - isDragStamp={isDragStamp} - isSignYourself={false} - addPositionOfSignature={addPositionOfSignature} - signerPos={signerPos} - signersdata={signersdata} - isSelectListId={isSelectListId} - setSignerObjId={setSignerObjId} - setIsSelectId={setIsSelectId} - setContractName={setContractName} - isSigners={true} - setIsShowEmail={setIsShowEmail} - isMailSend={isMailSend} - setSelectedEmail={setSelectedEmail} - selectedEmail={selectedEmail} - setUniqueId={setUniqueId} - setRoleName={setRoleName} - initial={true} - /> - </div> - ) : ( - <div> - <div className="signerComponent"> - <div - style={{ maxHeight: window.innerHeight - 70 + "px" }} - className="autoSignScroll" - > - <SignerListPlace - signerPos={signerPos} - signersdata={signersdata} - isSelectListId={isSelectListId} - setSignerObjId={setSignerObjId} - setIsSelectId={setIsSelectId} - setContractName={setContractName} - setUniqueId={setUniqueId} - setRoleName={setRoleName} - // handleAddSigner={handleAddSigner} - /> - <div data-tut="reactourSecond"> - <FieldsComponent - pdfUrl={isMailSend} - dragSignature={dragSignature} - signRef={signRef} - handleDivClick={handleDivClick} - handleMouseLeave={handleMouseLeave} - isDragSign={isDragSign} - themeColor={themeColor} - dragStamp={dragStamp} - dragRef={dragRef} - isDragStamp={isDragStamp} - isSignYourself={false} - addPositionOfSignature={addPositionOfSignature} - initial={true} - /> - </div> - </div> - </div> - </div> - )} - </div> - )} - </DndProvider> - <div> - <ModalUi - headerColor={"#dc3545"} - isOpen={signerExistModal} - title={"Users required"} - handleClose={() => { - setSignerExistModal(false); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>Please assign signers to all placeholders</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - onClick={() => setSignerExistModal(false)} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </div> - </ModalUi> - - <LinkUserModal - handleAddUser={handleAddUser} - isAddUser={isAddUser} - uniqueId={uniqueId} - closePopup={closePopup} - /> - <NameModal - widgetName={widgetName} - defaultdata={currWidgetsDetails} - isOpen={isNameModal} - handleClose={handleNameModal} - handleData={handleWidgetdefaultdata} - /> - </div> - </> - ); -} - -export default PlaceHolderSign; diff --git a/microfrontends/SignDocuments/src/Routes.js b/microfrontends/SignDocuments/src/Routes.js deleted file mode 100644 index 117ea04fe..000000000 --- a/microfrontends/SignDocuments/src/Routes.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from "react"; -import { Routes, Route } from "react-router-dom"; -import SignYourselfPdf from "./Component/SignYourselfPdf"; -import PlaceHolderSign from "./Component/placeHolderSign"; -import ManageSign from "./Component/ManageSign"; -import Login from "./Component/login"; -import DraftDocument from "./Component/DraftDocument"; -import PdfRequestFiles from "./Component/PdfRequestFiles"; -import LegaDrive from "./Component/LegaDrive/LegaDrive"; -import PageNotFound from "./Component/PageNotFound"; -import TemplatePlaceHolder from "./Component/TemplatePlaceholder"; -import Parse from "parse"; -import DebugUi from "./Component/DebugUi"; -Parse.serverURL = localStorage.getItem("baseUrl"); -Parse.initialize(localStorage.getItem("parseAppId")); -// `AppRoutes` is used to define route path of app and -// it expose to host app, check moduleFederation.config.js for more -function AppRoutes() { - return ( - <div> - <Routes> - {/* TODO: Check with images and other assets */} - <Route index element={<div>Microapp Home page route </div>} /> - {/* signyouself route with rowlevel data */} - <Route path="/signaturePdf" element={<SignYourselfPdf />} /> - {/* signyouself route with no rowlevel data using docId from url */} - <Route path="/signaturePdf/:docId" element={<SignYourselfPdf />} /> - {/* recipient signature route with no rowlevel data using docId from url */} - <Route - path="/recipientSignPdf/:docId/:contactBookId" - element={<PdfRequestFiles />} - /> - {/* recipient placeholder set route with rowlevel data */} - <Route path="/placeHolderSign" element={<PlaceHolderSign />} />{" "} - {/* recipient placeholder set route with no rowlevel data using docId from url*/} - <Route path="/placeHolderSign/:docId" element={<PlaceHolderSign />} /> - {/*Add default signature of user route */} - <Route path="/managesign" element={<ManageSign />} /> - {/* login page route */} - <Route - path="/login/:id/:userMail/:contactBookId/:serverUrl" - element={<Login />} - /> - {/* draft document route to handle and navigate route page accordiing to document status */} - <Route path="/draftDocument" element={<DraftDocument />} /> - {/* for user signature (need your sign route) with row level data */} - <Route path="/pdfRequestFiles" element={<PdfRequestFiles />} /> - {/* for user signature (need your sign route) with no row level data */} - <Route path="/pdfRequestFiles/:docId" element={<PdfRequestFiles />} /> - {/* lega drive route */} - <Route path="/legadrive" element={<LegaDrive />} /> - {/* Page Not Found */} - <Route path="/template/:templateId" element={<TemplatePlaceHolder />} /> - <Route path="/debugpdf" element={<DebugUi />} /> - <Route path="*" element={<PageNotFound />} /> - </Routes> - </div> - ); -} -export default AppRoutes; diff --git a/microfrontends/SignDocuments/src/assests/blackPen.png b/microfrontends/SignDocuments/src/assests/blackPen.png deleted file mode 100644 index 2d72bcaca2bd8a12a07a46dffc4598f3b4006a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)<h;3K|Lk000e1NJLTq000^Q000^Y1^@s6sY*=F00009a7bBm000XU z000XU0RWnu7ytkPU`a$lRCt`V)y*pfQ5eVZFIkXeL0&fY*vY~|N{MXjlz+g+>-H8` zNtPB$H|*G3T6#%h%j&udlCoD8lo*|QrcTqDx#v7{=U1nu+nwigUY^cC<I)D40DTmg zX5b8nfG428C}>ZRcvOp6*<u1I1e*nZQXn%Pf$qG>2=JMK#Nz?z(jo)Ey9W}FQw`E0 zTjGnH108u9;Lig&l8FVU6IhVv<qXU;$dYyyV?a#`mE^Y-2lfHX_!eykdVxt`9k_SQ zx+MQyv#=Ln*aw&nIOGV}l=sYJ?qqUa*$IRq>&(o3=bf8Cq$Uj#6mu@$fzT+5%sC2O z0GBDqEy^4^kT_QkXjKcnB?@iTfhM#!v0bDhT~tm%BA`bD?OFwn1v#kG2(22Z8i@P? zO`*t8V!J9S#lL`SU>lgytfri?l2^Iv=kt71keKV<MxKFvU|h33Suu$DkZk~ijVx^E YAD~v@1^TUf-~a#s07*qoM6N<$f+%9NY5)KL diff --git a/microfrontends/SignDocuments/src/assests/bluePen.png b/microfrontends/SignDocuments/src/assests/bluePen.png deleted file mode 100644 index a08e7407806d5da6424bab0641081088f6fc32c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)<h;3K|Lk000e1NJLTq000^Q000^Y1^@s6sY*=F00009a7bBm000XU z000XU0RWnu7ytkP@JU2LRCt`V)xk>?aTEveU*RE%@L;<0ek(4`dt;X1Vd>BziXe(E z-GcrBFKT)fN+F_Shakkd)!n1V+6YmE@7uPMc_<?2E_g5qo%pTm=B_*I{Knk}KXzc4 z-{<$<ynSO#hhk`Gt(OGv1_~R2>0ZQVEo0e=#>Dz<coftXh6FDiQeUi_9nXvy6Aef= zuplhox2%6#LavO0uQY;-r_H2j89PZx9b;7N=th4wB*ZW=exHQ=UwH4Y+$#0BlB7jQ zbfy3D>V;D@0QOTrZ`{GWfiOg$4fT<`wv4GntlA)$%#=l5aGeBOwQia_$V{i3F%sP- z#=TUV=Ef`M2QRJX@{HRgm?hTr7Ogv1#UjkqF~*M^e;GRwAi>@Aousji^l9z6SrV+d z!==iE7|*>R(fIJ4xp`;OhGqTigOFg$HHh&E_g;wc#|H{Rz2=3~vU$+r&-Q^tKPEt{ zCQA@wsTrx?6D=K|Vfr{5B>JmqJ}tC^f=F*>$)?zJ+QsTuQ!w8OaVr;A2E8FG`r^nY zZyiFSuiG_3p-?*K53z3gAXczvOnk-*38Z}WXt~^P!nohHj8DY+%tqxq{@DoTlQY3j zH|q0(hnc@A<`7~`H6X0tE$b@^al^Yj?ZcG|6PEQ!5b2c;Zrl+60LxwxH<v_w82|tP M07*qoM6N<$g8ZBd>Hq)$ diff --git a/microfrontends/SignDocuments/src/assests/certificate.png b/microfrontends/SignDocuments/src/assests/certificate.png deleted file mode 100644 index 177ee5b0b27d4aed6cd4aa1f62bf084dd36331e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XU z000XU0RWnu7ytkPa!Eu%RCt`_)K9BTVHC&llYvqOh>^&jWME)mB3^`nq?>`aAOkUE zWF|sx+>$v%VkUz-zec<Oxg(;Sd)C_Z(UX1h4D56F-dzKEYPEOmwSV9B=UHnq`ESk! z$C8i1bL`j>(T1huZSpYqoM>$|d6K+qxG)+JysAY1Xu-=-;!}<U>pcML#dnZ+@*v2~ z#4AYgy*~u-zOQ)xwzZ+n9Rz4t`m2E8%8(MRjR5?>fxdvdLz<lJY+&D(U(@_m|6#*6 z<#2Ge3{j8LG{LFzPj5i-IJjOSE9;<L3#*lASsV9)H|_IUveGyDLqP;z8!iW@8!lpZ z@FMxJ!SUpLaHio>@hv@@a<otM%N?b7UHPnZ_&i-Gj)TFhqu$FE;8s^ZN_LB)e>A_- z!KZrH)C&!Jf^XILY4!fB6Hw}n{jJE};7eEP$?Z9O#tH14aWXlFZJV`X4!qixb{oL= q<j!R5!S>|lf&gw{*J!{$aee}P<D=?v69R1j0000<MNUMnLSTY0_}5tg diff --git a/microfrontends/SignDocuments/src/assests/draftDoc1.png b/microfrontends/SignDocuments/src/assests/draftDoc1.png deleted file mode 100644 index 2a2b8f60fa542544364d69ac989f4a9e567e4c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78196 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 D+)Px4 diff --git a/microfrontends/SignDocuments/src/assests/folder.png b/microfrontends/SignDocuments/src/assests/folder.png deleted file mode 100644 index 1520d8092f4cb8a54f2f2a3e54ddf2b8df01e2da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4496 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 Y$dgE4ZJo{7->y7BLq%7)8e$XjA8czv2mk;8 diff --git a/microfrontends/SignDocuments/src/assests/loader2.gif b/microfrontends/SignDocuments/src/assests/loader2.gif deleted file mode 100644 index a325211441e06d061e41db27fe152a7e0cb856c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62248 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 diff --git a/microfrontends/SignDocuments/src/assests/newCeleb.gif b/microfrontends/SignDocuments/src/assests/newCeleb.gif deleted file mode 100644 index c0b0d9555c075063f200e9922c19cc8cc02f5bfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239101 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�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 diff --git a/microfrontends/SignDocuments/src/assests/open-sign-logo.png b/microfrontends/SignDocuments/src/assests/open-sign-logo.png deleted file mode 100644 index 8db5381242d1dafd321f1e8137d246b0b9d72cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88554 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 HgJ0r*^(4=5 diff --git a/microfrontends/SignDocuments/src/assests/pdf3.png b/microfrontends/SignDocuments/src/assests/pdf3.png deleted file mode 100644 index 54868d5e811c8d2a433c24e831b8a00279dad644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11944 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 diff --git a/microfrontends/SignDocuments/src/assests/redPen.png b/microfrontends/SignDocuments/src/assests/redPen.png deleted file mode 100644 index 87d05fdaffc65d0ce38445eebc4dccce072ee0c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)<h;3K|Lk000e1NJLTq000^Q000^Y1^@s6sY*=F00009a7bBm000XU z000XU0RWnu7ytkP>q$gGRCt`VmAz{eVGzb&C53Xin|Wq0IfbBgv=a*p5dxyv*aiFt zZ2U?qXao^U3qgX~X>Vy66$!D`N>lhj@Uk--5Wzx0bmiT>$ho<_?7QAQu&}T&zj<b6 zXPg_6)@Nq+D(I0-P3?2zQtI4p1wS$2RKf3(c6<L=Kqh?0L$)3Ty&btT1)cAQj0Khe zXH@v-AW;6$o9^Uf`~M(qI-;O&<&d5;q1T_A&8QZn3mi~TcPB_+86O8jQs*XoNh(8x zo^D1_v-SX}@b3zs2R^Z2z!!jG;GBQAh%c7GvH@YfP|t<PF$J$>!GNn7O!!g}rb1s0 zt<#l)#+^<>ryHF(qB#{_Fwm=QnInfK!dLoWA7bF}jsTO^sj5x3yhPV?x4d9Nt3J6( zP7HJ_1Z2YLR?qyts|3k2qnAOBz-xX$T!?&MO!!9#XftXZ4T5BDB0jsl;k<0%XC*)4 zimM|NzF&m={RVzM0Cu?+NQKr56Ln)4C}BQPYZDjBvXos-;l&a+Y20Z{2ZIcByD!MY z{4~?OVT17TpxYA+%C2DmM1_B)&g}|<Y=|8Cw_LO|5CHnFLN5$-Q-w~3yYYP}bwZ!~ zs!xRGYu^;tlVA4*$a@9dHQ;z~d4{P6@rUf%hRE#50vGfL7}^ofE-W&c00000NkvXX Hu0mjf->3N4 diff --git a/microfrontends/SignDocuments/src/bootstrap.js b/microfrontends/SignDocuments/src/bootstrap.js deleted file mode 100644 index 95bedf2b7..000000000 --- a/microfrontends/SignDocuments/src/bootstrap.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import App from "./App"; - -const root = ReactDOM.createRoot(document.getElementById("root")); - -root.render(<App />); diff --git a/microfrontends/SignDocuments/src/css/AddUser.css b/microfrontends/SignDocuments/src/css/AddUser.css deleted file mode 100644 index 00576a9fc..000000000 --- a/microfrontends/SignDocuments/src/css/AddUser.css +++ /dev/null @@ -1,79 +0,0 @@ -.addusercontainer { - height: 100%; - padding: 10px 20px 10px 20px; -} - -.loaderdiv { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - display: flex; - justify-content: center; - align-items: center; - background-color: rgba(0, 0, 0, 0.3); - -} - -.form-wrapper { - width: 100%; - margin-left: auto; - margin-right: auto; - padding: 8px; -} - -.form-section { - margin-bottom: 0.75rem; -} - -.checkbox-label { - margin-left: 0.5rem; - color: #4b5563; -} - -.addUserInput { - padding: 0.5rem 0.75rem; - width: 100%; - border-width: 1px; - border-color: #d1d5db; - border-radius: 0.375rem; - outline: none; - font-size: 0.75rem; -} - - -.buttoncontainer { - margin-top: 1rem; - display: flex; - justify-content: flex-start; -} - -.submitbutton { - background: #1ab6ce; - border-radius: 2px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - border: none; - text-transform: uppercase; - font-size: 13px; - font-weight: 600; - padding: 0.375rem 0.75rem; - text-align: center; - color: #ffffff; - outline: none; -} -/* For classes: bg-[#188ae2] text-sm text-white px-4 py-2 rounded ml-2 shadow focus:outline-none */ -.resetbutton { - background-color: #188ae2; - border-radius: 2px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - border: none; - text-transform: uppercase; - font-size: 13px; - font-weight: 600; - padding: 0.375rem 0.75rem; - text-align: center; - color: #ffffff; - outline: none; - margin-left: 8px; -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/LoginPage.css b/microfrontends/SignDocuments/src/css/LoginPage.css deleted file mode 100644 index bd80e9b0b..000000000 --- a/microfrontends/SignDocuments/src/css/LoginPage.css +++ /dev/null @@ -1,210 +0,0 @@ -.loginInput{ - padding: 10px; - - border-radius: 4px; - width: 100%; - font-size: 0.75rem; - border: 1px solid #e2dddd;; - background-color: #e0e5f5; - color: black; - - padding-left: 1rem!important; - padding-right: 1rem!important; - padding-top: 0.5rem!important; - - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-weight: inherit; - overflow: visible; - - } - .loginInput:focus{ - outline: none; - border: none; - } -.verifyBtn{ - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 30px; - color: white; - font-weight: 500 !important; - font-size: 14px !important; - border: none; -} -.verifyBtn:focus { - border: none; - outline: none; -} - - -.verifyBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - color: white; -} -.fakeimg { - height: 200px; - background: #aaa; -} - -.GTRY { - border: 1px solid #dee2e6; - margin-top: 75px; - padding-bottom: 20px; - background-color: #fff; -} - -.main_head { - width: 100%; - height: 66px; - background-color: #fff; - margin-bottom: 52px; - padding-top: 10px; -} - -.main-logo { - width: 250px; - height: 66px; - display: inline-block; -} - -.card-box { - background: #fff; - min-height: 50px; - box-shadow: 0 20px 20px rgba(0, 0, 0, 0.1); - position: relative; - margin-bottom: 20px; - transition: 0.5s; - border: 1px solid #f2f2f2; - border-radius: 7px; - margin-top: 10px; -} - -.LKJH { - display: flex; -} - -.GTR { - text-align: left; -} - -.JUI { - text-align: right; -} - -.btn-info { - color: #fff; - background-color: #15b4e9; - border-color: #15b4e9; -} - -.btn-info:hover { - color: #fff; - background-color: #15b4e9; - border-color: #15b4e9; -} - -.btn-reg { - color: #15b4e9; - background-color: #ffffff; - border-color: #15b4e9; -} - -.btn-reg:hover { - color: #15b4e9; - background-color: #ffffff; - border-color: #15b4e9; -} - -.SYTU { - display: flex; -} - -.MLKI { - float: right; - margin-bottom: 12px; -} - - -.login-btn { - width: 100% !important; - display: block !important; -} - -@media only screen and (max-width: 667px) { - .MLKI { - float: inherit; - } - - - .login-btn { - width: 210px !important; - } -} - -.MLKI a { - color: #212529; -} - -.KNLO { - color: #878787; - font-size: 13px; -} - -.form-check-label { - margin-left: 17px; - margin-bottom: 12px; -} -.welcomeText{ - font-size: 30px; -} - - -@media only screen and (max-width: 600px) { - .KLO1 { - display: none; - } - - .MLKI a { - font-size: 12px; - } - - .form-check-label { - font-size: 12px; - margin-bottom: 14px; - } - - .MKUY { - text-align: center; - padding-top: 10px; - } - - .main_head { - margin-bottom: 12px; - padding-top: 10px; - border-bottom: 1px dashed #eeeeee; - } - - - -} -@media screen and (max-width:366px) { - - .main-logo { - width: 150px; - height: 46px; - display: inline-block; - } - .welcomeText{ - font-size: 20px; - } - .KNLO { - color: #878787; - font-size: 10px; - } - .btnContainer{ - display: flex; - justify-content: center; - align-items: center; - } - -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/ModalUi.css b/microfrontends/SignDocuments/src/css/ModalUi.css deleted file mode 100644 index 0fdb84ee6..000000000 --- a/microfrontends/SignDocuments/src/css/ModalUi.css +++ /dev/null @@ -1,137 +0,0 @@ -.modaloverlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.75); - justify-content: center; - align-items: center; - z-index: 900; -} - -.modalcontainer { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #fff; - border-radius: 5px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 901; - max-height: 80%; - min-width: 500px; - overflow-y: auto; - scrollbar-width: none; - /* Firefox */ - -ms-overflow-style: none; - /* Internet Explorer and Edge */ -} - -.dropdownModal { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #fff; - border-radius: 5px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 901; - max-height: 80%; - min-width: 40%; - overflow-y: auto; - scrollbar-width: none; - /* Firefox */ - -ms-overflow-style: none; - /* Internet Explorer and Edge */ -} - -/* Hide scrollbar for Webkit browsers */ -.modalcontainer::-webkit-scrollbar { - display: none; -} - -/* Hide scrollbar for Webkit browsers */ -.dropdownModal::-webkit-scrollbar { - display: none; -} - -.modalheader { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 20px; - border-bottom: 1px solid #ccc; - color: #ffffff; -} - -/* Styling for the modal title */ -.modaltitle { - font-size: 1.2rem; - font-weight: normal; -} - -/* Styling for the close button */ -.closebtn { - background: none; - border: none; - font-size: 1.5rem; - cursor: pointer; -} - -.defaultOptions { - font-size: 12px; - margin-left: 5px; - -} -.defaultOptions:focus{ - outline: none; -} - -@media (max-width:767px) { - - .modalcontainer { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #fff; - border-radius: 8px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 1000; - max-height: 80%; - min-width: 90%; - overflow-y: auto; - } - - .dropdownModal { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #fff; - border-radius: 8px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 1000; - max-height: 80%; - min-width: 60%; - overflow-y: auto; - } -} - -@media (max-width:464px) { - .dropdownModal { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #fff; - border-radius: 8px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 1000; - max-height: 80%; - min-width: 78%; - overflow-y: auto; - } - -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/custom.css b/microfrontends/SignDocuments/src/css/custom.css deleted file mode 100644 index c273c7082..000000000 --- a/microfrontends/SignDocuments/src/css/custom.css +++ /dev/null @@ -1,225 +0,0 @@ -.mainDiv { - position: relative; -} - -.successBtn { - background: #3ac9d6; - border: 1px solid #3ac9d6; -} - -.warning { - position: absolute; - padding: 8px; - border: 1px solid black; - background: white; - width: 300px; - border-radius: 5px; - animation: inAnimation 2s ease-in-out; - z-index: 1; -} - -.nameWarning { - position: absolute; - bottom: -70px; - left: 10px; -} - -.nameWarning::before { - content: ''; - width: 0px; - height: 0px; - border-style: outset; - border-width: 0px 10px 10px 10px; - border-color: transparent transparent black transparent; - display: inline-block; - position: absolute; - top: -29%; - left: 0; - right: 75%; - margin: 0 auto; -} - -.signWarning { - bottom: 70px; - left: 50px; -} - -.signWarning::before { - content: ''; - width: 0px; - height: 0px; - border-style: outset; - border-width: 0px 10px 10px 10px; - border-color: transparent transparent black transparent; - display: inline-block; - position: absolute; - top: -29%; - left: 0; - right: 75%; - margin: 0 auto; -} - -.successBox { - z-index: 1; - position: absolute; - top: 5%; - left: 50%; - transform: translate(-50%, -50%); - font-size: 13px; - animation: inAnimation 2s ease-in-out; -} - -@keyframes inAnimation { - 0% { - opacity: 0; - visibility: hidden; - } - - 25% { - opacity: 1; - visibility: visible; - } - - 50% { - opacity: 1; - visibility: visible; - } - - 75% { - opacity: 1; - visibility: visible; - } - - 100% { - opacity: 0; - visibility: hidden; - } -} - -.signature { - color: white; - cursor: pointer; - padding: 10px 14px 10px; - background: #15b4e9; - font-size: 12px; - font-weight: 600; - border-radius: 2px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); -} - -.signature:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - background: #13a8da; - color: white; -} - -.imgupload { - color: white; - cursor: pointer; - padding: 10px 14px 10px; - background: #15b4e9; - font-size: 12px; - font-weight: 600; - border-radius: 2px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - min-width: 105px; -} - -.imgupload:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - background: #13a8da; - color: white; -} - - -.loaderContainer { - position: fixed; - inset: 0%; - width: 100%; - height: 100svh; - background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)); - display: flex; - align-items: center; - justify-content: center; -} - -.loader { - width: 70px; - height: 70px; - border-top: 4px solid #1b8ef4; - border-left: 4px solid #1b8ef4; - border-radius: 80%; - animation: spin 0.5s linear infinite; - -} - -@keyframes spin { - from { - transform: rotate(0); - } - - to { - transform: rotate(360deg); - } -} - -.customBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 10px 14px 10px; - color: white; - font-weight: 600; - font-size: 12px; - text-transform: uppercase; - border-radius: 2px; - margin-left: 10px; - width: 100px; -} - -.clearbtn { - font-size: 15px; -} - -.clearbtn:hover { - text-decoration: underline; - text-underline-offset: 2px; - color: blue; -} - -.successBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - background: #1ab6ce; - color: white; - -} - -.resetBtn { - background: #188ae2; - margin-left: 10; - border: 1px solid #188ae2; -} - -.resetBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - background: #177ecd; - color: white; -} - -.signBlock { - display: flex; - flex-direction: row; - gap: 12px; -} -.signInputManage{ - width: 50%; -} -@media (max-width: 815px) { - .signBlock { - display: flex; - flex-direction: column; - - } - .signInputManage{ - width: 100%; - } -} - \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/customModal.css b/microfrontends/SignDocuments/src/css/customModal.css deleted file mode 100644 index 4cdd0e2d6..000000000 --- a/microfrontends/SignDocuments/src/css/customModal.css +++ /dev/null @@ -1,60 +0,0 @@ -.parentDiv { - background: gray; - position: absolute; - z-index: 20; - background-color: rgba(0, 0, 0, 0.75); - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.childDiv { - width: 40%; - display: flex; - flex-direction: column; - justify-content: center; - align-content: center; - background-color: #fff; - margin: 30px 20px; - border: 0px 1px 1px 1px solid rgba(0, 0, 0, .2); - border-radius: 0.3rem; - outline: 0; -} - -.modalHeadDiv { - padding: 10px; - color: #fff; - border-top-left-radius: 0.3rem; - border-top-right-radius: 0.3rem; - font-size: 17px; - font-weight: 400; -} - -.modalBodyDIv { - padding: 20px; -} - -.spanTagHead { - color: white !important; - font-size: 17px; - font-weight: 500; -} - -.pTagBody { - - font-size: 15px !important; -} - -.modalFooterDiv { - margin: 10px; - display: flex; - justify-content: flex-start; -} - -@media screen and (max-width:500px) { - .childDiv { - margin: 50px 7px; - width: 80%; - } -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/selectFolder.css b/microfrontends/SignDocuments/src/css/selectFolder.css deleted file mode 100644 index 16c1f87f1..000000000 --- a/microfrontends/SignDocuments/src/css/selectFolder.css +++ /dev/null @@ -1,6 +0,0 @@ -.hrStyle{ - border-top-width: 1px !important; - color: #c3bcbc !important; - height: 0px !important; - margin-bottom: 10px !important; -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/signature.css b/microfrontends/SignDocuments/src/css/signature.css deleted file mode 100644 index e967d64d7..000000000 --- a/microfrontends/SignDocuments/src/css/signature.css +++ /dev/null @@ -1,1134 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Fasthand&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Dancing+Script&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Delicious+Handrawn&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Cedarville+Cursive&display=swap'); - -.placeholderBlock { - padding: 0px; - position: absolute; - border-style: dashed; - width: 150px; - height: 60px; - background: #daebe0; - text-align: center; - justify-content: center; - border-width: 0.2px; - -} - -.dropdownContainer { - display: flex; - flex-direction: column; - overflow-y: scroll; - max-height: 250px; -} - -.dropdownContainer::-webkit-scrollbar { - display: none; -} - -.react-datepicker__input-container { - position: initial !important; -} - -.widgets { - -webkit-user-select: none; - /* Disable text selection in WebKit browsers */ - -moz-user-select: none; - user-select: none; - -} - -.inputPlaceholder { - width: 100%; - height: 100%; - position: absolute; - left: 0px; - top: 0px; - /* font-size: 12px; */ - border: 1px solid #007bff; - border-radius: 2px; - -} - -.radioButton { - width: 100%; - height: 100%; - position: absolute; - left: 0px; - top: 0px; - font-size: 12px; - border: 1px solid #007bff; - border-radius: 50px; -} - -.inputPlaceholder:focus { - outline: none; - border: 1px solid #188ae2; -} - -.drodown-input { - padding: 5px; - width: 100%; - font-size: 0.75rem; - border: 1px solid #8ad5ce; - /* border: 1px solid #e2dddd; */ - /* background-color: #e0e5f5; */ - color: black; - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-weight: inherit; - overflow: visible; - -} - -.drodown-input:focus { - outline: none; - border: 1px solid #099b8d; -} - -.dropdownAdd { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - - color: white; - font-weight: 600; - font-size: 13px; - border: none; - margin-left: 10px; - -} - -.dropdownAdd:focus { - outline: none; -} - -.dropdownList { - display: flex; - flex-direction: column; - justify-content: center; - width: 50%; -} - -.signatureCanvas { - - border: 2px solid #888; - background-color: rgb(255, 255, 255); - width: 460px; - height: 184px; -} - -.intialSignatureCanvas { - border: 2px solid #888; - background-color: rgb(255, 255, 255); - width: 150px; - height: 150px; -} - -.intialSignature { - border: 2px solid #888; - background-color: rgb(255, 255, 255); - width: 183px; - height: 183px; -} - -.penContainerDefault { - width: 460px; -} - -.penContainerInitial { - width: 183px; -} - -.borderResize { - position: absolute; - display: inline-block; - width: 14px; - height: 14px; - -} - -.borderResize :hover { - cursor: sw-resize; -} - -.dropdown-date-menu { - min-width: 7rem; -} - - -.mailBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 15px !important; - background-color: rgb(79 190 241); - border: none !important; - color: white !important; -} - -.mailBtn:hover { - box-shadow: 0 2px 4px rgba(154, 36, 36, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); -} - -.emailToast { - position: absolute; - z-index: 10; - background: #aeedae; - padding: 0 3px 3px 3px; - margin: 2px; - border-radius: 2px; -} - - -.signatureBtn { - border: 1.5px solid #47a3ad; - - border-radius: 3px; - display: flex; - padding: 0px; - justify-content: space-between; - background: white; - transition-duration: 0.4s; - cursor: all-scroll; - width: 150px; - height: 30px; - color: black; -} - -.disableSign { - border: 1.5px solid #47a3ad; - margin-bottom: 10px; - border-radius: 3px; - display: flex; - padding: 0px; - justify-content: space-between; - background: white; - transition-duration: 0.4s; - cursor: all-scroll; - width: 150px; - height: 30px; - color: black; - border: 1px solid rgb(203, 203, 203); - cursor: text; -} - -.emailInput { - padding: 10px; - border: 1.5px solid gray; - border-radius: 4px; - width: 100%; - font-size: 15px; - padding-bottom: 20px; -} - -.emailInput:focus { - outline: none; - border: 1.5px solid #47a3ad; -} - -.addEmail { - padding: "0px"; - border: 1.5px solid #47a3ad; - border-radius: 4px; - width: 100%; - font-size: 15px; -} - -.addEmail, -.emailInput { - outline: none; -} - -.addEmailInput { - border: none; - outline: none; -} - -.emailChip { - background-color: #47a3ad; - margin: 4px; - border-radius: 10px; - padding: 5px 10px; -} - -.addEmailInput { - padding: 10px; - border-radius: 4px; - width: 100%; - font-size: 15px; -} - -.addEmailInput:focus { - outline: none; - border: none; -} - -.signatureInput { - width: 80%; - border-radius: 4px; - font-size: 20px; - border: 1px solid #e2dddd; - color: black; - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-weight: inherit; - overflow: visible; - height: 30px; -} - -.signatureInput:focus { - outline: none; - border: 1px solid blue; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); -} - -.resizable-box-overlay { - position: absolute; - border: 2px solid #ddd; - overflow: hidden; - background-color: white; -} - -.box-content { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; -} - -.close-button { - align-self: flex-end; - margin: 8px; - cursor: pointer; -} - -.placeholdCloseBtn { - position: absolute; - right: -5px; - top: -5px; - border-radius: 100%; - font-size: 10px; - cursor: pointer; - padding: 0px 5.1px 1px 5px; -} - -.signCloseBtn { - position: absolute; - - font-size: 14px; - cursor: pointer; - z-index: 2; - background: white; -} - -.signCopy { - position: absolute; - - font-size: 13px; - cursor: pointer; - z-index: 2; - background: white; -} - -.signUserIcon { - position: absolute; - - font-size: 13px; - cursor: pointer; - z-index: 2; - background: white; -} - -.settingIcon { - position: absolute; - - font-size: 13px; - cursor: pointer; - z-index: 2; - background: white; -} - -.ScrollbarsCustom-Track { - width: 4px !important; -} - -.signYourselfBlock { - padding: 0px; - display: flex !important; - justify-content: center !important; - align-items: center !important; -} - -.finishBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 30px; - color: white; - font-weight: 500 !important; - font-size: 14px !important; - border: none; - margin-left: 10px; - border-radius: 2px; -} - -.sendMail { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 30px; - color: white; - font-weight: 500 !important; - font-size: 14px !important; - border: none; - margin-left: 10px; -} - -.finishBtn:focus { - border: none; - outline: none; -} - -.finishBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - -} - -.saveBtn { - padding: 3px 18px !important; -} - -.disabledFinish { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 30px; - color: white; - font-weight: 600; - font-size: 14px; - border: none; - margin-left: 10px; -} - -.sendHover:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); - color: white; -} - -.defaultSignBox { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - width: 90%; - height: 111px; - padding: 8px 20px; - color: white; - font-weight: 600; - font-size: 14px; - border: none; - border-radius: 2px; - margin-left: 10px; -} - -.backBtn { - background-color: white; -} - -.backBtn:hover { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); -} - -.defaultBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 26px; - color: black; - font-weight: 500; - font-size: 14px; - border: 1px solid gray; - border-radius: 2px; - margin-left: 10px; - border: "none"; -} - -.defaultBtn:focus { - border: none; - outline: none; -} - -.downloadBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 15px !important; - background-color: rgb(241 79 79); - border: none !important; - color: white !important; -} - -.downloadBtn:hover { - box-shadow: 0 2px 4px rgba(154, 36, 36, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); -} - -.printBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 15px !important; - background: #188ae2; - border: none !important; - color: white !important; -} - -.printBtn:hover { - box-shadow: 0 2px 4px rgba(23, 48, 137, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); -} - -.certificateBtn { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); - padding: 3px 15px !important; - background: #08bc66; - border: none !important; - color: white !important; - text-decoration: none !important; -} - -.certificateBtn:hover { - box-shadow: 0 2px 4px rgba(15, 150, 87, 0.1), 0 2px 4px rgba(0, 0, 0, 0.18); -} - -.signerList { - overflow-y: scroll; - max-height: 180px; -} - -.signerList::-webkit-scrollbar { - display: none; -} - -.showScroll { - height: 100%; - overflow: scroll; - -} - -.showScroll::-webkit-scrollbar { - display: none; -} - -.hideScroll { - height: 100%; - overflow: scroll; -} - -.signedStyle { - color: white; - padding: 5px; - font-family: sans-serif; - font-size: 15px !important; -} - -.userName { - font-size: 12px !important; - font-weight: bold !important; - color: #424242 !important; - width: 100px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; -} - -.useEmail { - font-size: 10px; - color: #424242; - font-weight: 500; - width: 100px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; -} - -.spanTagHead { - color: white !important; - font-size: 17px; - font-weight: 500; -} - -.pTagBody { - - font-size: 15px !important; -} - -.signTab { - cursor: pointer !important; - font-weight: 400 !important; - margin: 7px !important; - font-size: 15px !important; -} - -.cancelBtn { - color: black; - border: 1px solid #ccc; -} - -.draggable-button { - padding: 10px 20px; - background: #3498db; - color: #fff; - border: none; - cursor: grab; - transition: transform 0.2s; -} - -.draggable-button.dragging { - opacity: 0.5; - /* Reduce opacity while dragging */ - transform: scale(1.1); - /* Apply a scaling effect while dragging */ -} - -.signatureContainer { - display: flex; - flex-direction: row; - justify-content: space-between; - background-color: #ebebeb; - position: "relative" -} - -.signatureHeader { - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - margin-top: 5px; -} - -.signerComponent { - /* box-shadow: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px; */ - width: 180px; - background-color: white; - height: 100%; - -} - -.modalBody { - padding: 1rem !important; - padding-top: 2rem !important; -} - -.signLayoutContainer1 { - padding: 30px; - display: flex; - flex-direction: column; - align-items: center -} - -.signLayoutContainer2 { - display: none; -} - -.preBtn1 { - display: flex; - align-items: center; -} - -.preBtn2 { - display: none; -} - -.headerBtn2 { - display: none; -} - -.uploadImgLogo { - font-size: 50px; -} - -.DropdownMenuContent, -.DropdownMenuSubContent { - min-width: 130px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 0.25rem; - padding: 5px; - animation-duration: 400ms; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); - will-change: transform, opacity; - z-index: 30 !important; -} - -.DropdownMenuContent[data-side='top'], -.DropdownMenuSubContent[data-side='top'] { - animation-name: slideDownAndFade; -} - -.DropdownMenuContent[data-side='right'], -.DropdownMenuSubContent[data-side='right'] { - animation-name: slideLeftAndFade; -} - -.DropdownMenuContent[data-side='bottom'], -.DropdownMenuSubContent[data-side='bottom'] { - animation-name: slideUpAndFade; -} - -.DropdownMenuContent[data-side='left'], -.DropdownMenuSubContent[data-side='left'] { - animation-name: slideRightAndFade; -} - -.DropdownMenuItem { - font-size: 13px; - line-height: 1; - color: black; - background-color: #fff; - display: flex; - align-items: center; - height: 25px; - padding: 0 5px; - position: relative; - padding-left: 20px; - user-select: none; - outline: none; - border: none; -} - -.SelectTrigger { - display: inline-flex; - align-items: center; - justify-content: center; - border-radius: 4px; - padding: 0 70px; - font-size: 13px; - line-height: 1; - height: 35px; - gap: 5px; - border: none; - background-color: #887abf; - - width: 100px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; -} - -.selectEmail { - - align-items: center; - justify-content: center; - border-radius: 4px; - padding: 0 15px; - font-size: 13px; - line-height: 1; - height: 35px; - gap: 5px; - border: none; - background-color: #887abf; - width: 200px; - white-space: nowrap; - overflow: hidden !important; - text-overflow: ellipsis; -} - -option { - overflow-y: scroll; -} - - -.SelectTrigger:hover { - border: none; - outline: none; -} - -.selectEmail:hover { - border: none; - outline: none; -} - - -.SelectTrigger:focus { - /* box-shadow: 0 0 0 2px black; */ - border: none; - outline: none; -} - -.selectEmail:focus { - /* box-shadow: 0 0 0 2px black; */ - border: none; - outline: none; -} - -.SelectTrigger[data-placeholder] { - color: black; -} - -.SelectIcon { - color: Var(--violet-11); -} - -.SelectContent { - overflow: hidden; - background-color: white; - border-radius: 6px; - box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), 0px 10px 20px -15px rgba(22, 23, 24, 0.2); -} - -.SelectViewport { - padding: 5px; -} - -.SelectItem { - font-size: 13px; - line-height: 1; - color: var(--violet-11); - border-radius: 3px; - display: flex; - align-items: center; - height: 25px; - padding: 0 35px 0 25px; - position: relative; - user-select: none; - z-index: 10 !important; -} - -.SelectItem[data-disabled] { - color: var(--mauve-8); - pointer-events: none; -} - -.SelectItem[data-highlighted] { - outline: none; - background-color: var(--violet-9); - color: var(--violet-1); -} - -.SelectLabel { - padding: 0 25px; - font-size: 12px; - line-height: 25px; - color: var(--mauve-11); -} - -.SelectSeparator { - height: 1px; - background-color: var(--violet-6); - margin: 5px; -} - -.SelectItemIndicator { - position: absolute; - left: 0; - width: 25px; - display: inline-flex; - align-items: center; - justify-content: center; -} - -.SelectScrollButton { - display: flex; - align-items: center; - justify-content: center; - height: 25px; - background-color: white; - color: var(--violet-11); - cursor: default; -} - -.fontOptionContainer { - border: 1px solid #d6d3d3; - margin: 10px 0px 5px 0px; - -} - -.dropDownStyle { - width: auto; -} - -.autoSignScroll { - overflow-y: auto; -} - -.autoSignScroll::-webkit-scrollbar { - display: none; -} - -.validateInputText { - width: 76%; -} - -.regxSelect { - border: 1px solid #8ad5ce; - width: 80%; -} - -.regxSelect:focus { - outline: none; - border: 1px solid #8ad5ce; -} - -.radioGroupInput { - width: 100%; -} - -.radioGroup { - display: flex; - flex-direction: column; - justify-content: flex-start; -} - - - -.labelTextArea { - - font-size: 12px; - min-width: 100%; - min-height: 100%; - border: 1px solid #007bff; - outline: none; - z-index: 999; - border-radius: 2px; - resize: none; - -} - -.labelTextArea:focus { - outline: none; - border: 1px solid #188ae2; -} - -@media screen and (max-width:766px) { - - .validateInputText { - width: 93%; - } - - .regxSelect { - width: 100%; - } - - .validateText { - display: flex; - flex-direction: column; - justify-content: flex-start; - } - - .showPages { - display: none; - } - - .dropdown-menu { - min-width: 0rem !important; - } - - .signatureContainer { - display: flex; - flex-direction: column; - - } - - - .signerComponent { - display: none; - - } - - .preBtn1 { - display: none; - } - - .preBtn2 { - display: flex; - align-items: center; - justify-content: space-between; - background-color: #ebebeb; - padding: 5px 10px; - } - - #navbar { - overflow: hidden; - z-index: 49; - } - - /* Navbar links */ - #navbar a { - float: left; - display: block; - color: #f2f2f2; - text-align: center; - padding: 14px; - text-decoration: none; - } - - #navbar a.active { - background-color: #4caf50; - color: white; - } - - /* Page content */ - .content { - padding: 16px; - } - - /* The sticky class is added to the navbar - with JS when it reaches its scroll position */ - .stickyHead { - top: 50px; - left: 0.9rem; - } - - .stickySignerHead { - position: fixed; - } - - .stickyfooter { - position: fixed; - z-index: 99 !important; - bottom: 0px; - right: 0rem; - } - - /* Add some top padding to the page content - to prevent sudden quick movement (as the - navigation bar gets a new position at the top of the - page (position:fixed and top:0) */ - .stickyHead+.content { - padding-top: 60px; - } - - - .signLayoutContainer2 { - display: flex; - flex-direction: row; - justify-content: space-around; - margin-top: 5px; - padding: 2px 5px 10px 5px; - position: sticky; - align-items: center; - - } - - .headerBtn { - display: none; - } - - .headerBtn2 { - display: flex; - flex-direction: column; - justify-content: space-between; - - margin-top: 5px; - } - - .mobileHead { - display: flex; - } - - .signatureText { - margin-right: 5px; - font-size: 12px; - } -} - -@media screen and (max-width:487px) and (min-width:351px) { - .signatureCanvas { - - width: 300px; - height: 120px; - } - - .penContainerDefault { - width: 300px; - } - - .uploadImgLogo { - font-size: 30px; - } - - .hidePdf { - display: none; - } - - .mobileHead { - display: flex; - } - - .signTab { - - font-weight: 500 !important; - - font-size: 12px !important; - } - -} - -@media screen and (max-width:350px) and (min-width:311px) { - .signatureCanvas { - - width: 280px; - height: 112px; - } - - .penContainerDefault { - width: 280px; - } - - .hidePdf { - display: none; - } - - .signTab { - - font-weight: 500 !important; - - font-size: 10px !important; - } - - .uploadImgLogo { - font-size: 25px; - } - - .uploadImg { - - font-size: 10px !important; - } - - .mobileHead { - display: flex; - } -} - -@media screen and (max-width:310px) { - .signatureCanvas { - - width: 230px; - height: 92px; - } - - .penContainerDefault { - width: 230px; - } - - .hidePdf { - display: none; - } - - .signTab { - - font-weight: 500 !important; - - font-size: 8px !important; - } - - .uploadImgLogo { - font-size: 20px; - } - - .uploadImg { - - font-size: 10px !important; - } - - .mobileHead { - display: flex; - } -} - -.signature-backdrop { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: #000; -} - -.signature-backdrop.fade.in { - opacity: 0.5; -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/css/signerListPlace.css b/microfrontends/SignDocuments/src/css/signerListPlace.css deleted file mode 100644 index 1df701b70..000000000 --- a/microfrontends/SignDocuments/src/css/signerListPlace.css +++ /dev/null @@ -1,16 +0,0 @@ -.addSignerBtn{ - padding: 10px; - margin-top: 2px; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - border: 1px solid #47a3ad; - margin: 1px; - color: #47a3ad; - cursor: pointer -} -.addSignerBtn:hover{ - background: #47a3ad; - color: #ffffff; -} diff --git a/microfrontends/SignDocuments/src/hook/useWindowSize.js b/microfrontends/SignDocuments/src/hook/useWindowSize.js deleted file mode 100644 index 0c84d6f13..000000000 --- a/microfrontends/SignDocuments/src/hook/useWindowSize.js +++ /dev/null @@ -1,25 +0,0 @@ -import { useEffect, useState } from "react"; - -export function useWindowSize() { - const [size, setSize] = useState({ - width: 0, - height: 0 - }); - - const onResize = () => { - setSize({ - width: window.innerWidth, - height: window.innerHeight - }); - }; - - useEffect(() => { - onResize(); - window.addEventListener("resize", onResize); - return () => { - window.removeEventListener("resize", onResize); - }; - }, []); - - return size; -} diff --git a/microfrontends/SignDocuments/src/index.js b/microfrontends/SignDocuments/src/index.js deleted file mode 100644 index ddb8291bc..000000000 --- a/microfrontends/SignDocuments/src/index.js +++ /dev/null @@ -1 +0,0 @@ -import("./bootstrap") \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/premitives/AddUser.js b/microfrontends/SignDocuments/src/premitives/AddUser.js deleted file mode 100644 index 8590ba0df..000000000 --- a/microfrontends/SignDocuments/src/premitives/AddUser.js +++ /dev/null @@ -1,293 +0,0 @@ -import React, { useState, useEffect } from "react"; -import Parse from "parse"; -import axios from "axios"; -import "../css/AddUser.css"; -const AddUser = (props) => { - const [name, setName] = useState(""); - const [phone, setPhone] = useState(""); - const [email, setEmail] = useState(""); - const [addYourself, setAddYourself] = useState(false); - const [isLoader, setIsLoader] = useState(false); - const [isUserExist, setIsUserExist] = useState(false); - const parseBaseUrl = localStorage.getItem("baseUrl"); - const parseAppId = localStorage.getItem("parseAppId"); - Parse.serverURL = parseBaseUrl; - Parse.initialize(parseAppId); - - useEffect(() => { - checkUserExist(); - }, []); - // Load user details from localStorage when the component mounts - useEffect(() => { - const savedUserDetails = JSON.parse( - localStorage.getItem("UserInformation") - ); - if (savedUserDetails && addYourself) { - setName(savedUserDetails.name); - setPhone(savedUserDetails.phone); - setEmail(savedUserDetails.email); - } - }, [addYourself]); - - const checkUserExist = async () => { - const user = Parse.User.current(); - try { - const query = new Parse.Query("contracts_Contactbook"); - query.equalTo("CreatedBy", user); - query.notEqualTo("IsDeleted", true); - query.equalTo("Email", user.getEmail()); - const res = await query.first(); - // console.log(res); - if (!res) { - setIsUserExist(true); - } - } catch (err) { - console.log("err", err); - } - }; - // Define a function to handle form submission - const handleSubmit = async (e) => { - e.preventDefault(); - e.stopPropagation(); - setIsLoader(true); - Parse.serverURL = parseBaseUrl; - Parse.initialize(parseAppId); - try { - const contactQuery = new Parse.Object("contracts_Contactbook"); - contactQuery.set("Name", name); - contactQuery.set("Phone", phone); - contactQuery.set("Email", email); - contactQuery.set("UserRole", "contracts_Guest"); - - if (localStorage.getItem("TenetId")) { - contactQuery.set("TenantId", { - __type: "Pointer", - className: "partners_Tenant", - objectId: localStorage.getItem("TenetId") - }); - } - - try { - const _users = Parse.Object.extend("User"); - const _user = new _users(); - _user.set("name", name); - _user.set("username", email); - _user.set("email", email); - _user.set("phone", phone); - _user.set("password", phone); - - const user = await _user.save(); - if (user) { - const roleurl = `${parseBaseUrl}functions/AddUserToRole`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": parseAppId, - sessionToken: localStorage.getItem("accesstoken") - }; - const body = { - appName: localStorage.getItem("_appName"), - roleName: "contracts_Guest", - userId: user.id - }; - await axios.post(roleurl, body, { headers: headers }); - const currentUser = Parse.User.current(); - contactQuery.set( - "CreatedBy", - Parse.User.createWithoutData(currentUser.id) - ); - - contactQuery.set("UserId", user); - const acl = new Parse.ACL(); - acl.setPublicReadAccess(true); - acl.setPublicWriteAccess(true); - acl.setReadAccess(currentUser.id, true); - acl.setWriteAccess(currentUser.id, true); - - contactQuery.setACL(acl); - - const res = await contactQuery.save(); - - const parseData = JSON.parse(JSON.stringify(res)); - props.details(parseData); - if (props.closePopup) { - props.closePopup(); - } - - setIsLoader(false); - // Reset the form fields - setAddYourself(false); - setName(""); - setPhone(""); - setEmail(""); - } - } catch (err) { - console.log("err ", err); - if (err.code === 202) { - const params = { email: email }; - const userRes = await Parse.Cloud.run("getUserId", params); - const roleurl = `${parseBaseUrl}functions/AddUserToRole`; - const headers = { - "Content-Type": "application/json", - "X-Parse-Application-Id": parseAppId, - sessionToken: localStorage.getItem("accesstoken") - }; - const body = { - appName: localStorage.getItem("_appName"), - roleName: "contracts_Guest", - userId: userRes.id - }; - await axios.post(roleurl, body, { headers: headers }); - const currentUser = Parse.User.current(); - contactQuery.set( - "CreatedBy", - Parse.User.createWithoutData(currentUser.id) - ); - - contactQuery.set("UserId", { - __type: "Pointer", - className: "_User", - objectId: userRes.id - }); - const acl = new Parse.ACL(); - acl.setPublicReadAccess(true); - acl.setPublicWriteAccess(true); - acl.setReadAccess(currentUser.id, true); - acl.setWriteAccess(currentUser.id, true); - - contactQuery.setACL(acl); - const res = await contactQuery.save(); - - const parseData = JSON.parse(JSON.stringify(res)); - if(props.details){ - props.details(parseData); - } - - if (props.closePopup) { - props.closePopup(); - } - setIsLoader(false); - // Reset the form fields - setAddYourself(false); - setName(""); - setPhone(""); - setEmail(""); - } - } - } catch (err) { - // console.log("err", err); - setIsLoader(false); - alert("something went wrong!"); - } - }; - - // Define a function to handle the "add yourself" checkbox - const handleAddYourselfChange = () => { - if (addYourself) { - setAddYourself(false); - setName(""); - setPhone(""); - setEmail(""); - } else { - setAddYourself(true); - } - }; - const handleReset = () => { - setAddYourself(false); - }; - - return ( - <div className="addusercontainer"> - {isLoader && ( - <div className="loaderdiv"> - <div - style={{ - fontSize: "45px", - color: "#3dd3e0" - }} - className="loader-37" - ></div> - </div> - )} - <div className="form-wrapper"> - <div style={{ fontSize: 14, fontWeight: "700" }}>Add User</div> - - {isUserExist && ( - <div className="form-section"> - <input - type="checkbox" - id="addYourself" - checked={addYourself} - onChange={handleAddYourselfChange} - className="form-checkbox" - /> - <label htmlFor="addYourself" className="checkbox-label "> - Add Yourself - </label> - </div> - )} - <form onSubmit={handleSubmit}> - <div className="form-section"> - <label htmlFor="name" style={{ fontSize: 13 }}> - Name - <span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - type="text" - id="name" - value={name} - onChange={(e) => setName(e.target.value)} - required - disabled={addYourself} - className="addUserInput" - /> - </div> - <div className="form-section"> - <label htmlFor="email" style={{ fontSize: 13 }}> - Email - <span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - type="email" - id="email" - value={email} - onChange={(e) => setEmail(e.target.value)} - required - disabled={addYourself} - className="addUserInput" - /> - </div> - <div className="form-section"> - <label htmlFor="phone" style={{ fontSize: 13 }}> - Phone - <span style={{ color: "red", fontSize: 13 }}> *</span> - </label> - <input - type="text" - id="phone" - value={phone} - onChange={(e) => setPhone(e.target.value)} - required - disabled={addYourself} - className="addUserInput" - /> - </div> - - <div className="buttoncontainer"> - <button type="submit" className="submitbutton"> - Submit - </button> - <button - type="button" - onClick={() => handleReset()} - className="resetbutton" - > - Reset - </button> - </div> - </form> - </div> - </div> - ); -}; - -export default AddUser; diff --git a/microfrontends/SignDocuments/src/premitives/Alert.js b/microfrontends/SignDocuments/src/premitives/Alert.js deleted file mode 100644 index 0f10cf3c8..000000000 --- a/microfrontends/SignDocuments/src/premitives/Alert.js +++ /dev/null @@ -1,57 +0,0 @@ -import React from "react"; - -const Alert = ({ children, type }) => { - const textcolor = type ? theme(type) : theme(); - function theme(color) { - switch (color) { - case "success": - return { - border: `1px solid #c3e6cb`, // Border color - backgroundColor: "#d4edda", // Background color - color: "#155724" // Text color - }; - - case "info": - return { - border: `1px solid #adcdeb`, // Border color - backgroundColor: "#c1daf0", // Background color - color: "#153756" // Text color - }; - case "danger": - return { - border: `1px solid #f0a8a8`, // Border color - backgroundColor: "#f4bebe", // Background color - color: "#c42121" // Text color - }; - default: - return { - border: `1px solid #d6d6d6`, // Border color - backgroundColor: "#d9d9d9", // Background color - color: "#575757" // Text color - }; - } - } - return ( - <> - {children && ( - <div - style={{ - ...textcolor, - position: "fixed", - top: "20px", - left: "50%", - transform: "translateX(-50%)", - fontSize: "0.875rem", // Corresponds to text-sm in Tailwind CSS - borderRadius: "5px", // Rounded corners - padding: "10px 15px", // Padding - zIndex: 40 - }} - > - {children} - </div> - )} - </> - ); -}; - -export default Alert; diff --git a/microfrontends/SignDocuments/src/premitives/CreateFolder.js b/microfrontends/SignDocuments/src/premitives/CreateFolder.js deleted file mode 100644 index 1fc15334f..000000000 --- a/microfrontends/SignDocuments/src/premitives/CreateFolder.js +++ /dev/null @@ -1,175 +0,0 @@ -import React, { useEffect, useState } from "react"; -import Parse from "parse"; -import Alert from "./Alert"; -import { themeColor } from "../utils/ThemeColor/backColor"; - -const CreateFolder = ({ parentFolderId, onSuccess, folderCls }) => { - const folderPtr = { - __type: "Pointer", - className: folderCls, - objectId: parentFolderId - }; - const [name, setName] = useState(""); - const [folderList, setFolderList] = useState([]); - const [isAlert, setIsAlert] = useState(false); - const [selectedParent, setSelectedParent] = useState(); - const [alert, setAlert] = useState({ type: "info", message: "" }); - useEffect(() => { - fetchFolder(); - // eslint-disable-next-line - }, []); - - const fetchFolder = async () => { - try { - const FolderQuery = new Parse.Query(folderCls); - if (parentFolderId) { - FolderQuery.equalTo("Folder", folderPtr); - FolderQuery.equalTo("Type", "Folder"); - } else { - FolderQuery.doesNotExist("Folder"); - FolderQuery.equalTo("Type", "Folder"); - } - - const res = await FolderQuery.find(); - if (res) { - const result = JSON.parse(JSON.stringify(res)); - if (result) { - setFolderList(result); - } - } - } catch (error) { - console.log("Err ", error); - } - }; - const handleCreateFolder = async (event) => { - event.preventDefault(); - if (name) { - const currentUser = Parse.User.current(); - const exsitQuery = new Parse.Query(folderCls); - exsitQuery.equalTo("Name", name); - exsitQuery.equalTo("Type", "Folder"); - if (parentFolderId) { - exsitQuery.equalTo("Folder", folderPtr); - } - const templExist = await exsitQuery.first(); - if (templExist) { - setAlert({ type: "dange", message: "Folder already exist!" }); - setIsAlert(true); - setTimeout(() => { - setIsAlert(false); - }, 1000); - } else { - const template = new Parse.Object(folderCls); - template.set("Name", name); - template.set("Type", "Folder"); - - if (selectedParent) { - template.set("Folder", { - __type: "Pointer", - className: folderCls, - objectId: selectedParent - }); - } else if (parentFolderId) { - template.set("Folder", folderPtr); - } - template.set("CreatedBy", Parse.User.createWithoutData(currentUser.id)); - const res = await template.save(); - if (res) { - const result = JSON.parse(JSON.stringify(res)); - if (onSuccess) { - setAlert({ - type: "success", - message: "Folder created successfully!" - }); - setIsAlert(true); - setTimeout(() => { - setIsAlert(false); - }, 1000); - onSuccess(result); - } - } - } - } else { - setAlert({ type: "info", message: "Please fill folder name" }); - setIsAlert(true); - setTimeout(() => { - setIsAlert(false); - }, 1000); - } - }; - const handleOptions = (e) => { - setSelectedParent(e.target.value); - }; - - return ( - <div> - {isAlert && <Alert type={alert.type}>{alert.message}</Alert>} - <div id="createFolder"> - <h1 style={{ fontWeight: "500", fontSize: "1rem" }}>Create Folder</h1> - <div style={{ fontSize: "12px", marginTop: "11px" }}> - <label className="block"> - Name<span style={{ color: "red", fontSize: "13px" }}> *</span> - </label> - <input - style={{ - padding: "8px 11px", - width: "100%", - border: "1px solid rgb(195, 188, 188)", - borderRadius: "5px", - outline: "none", - fontSize: "12px" - }} - value={name} - onChange={(e) => setName(e.target.value)} - required - /> - </div> - <div style={{ fontSize: "12px", marginTop: "7px" }}> - <label className="block">Parent Folder</label> - <select - value={selectedParent} - onChange={handleOptions} - style={{ - padding: "8px 11px", - width: "100%", - border: "1px solid rgb(195, 188, 188)", - borderRadius: "5px", - outline: "none", - fontSize: "12px" - }} - > - <option>select</option> - {folderList.length > 0 && - folderList.map((x) => ( - <option key={x.objectId} value={x.objectId}> - {x.Name} - </option> - ))} - </select> - </div> - <div> - <button - onClick={handleCreateFolder} - style={{ - display: "flex", - alignItems: "center", - borderRadius: "5px", - backgroundColor: themeColor(), - color: "white", - marginTop: "22px", - outline: "none", - border: "none", - padding: "10px 8px", - fontSize: "14px" - }} - > - <i className="fa-solid fa-plus mr-1"></i> - <span>Create</span> - </button> - </div> - </div> - </div> - ); -}; - -export default CreateFolder; diff --git a/microfrontends/SignDocuments/src/premitives/GuestSign.js b/microfrontends/SignDocuments/src/premitives/GuestSign.js deleted file mode 100644 index 9fa32a5e0..000000000 --- a/microfrontends/SignDocuments/src/premitives/GuestSign.js +++ /dev/null @@ -1,1002 +0,0 @@ -import React, { useState, useRef, useEffect } from "react"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import { PDFDocument } from "pdf-lib"; -import "../css/signature.css"; -import axios from "axios"; -import loader from "../assests/loader2.gif"; -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; -import { useParams } from "react-router-dom"; -import SignPad from "../Component/component/signPad"; -import RenderAllPdfPage from "../Component/component/renderAllPdfPage"; -import { - contractDocument, - multiSignEmbed, - embedDocId, - pdfNewWidthFun, - signPdfFun, - onImageSelect, - onSaveSign, - onSaveImage, - addDefaultSignatureImg -} from "../utils/Utils"; -import Loader from "../Component/component/loader"; -import HandleError from "../Component/component/HandleError"; -import Nodata from "../Component/component/Nodata"; -import Header from "../Component/component/header"; -import RenderPdf from "../Component/component/renderPdf"; -import CustomModal from "../Component/component/CustomModal"; -import Title from "../Component/component/Title"; -import DefaultSignature from "../Component/component/defaultSignature"; -import ModalUi from "./ModalUi"; - -function GuestSign() { - const { docId } = useParams(); - const [pdfDetails, setPdfDetails] = useState([]); - const [signedSigners, setSignedSigners] = useState([]); - const [unsignedSigners, setUnSignedSigners] = useState([]); - const [isSignPad, setIsSignPad] = useState(false); - const [pdfUrl, setPdfUrl] = useState(); - const [allPages, setAllPages] = useState(null); - const numPages = 1; - const [pageNumber, setPageNumber] = useState(1); - const [image, setImage] = useState(null); - const [isImageSelect, setIsImageSelect] = useState(false); - const [signature, setSignature] = useState(); - const [isStamp, setIsStamp] = useState(false); - const [signKey, setSignKey] = useState(); - const [imgWH, setImgWH] = useState({}); - const imageRef = useRef(null); - const [handleError, setHandleError] = useState(); - const [isLoading, setIsLoading] = useState({ - isLoad: true, - message: "This might take some time" - }); - const [defaultSignImg, setDefaultSignImg] = useState(); - const [isDocId, setIsDocId] = useState(false); - const [pdfNewWidth, setPdfNewWidth] = useState(); - const [pdfOriginalWidth, setPdfOriginalWidth] = useState(); - const [signerPos, setSignerPos] = useState([]); - const [noData, setNoData] = useState(false); - const [signerObjectId, setSignerObjectId] = useState(); - const [isUiLoading, setIsUiLoading] = useState(false); - const [isDecline, setIsDecline] = useState({ isDeclined: false }); - const [currentSigner, setCurrentSigner] = useState(false); - const [isAlert, setIsAlert] = useState({ isShow: false, alertMessage: "" }); - const [defaultSignAlert, setDefaultSignAlert] = useState({ - isShow: false, - alertMessage: "" - }); - const [isCompleted, setIsCompleted] = useState({ - isCertificate: false, - isModal: false - }); - const [pdfLoadFail, setPdfLoadFail] = useState({ - status: false, - type: "load" - }); - const [isSigned, setIsSigned] = useState(false); - const [isExpired, setIsExpired] = useState(false); - const [alreadySign, setAlreadySign] = useState(false); - const [containerWH, setContainerWH] = useState({}); - const divRef = useRef(null); - const isMobile = window.innerWidth < 767; - const rowLevel = - localStorage.getItem("rowlevel") && - JSON.parse(localStorage.getItem("rowlevel")); - - const objectId = - rowLevel && rowLevel.id - ? rowLevel.id - : rowLevel?.objectId && rowLevel.objectId; - const documentId = "uKymQWaYL6"//docId ? docId : objectId && objectId; - - const senderUser = - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ) && - localStorage.getItem( - `Parse/${localStorage.getItem("parseAppId")}/currentUser` - ); - const jsonSender = JSON.parse(senderUser); - - useEffect(() => { - if (documentId) { - getDocumentDetails(); - } - }, []); - useEffect(() => { - if (divRef.current) { - const pdfWidth = pdfNewWidthFun(divRef); - setPdfNewWidth(pdfWidth); - setContainerWH({ - width: divRef.current.offsetWidth, - height: divRef.current.offsetHeight - }); - } - }, [divRef.current]); - - //function for get document details for perticular signer with signer'object id - const getDocumentDetails = async () => { - //getting document details - const documentData = await contractDocument(documentId); - if (documentData && documentData.length > 0) { - const isCompleted = - documentData[0].IsCompleted && documentData[0].IsCompleted; - const expireDate = documentData[0].ExpiryDate.iso; - const declined = documentData[0].IsDeclined && documentData[0].IsDeclined; - const expireUpdateDate = new Date(expireDate).getTime(); - const currDate = new Date().getTime(); - const getSigners = documentData[0].Signers; - const getCurrentSigner = - getSigners && - getSigners.filter( - (data) => data.UserId.objectId === jsonSender.objectId - ); - - const currUserId = getCurrentSigner[0] - ? getCurrentSigner[0].objectId - : ""; - setSignerObjectId(currUserId); - if (documentData[0].SignedUrl) { - setPdfUrl(documentData[0].SignedUrl); - } else { - setPdfUrl(documentData[0].URL); - } - if (isCompleted) { - setIsSigned(true); - const data = { - isCertificate: true, - isModal: true - }; - setAlreadySign(true); - setIsCompleted(data); - } else if (declined) { - const currentDecline = { - currnt: "another", - isDeclined: true - }; - setIsDecline(currentDecline); - } else if (currDate > expireUpdateDate) { - setIsExpired(true); - } - - if (documentData.length > 0) { - const checkDocIdExist = - documentData[0].AuditTrail && - documentData[0].AuditTrail.length > 0 && - documentData[0].AuditTrail.filter( - (data) => data.Activity === "Signed" - ); - - const checkAlreadySign = - documentData[0].AuditTrail && - documentData[0].AuditTrail.length > 0 && - documentData[0].AuditTrail.filter( - (data) => - data.UserPtr.objectId === currUserId && data.Activity === "Signed" - ); - if ( - checkAlreadySign && - checkAlreadySign[0] && - checkAlreadySign.length > 0 - ) { - setAlreadySign(true); - } - - let signers = []; - let unSignedSigner = []; - - //check document is signed or not - if (checkDocIdExist && checkDocIdExist.length > 0) { - setIsDocId(true); - const signerRes = documentData[0].Signers; - //comparison auditTrail user details with signers user details - for (let i = 0; i < signerRes.length; i++) { - const signerId = signerRes[i].objectId; - - let isSignedSignature = false; - for (let j = 0; j < checkDocIdExist.length; j++) { - const signedExist = - checkDocIdExist[j] && checkDocIdExist[j].UserPtr.objectId; - //checking signerObjId and auditTrail User objId - // if match then add signed data in signer array and break loop - - if (signerId === signedExist) { - signers.push({ ...signerRes[i], ...signerRes[i] }); - isSignedSignature = true; - break; - } - // if does not match then add unsigned data in unSignedSigner array - } - if (!isSignedSignature) { - unSignedSigner.push({ ...signerRes[i], ...signerRes[i] }); - } - } - setSignedSigners(signers); - setUnSignedSigners(unSignedSigner); - - setSignerPos(documentData[0].Placeholders); - } else { - let unsigned = []; - for (let i = 0; i < documentData.length; i++) { - unsigned.push(documentData[i].Signers); - } - setUnSignedSigners(unsigned[0]); - setSignerPos(documentData[0].Placeholders); - } - setPdfDetails(documentData); - setIsUiLoading(false); - } else { - alert("No data found!"); - } - } else if ( - documentData === "Error: Something went wrong!" || - (documentData.result && documentData.result.error) - ) { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - } else { - setNoData(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - setIsUiLoading(false); - } -if(jsonSender?.objectId){ await axios - .get( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Signature?where={"UserId": {"__type": "Pointer","className": "_User", "objectId":"${ - jsonSender?.objectId - }"}}`, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - const json = Listdata.data; - const res = json.results; - - if (res[0] && res.length > 0) { - setDefaultSignImg(res[0].ImageURL); - } - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - }) - .catch((err) => { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); - });} - }; - - //function for embed signature or image url in pdf - async function embedWidgetsData() { - const checkUser = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - if (checkUser && checkUser.length > 0) { - let checkSignUrl = []; - const checkSign = checkUser[0].placeHolder.filter( - (data, ind) => data.pos - ); - for (let i = 0; i < checkSign.length; i++) { - const posData = checkSign[i].pos.filter((pos) => !pos.SignUrl); - if (posData && posData.length > 0) { - checkSignUrl.push(posData); - } - } - - if (checkSignUrl && checkSignUrl.length > 0) { - setIsAlert({ - isShow: true, - alertMessage: "Please complete your signature!" - }); - } else { - setIsUiLoading(true); - const pngUrl = checkUser[0].placeHolder; - // Load a PDFDocument from the existing PDF bytes - const existingPdfBytes = await fetch(pdfUrl).then((res) => - res.arrayBuffer() - ); - const pdfDoc = await PDFDocument.load(existingPdfBytes, { - ignoreEncryption: true - }); - // let pdfBase64; - // //else if signature is more than one then embed all sign with the use of pdf-lib - // else if (pngUrl.length > 0 && pngUrl[0].pos.length > 0) { - const flag = false; - //embed document's object id to all pages in pdf document - if (!isDocId) { - await embedDocId(pdfDoc, documentId, allPages); - } - //embed multi signature in pdf - const pdfBytes = await multiSignEmbed( - pngUrl, - pdfDoc, - pdfOriginalWidth, - flag, - containerWH - ); - //function for call to embed signature in pdf and get digital signature pdf - try { - const res = await signPdfFun( - pdfBytes, - documentId, - signerObjectId, - pdfOriginalWidth, - pngUrl, - containerWH, - setIsAlert - ); - if (res && res.status === "success") { - setPdfUrl(res.data); - setIsSigned(true); - setSignedSigners([]); - setUnSignedSigners([]); - getDocumentDetails(); - } else { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } catch (err) { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } - - setIsSignPad(false); - // } - } else { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - } - } - - //function for get pdf page details - const pageDetails = async (pdf) => { - const load = { - status: true - }; - setPdfLoadFail(load); - pdf.getPage(1).then((pdfPage) => { - const pageWidth = pdfPage.view[2]; - - setPdfOriginalWidth(pageWidth); - }); - }; - - //function for change page - function changePage(offset) { - setPageNumber((prevPageNumber) => prevPageNumber + offset); - } - - const getFirstLetter = (name) => { - const firstLetter = name.charAt(0); - return firstLetter; - }; - //function for image upload or update - const onImageChange = (event) => { - if (event.target.files && event.target.files[0]) { - onImageSelect(event, setImgWH, setImage); - } - }; - //function for upload stamp image - const saveImage = () => { - //get current signers placeholder position data - const currentSigner = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //get current pagenumber placeholder index - const getIndex = currentSigner[0].placeHolder.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - //get current signer placeholder position data - const placeholderPosition = currentSigner[0].placeHolder; - //function of save image and get updated position with image url - const getUpdatePosition = onSaveImage( - placeholderPosition, - getIndex, - signKey, - imgWH, - image - ); - - //replace updated placeholder position with old data - placeholderPosition.splice( - 0, - placeholderPosition.length, - ...getUpdatePosition - ); - //get current signers placeholder position data index number in array - const indexofSigner = signerPos.findIndex((object) => { - return object.signerObjId === signerObjectId; - }); - //update current signers data with new placeholder position array data - setSignerPos((prevState) => { - const newState = [...prevState]; // Create a copy of the state - newState.splice(indexofSigner, 1, ...currentSigner); // Modify the copy - return newState; // Update the state with the modified copy - }); - }; - - //function for save button to save signature or image url - const saveSign = (isDefaultSign, width, height) => { - const isTypeText = width && height ? true : false; - const signatureImg = isDefaultSign ? defaultSignImg : signature; - let imgWH = { width: width ? width : "", height: height ? height : "" }; - setIsSignPad(false); - setIsImageSelect(false); - setImage(); - - //get current signers placeholder position data - const currentSigner = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //get current pagenumber placeholder index - const getIndex = currentSigner[0].placeHolder.findIndex((object) => { - return object.pageNumber === pageNumber; - }); - - //set default signature image width and height - if (isDefaultSign) { - const img = new Image(); - img.src = defaultSignImg; - if (img.complete) { - imgWH = { - width: img.width, - height: img.height - }; - } - } - //get current signer placeholder position data - const placeholderPosition = currentSigner[0].placeHolder; - //function of save signature image and get updated position with signature image url - const getUpdatePosition = onSaveSign( - placeholderPosition, - getIndex, - signKey, - signatureImg, - imgWH, - isDefaultSign, - isTypeText - ); - - const updateSignerData = currentSigner.map((obj, ind) => { - if (obj.signerObjId === signerObjectId) { - return { ...obj, placeHolder: getUpdatePosition }; - } - return obj; - }); - - const index = signerPos.findIndex( - (data) => data.signerObjId === signerObjectId - ); - setSignerPos((prevState) => { - const newState = [...prevState]; - newState.splice(index, 1, ...updateSignerData); - return newState; - }); - }; - - const checkSignerBackColor = (obj) => { - const data = signerPos.filter((data) => data.signerObjId === obj.objectId); - return data && data.length > 0 && data[0].blockColor; - }; - - //function for set decline true on press decline button - const declineDoc = async () => { - setIsDecline({ isDeclined: false }); - const data = { - IsDeclined: true - }; - setIsUiLoading(true); - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${documentId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((result) => { - const res = result.data; - if (res) { - const currentDecline = { - currnt: "YouDeclined", - isDeclined: true - }; - setIsDecline(currentDecline); - setIsUiLoading(false); - } - }) - .catch((err) => { - console.log("error updating field is decline ", err); - }); - }; - //function to add default signature for all requested placeholder of sign - const addDefaultSignature = () => { - //get current signers placeholder position data - const currentSignerPosition = signerPos.filter( - (data) => data.signerObjId === signerObjectId - ); - //function for save default signature url for all placeholder position - const updatePlace = addDefaultSignatureImg( - currentSignerPosition[0].placeHolder, - defaultSignImg - ); - - const updatesignerPos = signerPos.map((x) => - x.signerObjId === signerObjectId ? { ...x, placeHolder: updatePlace } : x - ); - setSignerPos(updatesignerPos); - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }; - - return ( - <DndProvider backend={HTML5Backend}> - <Title title={"Request Sign"} /> - {isLoading.isLoad ? ( - <Loader isLoading={isLoading} /> - ) : handleError ? ( - <HandleError handleError={handleError} /> - ) : noData ? ( - <Nodata /> - ) : ( - <div> - {isUiLoading && ( - <div - style={{ - position: "absolute", - height: "100vh", - width: "100%", - display: "flex", - justifyContent: "center", - flexDirection: "column", - alignItems: "center", - zIndex: "20", - backgroundColor: "#e6f2f2", - opacity: 0.8 - }} - > - <img - alt="no img" - src={loader} - style={{ width: "100px", height: "100px" }} - /> - <span style={{ fontSize: "13px", fontWeight: "bold" }}> - This might take some time - </span> - </div> - )} - - <div className="signatureContainer" ref={divRef}> - <ModalUi - headerColor={"#dc3545"} - isOpen={isAlert.isShow} - title={"Alert message"} - handleClose={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{isAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - - <button - onClick={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - </div> - </ModalUi> - {/* this modal is used to show decline alert */} - <CustomModal - containerWH={containerWH} - show={isDecline.isDeclined} - headMsg="Document Declined" - bodyMssg={ - isDecline.currnt === "Sure" ? ( - <p className="pTagBody"> - Are you sure want to decline this document ? - </p> - ) : isDecline.currnt === "YouDeclined" ? ( - <p className="pTagBody">You have declined this document!</p> - ) : ( - isDecline.currnt === "another" && ( - <p className="pTagBody"> - You cannot sign this document as it has been declined by - one or more person(s). - </p> - ) - ) - } - footerMessage={isDecline.currnt === "Sure"} - declineDoc={declineDoc} - setIsDecline={setIsDecline} - /> - {/* this modal is used for show expired alert */} - <CustomModal - containerWH={containerWH} - show={isExpired} - headMsg="Document Expired!" - bodyMssg="This Document is no longer available." - /> - <ModalUi - headerColor={defaultSignImg ? themeColor() : "#dc3545"} - isOpen={defaultSignAlert.isShow} - title={"Auto sign"} - handleClose={() => { - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>{defaultSignAlert.alertMessage}</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - {defaultSignImg ? ( - <> - <button - onClick={() => addDefaultSignature()} - style={{ - background: themeColor() - }} - type="button" - className="finishBtn" - > - Yes - </button> - <button - onClick={() => { - setDefaultSignAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Close - </button> - </> - ) : ( - <button - onClick={() => { - setIsAlert({ - isShow: false, - alertMessage: "" - }); - }} - type="button" - className="finishBtn cancelBtn" - > - Ok - </button> - )} - </div> - </ModalUi> - {/* this component used to render all pdf pages in left side */} - <RenderAllPdfPage - signPdfUrl={pdfDetails[0].URL || "https://api.printnode.com/static/test/pdf/multipage.pdf"} - allPages={allPages} - setAllPages={setAllPages} - setPageNumber={setPageNumber} - pageNumber={pageNumber} - /> - - {/* pdf render view */} - <div - style={{ - marginLeft: !isMobile && pdfOriginalWidth > 500 && "20px", - marginRight: !isMobile && pdfOriginalWidth > 500 && "20px" - }} - > - {/* this modal is used show this document is already sign */} - <ModalUi - isOpen={isCompleted.isModal} - title={"Sign Documents"} - handleClose={() => { - setIsCompleted({ isModal: false, isCertificate: true }); - }} - > - <div style={{ height: "100%", padding: 20 }}> - <p>This document has been signed by all Signers.</p> - - <div - style={{ - height: "1px", - backgroundColor: "#9f9f9f", - width: "100%", - marginTop: "15px", - marginBottom: "15px" - }} - ></div> - <button - type="button" - className="finishBtn cancelBtn" - onClick={() => - setIsCompleted({ isModal: false, isCertificate: true }) - } - > - Close - </button> - </div> - </ModalUi> - - {/* this component is used for signature pad modal */} - <SignPad - isSignPad={isSignPad} - isStamp={isStamp} - setIsImageSelect={setIsImageSelect} - setIsSignPad={setIsSignPad} - setImage={setImage} - isImageSelect={isImageSelect} - imageRef={imageRef} - onImageChange={onImageChange} - setSignature={setSignature} - image={image} - onSaveImage={saveImage} - onSaveSign={saveSign} - defaultSign={defaultSignImg} - /> - {/* pdf header which contain funish back button */} - <Header - isPdfRequestFiles={true} - pageNumber={pageNumber} - allPages={allPages} - changePage={changePage} - pdfDetails={pdfDetails} - signerPos={signerPos} - isSigned={isSigned} - isCompleted={isCompleted} - embedWidgetsData={embedWidgetsData} - isShowHeader={true} - setIsDecline={setIsDecline} - decline={true} - currentSigner={currentSigner} - pdfUrl={pdfUrl} - alreadySign={alreadySign} - /> - {containerWH && ( - <RenderPdf - pageNumber={pageNumber} - pdfOriginalWidth={pdfOriginalWidth} - pdfNewWidth={pdfNewWidth} - setIsSignPad={setIsSignPad} - setIsStamp={setIsStamp} - setSignKey={setSignKey} - pdfDetails={pdfDetails} - signerPos={signerPos} - successEmail={false} - pdfUrl={pdfUrl} - numPages={numPages} - pageDetails={pageDetails} - pdfRequest={true} - signerObjectId={signerObjectId} - signedSigners={signedSigners} - setCurrentSigner={setCurrentSigner} - setPdfLoadFail={setPdfLoadFail} - pdfLoadFail={pdfLoadFail} - setSignerPos={setSignerPos} - containerWH={containerWH} - /> - )} - </div> - <div> - <div className="signerComponent"> - <div - style={{ maxHeight: window.innerHeight - 70 + "px" }} - className="autoSignScroll" - > - {signedSigners.length > 0 && ( - <> - <div - style={{ - background: themeColor() - }} - className="signedStyle" - > - Signed by - </div> - <div style={{ marginTop: "2px" }}> - {signedSigners.map((obj, ind) => { - return ( - <div - style={{ - display: "flex", - flexDirection: "row", - alignItems: "center", - padding: "10px 0", - background: checkSignerBackColor(obj) - }} - key={ind} - > - <div - className="signerStyle" - style={{ - background: "#abd1d0", - width: 30, - height: 30, - display: "flex", - borderRadius: 30 / 2, - justifyContent: "center", - alignItems: "center", - margin: "0 10px 0 5px" - }} - > - <span - style={{ - fontSize: "12px", - textAlign: "center", - fontWeight: "bold", - color: "black", - textTransform: "uppercase" - }} - > - {getFirstLetter(obj.Name)} - </span> - </div> - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - <span className="userName">{obj.Name}</span> - <span className="useEmail">{obj.Email}</span> - </div> - </div> - ); - })} - </div> - </> - )} - - {unsignedSigners.length > 0 && ( - <> - <div - style={{ - background: themeColor(), - color: "white", - padding: "5px", - fontFamily: "sans-serif", - marginTop: signedSigners.length > 0 && "20px" - }} - > - Yet to sign - </div> - <div style={{ marginTop: "5px" }}> - {unsignedSigners.map((obj, ind) => { - return ( - <div - style={{ - display: "flex", - flexDirection: "row", - alignItems: "center", - padding: "10px 0", - background: checkSignerBackColor(obj) - }} - key={ind} - > - <div - className="signerStyle" - style={{ - background: "#abd1d0", - width: 30, - height: 30, - display: "flex", - borderRadius: 30 / 2, - justifyContent: "center", - alignItems: "center", - margin: "0 10px 0 5px" - }} - > - <span - style={{ - fontSize: "12px", - textAlign: "center", - fontWeight: "bold", - color: "black", - textTransform: "uppercase" - }} - > - {getFirstLetter(obj.Name)} - </span> - </div> - <div - style={{ - display: "flex", - flexDirection: "column" - }} - > - <span className="userName">{obj.Name}</span> - <span className="useEmail">{obj.Email}</span> - </div> - <hr /> - </div> - ); - })} - </div> - </> - )} - {defaultSignImg && !alreadySign && ( - <DefaultSignature - themeColor={themeColor} - defaultSignImg={defaultSignImg} - setDefaultSignImg={setDefaultSignImg} - userObjectId={signerObjectId} - setIsLoading={setIsLoading} - xyPostion={signerPos} - setDefaultSignAlert={setDefaultSignAlert} - /> - )} - </div> - </div> - </div> - </div> - </div> - )} - </DndProvider> - ); -} - -export default GuestSign; diff --git a/microfrontends/SignDocuments/src/premitives/ModalUi.js b/microfrontends/SignDocuments/src/premitives/ModalUi.js deleted file mode 100644 index a53740a88..000000000 --- a/microfrontends/SignDocuments/src/premitives/ModalUi.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import "../css/ModalUi.css"; -const ModalUi = ({ - children, - title, - isOpen, - handleClose, - headerColor, - dropdownModal -}) => { - return ( - <> - {isOpen && ( - <div className="modaloverlay"> - <div className={dropdownModal ? dropdownModal : "modalcontainer"}> - {title && ( - <div - style={{ background: headerColor ? headerColor : "#32a3ac" }} - className="modalheader" - > - <div className="modaltitle">{title}</div> - {handleClose && ( - <div - className="closebtn" - onClick={() => handleClose && handleClose()} - > - × - </div> - )} - </div> - )} - <div>{children}</div> - </div> - </div> - )} - </> - ); -}; - -export default ModalUi; diff --git a/microfrontends/SignDocuments/src/premitives/RecipientList.js b/microfrontends/SignDocuments/src/premitives/RecipientList.js deleted file mode 100644 index 9dc74f861..000000000 --- a/microfrontends/SignDocuments/src/premitives/RecipientList.js +++ /dev/null @@ -1,208 +0,0 @@ -import React, { useRef, useState } from "react"; -import "../css/signerListPlace.css"; -import { darkenColor, getFirstLetter } from "../utils/Utils"; - -const RecipientList = (props) => { - const color = [ - "#93a3db", - "#e6c3db", - "#c0e3bc", - "#bce3db", - "#b8ccdb", - "#ceb8db", - "#ffccff", - "#99ffcc", - "#cc99ff", - "#ffcc99", - "#66ccff", - "#ffffcc" - ]; - - const nameColor = [ - "#304fbf", - "#7d5270", - "#5f825b", - "#578077", - "#576e80", - "#6d527d", - "#cc00cc", - "#006666", - "#cc00ff", - "#ff9900", - "#336699", - "#cc9900" - ]; - const [isHover, setIsHover] = useState(); - const [isEdit, setIsEdit] = useState(false); - //function for onhover signer name change background color - const inputRef = useRef(null); - const onHoverStyle = (ind, blockColor) => { - const style = { - background: blockColor ? blockColor : color[ind % color.length], - padding: "10px", - marginTop: "2px", - display: "flex", - flexDirection: "row", - borderBottom: "1px solid #e3e1e1", - alignItems: "center" - }; - return style; - }; - //function for onhover signer name remove background color - const nonHoverStyle = (ind) => { - const style = { - padding: "10px", - marginTop: "2px", - display: "flex", - flexDirection: "row", - borderBottom: "1px solid #e3e1e1", - alignItems: "center" - }; - return style; - }; - const isWidgetExist = (Id) => { - return props.signerPos.some((x) => x.Id === Id); - }; - - return ( - <> - {props.signersdata.length > 0 && - props.signersdata.map((obj, ind) => { - return ( - <div - data-tut="reactourFirst" - onMouseEnter={() => setIsHover(ind)} - onMouseLeave={() => setIsHover(null)} - key={ind} - style={ - isHover === ind || props.isSelectListId === ind - ? onHoverStyle(ind, obj.blockColor) - : nonHoverStyle(ind) - } - onClick={() => { - props.setSignerObjId(obj?.objectId || ""); - props.setIsSelectId(ind); - props.setContractName(obj?.className || ""); - props.setUniqueId(obj.Id); - props.setRoleName(obj.Role); - if(props.handleModal){ - props.handleModal() - } - }} - > - <div - style={{ - display: "flex", - flexDirection: "row", - alignItems: "center", - width: "100%" - }} - > - <div - className="signerStyle" - style={{ - background: obj.blockColor - ? darkenColor(obj.blockColor, 0.4) - : nameColor[ind % nameColor.length], - width: 30, - height: 30, - display: "flex", - borderRadius: 30 / 2, - justifyContent: "center", - alignItems: "center", - marginRight: "12px" - }} - > - <span - style={{ - fontSize: "12px", - textAlign: "center", - fontWeight: "bold", - color: "white", - textTransform: "uppercase" - }} - > - {isWidgetExist(obj.Id) ? ( - <i className="fa-solid fa-check"></i> - ) : ( - <> - {obj.Name - ? getFirstLetter(obj.Name) - : getFirstLetter(obj.Role)} - </> - )} - </span> - </div> - <div - style={{ - display: "flex", - flexDirection: obj.Name ? "column" : "row", - alignItems: "center" - }} - > - {obj.Name ? ( - <span className="userName" style={{ cursor: "default" }}> - {obj.Name} - </span> - ) : ( - <> - <span - className="userName" - onClick={() => { - setIsEdit({ [obj.Id]: true }); - props.setRoleName(obj.Role); - }} - > - {isEdit?.[obj.Id] && props.handleRoleChange ? ( - <input - ref={inputRef} - style={{ - backgroundColor: "transparent", - width: "inherit" - }} - value={obj.Role} - onChange={(e) => props.handleRoleChange(e, obj.Id)} - onBlur={() => { - setIsEdit({}); - props.handleOnBlur(obj.Role, obj.Id); - }} - onKeyDown={(e) => { - if (e.key === "Enter") { - e.preventDefault(); - inputRef.current.blur(); - } - }} - /> - ) : ( - obj.Role - )} - </span> - </> - )} - {obj.Name && ( - <span className="useEmail" style={{ cursor: "default" }}> - {obj.Role} - </span> - )} - </div> - </div> - {props.handleDeleteUser && ( - <div - onClick={(e) => { - e.stopPropagation(); - props.handleDeleteUser(obj.Id); - }} - style={{ cursor: "pointer" }} - > - <i className="fa-regular fa-trash-can"></i> - </div> - )} - <hr /> - </div> - ); - })} - </> - ); -}; - -export default RecipientList; diff --git a/microfrontends/SignDocuments/src/premitives/SelectFolder.js b/microfrontends/SignDocuments/src/premitives/SelectFolder.js deleted file mode 100644 index cc1e349d6..000000000 --- a/microfrontends/SignDocuments/src/premitives/SelectFolder.js +++ /dev/null @@ -1,284 +0,0 @@ -import React, { useEffect, useState } from "react"; -import CreateFolder from "./CreateFolder"; -import ModalUi from "./ModalUi"; -import axios from "axios"; -import { themeColor } from "../utils/ThemeColor/backColor"; -import "../css/selectFolder.css"; - -const SelectFolder = ({ - required, - onSuccess, - folderCls, - isOpenModal, - setIsOpenMoveModal, - setPdfData -}) => { - const [clickFolder, setClickFolder] = useState(""); - // const [selectFolder, setSelectedFolder] = useState({}); - const [folderList, setFolderList] = useState([]); - const [tabList, setTabList] = useState([]); - const [isLoader, setIsLoader] = useState(false); - // const [folderPath, setFolderPath] = useState(""); - const [isAdd, setIsAdd] = useState(false); - useEffect(() => { - if (isOpenModal) { - setIsAdd(false); - setClickFolder({}); - setFolderList([]); - setTabList([]); - fetchFolder(); - } - }, []); - //fetch folder data - const fetchFolder = async (folderPtr) => { - setIsLoader(true); - let url; - const classUrl = `${localStorage.getItem("baseUrl")}classes/${folderCls}`; - - if (folderPtr) { - url = `${classUrl}?where={"Folder": {"__type":"Pointer","className":"${folderCls}","objectId":"${folderPtr.objectId}"},"Type":"Folder"}`; - } else { - url = `${classUrl}?where={"Folder":{"$exists":false},"Type":"Folder"}`; - } - try { - const res = await axios.get(url, { - headers: { - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - }); - - if (res.data.results) { - setFolderList(res.data.results); - setIsLoader(false); - setIsAdd(false); - } - setIsLoader(false); - } catch (err) { - console.log("err", err); - setIsLoader(false); - } - }; - const handleSelect = (item) => { - setFolderList([]); - setClickFolder({ ObjectId: item.objectId, Name: item.Name }); - if (tabList.length > 0) { - const tab = tabList.some((x) => x.objectId === item.objectId); - if (!tab) { - setTabList((tabs) => [...tabs, item]); - const folderPtr = { - __type: "Pointer", - className: folderCls, - objectId: item.objectId - }; - fetchFolder(folderPtr); - } - } else { - setTabList((tabs) => [...tabs, item]); - const folderPtr = { - __type: "Pointer", - className: folderCls, - objectId: item.objectId - }; - - fetchFolder(folderPtr); - } - }; - - const handleSubmit = () => { - let url = "Root"; - tabList.forEach((t) => { - url = url + " / " + t.Name; - }); - // setFolderPath(url); - // setSelectedFolder(clickFolder); - if (onSuccess) { - onSuccess(clickFolder); - } - setIsOpenMoveModal(false); - }; - const handleCancel = () => { - setIsOpenMoveModal(false); - setClickFolder({}); - setFolderList([]); - setTabList([]); - }; - - const removeTabListItem = async (e, i) => { - e.preventDefault(); - // setEditable(false); - if (!isAdd) { - setIsLoader(true); - let folderPtr; - if (i) { - setFolderList([]); - let list = tabList.filter((itm, j) => { - if (j <= i) { - return itm; - } - }); - let _len = list.length - 1; - folderPtr = { - __type: "Pointer", - className: folderCls, - objectId: list[_len].objectId - }; - setTabList(list); - } else { - setClickFolder({}); - // setSelectedFolder({}); - setFolderList([]); - setTabList([]); - } - fetchFolder(folderPtr); - } - }; - const handleCreate = () => { - setIsAdd(!isAdd); - }; - const handleAddFolder = (res) => { - setPdfData((prev) => [...prev, res]); - setFolderList([]); - if (clickFolder && clickFolder.ObjectId) { - fetchFolder({ - __type: "Pointer", - className: folderCls, - objectId: clickFolder.ObjectId - }); - } else { - fetchFolder(); - } - }; - - return ( - <div> - <ModalUi - id="asd" - title={"Select Folder"} - isOpen={isOpenModal} - handleClose={handleCancel} - > - {" "} - <div style={{ width: "100%", padding: "1rem" }}> - <div - style={{ - paddingTop: "2px", - color: "#ac4848", - fontSize: "14px", - fontWeight: "500" - }} - > - <span - style={{ cursor: "pointer" }} - title="Root" - onClick={(e) => { - setIsAdd(false); - removeTabListItem(e); - }} - > - Root /{" "} - </span> - {tabList && - tabList.map((tab, i) => ( - <React.Fragment key={`${tab.objectId}-${i}`}> - <span - style={{ cursor: "pointer" }} - title={tab.Name} - onClick={(e) => { - setIsAdd(false); - removeTabListItem(e, i); - }} - > - {tab.Name} - </span> - {" / "} - </React.Fragment> - ))} - <hr className="hrStyle" /> - </div> - <div style={{ margin: "2px 0 3px 0" }}> - {!isAdd && - folderList.length > 0 && - folderList.map((folder) => ( - <div - key={folder.Name} - style={{ - border: "1.7px solid #c3bcbc", - padding: "6px", - marginBottom: "5px", - cursor: "pointer" - }} - onClick={() => handleSelect(folder)} - > - <div - style={{ display: "flex", alignItems: "center", gap: "2" }} - > - <i - style={{ color: "#33bbff", fontSize: "1.4rem" }} - className="fa fa-folder " - aria-hidden="true" - ></i> - <span - style={{ - fontWeight: "500", - marginLeft: "10px", - fontSize: "14px" - }} - > - {folder.Name} - </span> - </div> - </div> - ))} - {isAdd && ( - <CreateFolder - parentFolderId={clickFolder && clickFolder.ObjectId} - folderCls={folderCls} - onSuccess={handleAddFolder} - setIsAdd={setIsAdd} - /> - )} - {isLoader && ( - <div style={{ display: "flex", justifyContent: "center" }}> - <i - style={{ fontSize: "30px" }} - className="fa-solid fa-spinner fa-spin-pulse " - ></i> - </div> - )} - </div> - </div> - <hr className="hrStyle" /> - <div - style={{ - display: "flex", - justifyContent: "space-between", - alignItems: "center", - padding: "0px 16px 12px 16px" - }} - > - <div - style={{ fontSize: "30px", cursor: "pointer", color: themeColor() }} - title="Save Here" - onClick={handleCreate} - > - {isAdd ? ( - <i className="fa-solid fa-arrow-left" aria-hidden="true"></i> - ) : ( - <i className="fa-solid fa-square-plus" aria-hidden="true"></i> - )} - </div> - <div - style={{ fontSize: "30px", cursor: "pointer" }} - title="Save Here" - onClick={handleSubmit} - > - <i className="fas fa-save" aria-hidden="true"></i> - </div> - </div> - </ModalUi> - </div> - ); -}; - -export default SelectFolder; diff --git a/microfrontends/SignDocuments/src/premitives/SelectSigners.js b/microfrontends/SignDocuments/src/premitives/SelectSigners.js deleted file mode 100644 index 959b28af2..000000000 --- a/microfrontends/SignDocuments/src/premitives/SelectSigners.js +++ /dev/null @@ -1,100 +0,0 @@ -import React, { useState } from "react"; -import Parse from "parse"; -import "../css/AddUser.css"; -import AsyncSelect from "react-select/async"; - -const customStyles = { - control: (provided) => ({ - ...provided, - fontSize: "13px" // Font size for the control - }), - option: (provided) => ({ - ...provided, - fontSize: "13px" // Font size for the options - }) -}; -const SelectSigners = (props) => { - const [userList, setUserList] = useState([]); - const [selected, setSelected] = useState(); - const [userData, setUserData] = useState({}); - const [isError, setIsError]= useState(false) - const parseBaseUrl = localStorage.getItem("baseUrl"); - const parseAppId = localStorage.getItem("parseAppId"); - Parse.serverURL = parseBaseUrl; - Parse.initialize(parseAppId); - - // `handleOptions` is used to set just save from quick form to selected option in dropdown - const handleOptions = (item) => { - setSelected(item); - const userData = userList.find((x) => x.objectId === item.value); - if (userData) { - setUserData(userData); - } - }; - const handleAdd = () => { - if(userData && userData.objectId){ - props.details(userData); - if (props.closePopup) { - props.closePopup(); - } - }else{ - setIsError(true) - setTimeout(()=> setIsError(false), 1000) - } - }; - - const loadOptions = async (inputValue) => { - try { - const currentUser = Parse.User.current(); - const contactbook = new Parse.Query("contracts_Contactbook"); - contactbook.equalTo( - "CreatedBy", - Parse.User.createWithoutData(currentUser.id) - ); - if (inputValue.length > 1) { - contactbook.matches("Name", new RegExp(inputValue, "i")); - } - contactbook.notEqualTo("IsDeleted", true); - const contactRes = await contactbook.find(); - if (contactRes) { - const res = JSON.parse(JSON.stringify(contactRes)); - // console.log("userList ", res); - setUserList(res); - return await res.map((item) => ({ - label: item.Email, - value: item.objectId - })); - } - } catch (error) { - console.log("err", error); - } - }; - - return ( - <div className="addusercontainer"> - <div className="form-wrapper"> - <div className="form-section" style={{marginBottom: 0}}> - <label style={{ fontSize: 14 , fontWeight: "700"}}>Choose User</label> - <AsyncSelect - cacheOptions - defaultOptions - value={selected} - loadingMessage={() => "Loading..."} - noOptionsMessage={() => "User not Found"} - loadOptions={loadOptions} - onChange={handleOptions} - styles={customStyles} - /> - </div> - {isError ? <p style={{color:'red', fontSize: "12px", margin:"5px"}}>Please select signer</p>: <p style={{color:'transparent', fontSize: "12px", margin:"5px"}}>.</p>} - <div> - <button className="submitbutton" onClick={() => handleAdd()}> - Submit - </button> - </div> - </div> - </div> - ); -}; - -export default SelectSigners; diff --git a/microfrontends/SignDocuments/src/premitives/TourContentWithBtn.js b/microfrontends/SignDocuments/src/premitives/TourContentWithBtn.js deleted file mode 100644 index 54295b43d..000000000 --- a/microfrontends/SignDocuments/src/premitives/TourContentWithBtn.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useState } from "react"; - -export default function TourContentWithBtn({ message, isChecked }) { - const [isCheck, setIsCheck] = useState(false); - - const handleCheck = () => { - setIsCheck(!isCheck); - if (isChecked) { - isChecked(!isCheck); - } - }; - return ( - <div> - <p>{message}</p> - <label style={{ textAlign: "center", display: "flex", "justifyContent":'center' }}> - <input - type="checkbox" - style={{ marginRight: 3 }} - checked={isCheck} - onChange={handleCheck} - />{" "} - <span style={{color:"#787878", fontSize: 12}}>Don't show this again</span> - </label> - </div> - ); -} diff --git a/microfrontends/SignDocuments/src/utils/ThemeColor/backColor.js b/microfrontends/SignDocuments/src/utils/ThemeColor/backColor.js deleted file mode 100644 index 37e87ee9a..000000000 --- a/microfrontends/SignDocuments/src/utils/ThemeColor/backColor.js +++ /dev/null @@ -1,7 +0,0 @@ -export const themeColor =()=>{ - return "#47a3ad"; -} - -export const iconColor =()=>{ - return "#686968" -} \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js deleted file mode 100644 index e4fe02a61..000000000 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ /dev/null @@ -1,1528 +0,0 @@ -import axios from "axios"; -import { rgb } from "pdf-lib"; -import moment from "moment"; -import { themeColor } from "./ThemeColor/backColor"; - -export const isMobile = window.innerWidth < 767; - -//calculate width and height -export const calculateInitialWidthHeight = (type, widgetData) => { - const intialText = widgetData; - const span = document.createElement("span"); - span.textContent = intialText; - span.style.font = `14px`; // here put your text size and font family - span.style.display = "hidden"; - document.body.appendChild(span); - const width = span.offsetWidth; - const height = span.offsetHeight; - - document.body.removeChild(span); - return { - getWidth: width, - getHeight: height - }; -}; -export const addInitialData = (signerPos, setXyPostion, value, userId) => { - return signerPos.map((item) => { - if (item.placeHolder && item.placeHolder.length > 0) { - // If there is a nested array, recursively add the field to the last object - if (item.Id === userId) { - return { - ...item, - placeHolder: addInitialData( - item.placeHolder, - setXyPostion, - value, - userId - ) - }; - } else { - return { - ...item - }; - } - } else if (item.pos && item.pos.length > 0) { - // If there is no nested array, add the new field - return { - ...item, - pos: addInitialData(item.pos, setXyPostion, value, userId) - // Adjust this line to add the desired field - }; - } else { - function widgetDataValue(type) { - switch (type) { - case "name": - return value?.Name; - case "company": - return value?.Company; - case "job title": - return value?.JobTitle; - case "email": - return value?.Email; - default: - return ""; - } - } - const widgetData = widgetDataValue(item.type); - if (["name", "company", "job title", "email"].includes(item.type)) { - return { - ...item, - options: { - ...item.options, - response: widgetData - }, - Width: calculateInitialWidthHeight(item.type, widgetData).getWidth, - Height: calculateInitialWidthHeight(item.type, widgetData).getHeight - }; - } else { - return { - ...item - }; - } - } - }); -}; - -//function for save widgets value on onchange function -export const onChangeInput = ( - value, - signKey, - xyPostion, - index, - setXyPostion, - userId, - initial, - dateFormat, - isPlaceholder, - selectedKey, - isDefaultEmpty -) => { - const isSigners = xyPostion.some((data) => data.signerPtr); - let filterSignerPos; - if (isSigners) { - if (userId) { - filterSignerPos = xyPostion.filter((data) => data.Id === userId); - } - const getPlaceHolder = filterSignerPos[0]?.placeHolder; - if (initial) { - const xyData = addInitialData(xyPostion, setXyPostion, value, userId); - setXyPostion(xyData); - } else { - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === index - ); - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - const getPosData = getXYdata; - const addSignPos = getPosData.map((position, ind) => { - if (position.key === signKey) { - if (dateFormat) { - return { - ...position, - options: { - ...position.options, - response: value, - validation: { - type: "date-format", - format: dateFormat // This indicates the required date format explicitly. - } - } - }; - } - else if (isDefaultEmpty) { - return { - ...position, - options: { - ...position.options, - response: value, - defaultValue: [] - } - }; - } else { - return { - ...position, - options: { - ...position.options, - response: value - } - }; - } - } - return position; - }); - const newUpdateSignPos = getPlaceHolder.map((obj) => { - if (obj.pageNumber === index) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - - const newUpdateSigner = xyPostion.map((obj) => { - if (obj.Id === userId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - - setXyPostion(newUpdateSigner); - } - } - } else { - let getXYdata = xyPostion[index].pos; - - const updatePosition = getXYdata.map((positionData) => { - if (positionData.key === signKey) { - return { - ...positionData, - options: { - ...positionData.options, - response: value - } - }; - } - return positionData; - }); - - const updatePlaceholder = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: updatePosition }; - } - return obj; - }); - setXyPostion(updatePlaceholder); - } -}; - -// export const widgets = [ -// { -// type: "signature", -// icon: "fa-solid fa-pen-nib", -// iconSize: "20px" -// }, -// { -// type: "stamp", -// icon: "fa-solid fa-stamp", -// iconSize: "19px" -// }, -// { -// type: "dropdown", -// icon: "fa-solid fa-circle-chevron-down", -// iconSize: "19px" -// }, -// { -// type: "checkbox", -// icon: "fa-solid fa-square-check", -// iconSize: "22px" -// }, -// { -// type: "text", -// icon: "fa-solid fa-font", -// iconSize: "21px" -// }, -// { -// type: "initials", -// icon: "fa-solid fa-signature", -// iconSize: "15px" -// }, -// { -// type: "name", -// icon: "fa-solid fa-user", -// iconSize: "21px" -// }, -// { -// type: "company", -// icon: "fa-solid fa-building", -// iconSize: "25px" -// }, -// { -// type: "job title", -// icon: "fa-solid fa-address-card", -// iconSize: "17px" -// }, -// { -// type: "date", -// icon: "fa-solid fa-calendar-days", -// iconSize: "20px" -// }, -// { -// type: "image", -// icon: "fa-solid fa-image", -// iconSize: "20px" -// }, -// { -// type: "email", -// icon: "fa-solid fa-envelope", -// iconSize: "20px" -// }, -// { -// type: "radio", -// icon: "fa-regular fa-circle-dot", -// iconSize: "20px" -// }, -// { -// type: "label", -// icon: "fa-solid fa-text-width", -// iconSize: "20px" -// } -// ]; - -export const widgets = [ - { - type: "signature", - icon: "fa-solid fa-pen-nib", - iconSize: "20px" - }, - { - type: "stamp", - icon: "fa-solid fa-stamp", - iconSize: "19px" - }, - { - type: "initials", - icon: "fa-solid fa-signature", - iconSize: "15px" - }, - { - type: "label", - icon: "fa-solid fa-text-width", - iconSize: "20px" - }, - { - type: "text", - icon: "fa-solid fa-font", - iconSize: "21px" - }, - { - type: "checkbox", - icon: "fa-solid fa-square-check", - iconSize: "22px" - }, - { - type: "dropdown", - icon: "fa-solid fa-circle-chevron-down", - iconSize: "19px" - }, - { - type: "radio", - icon: "fa-regular fa-circle-dot", - iconSize: "20px" - }, - { - type: "image", - icon: "fa-solid fa-image", - iconSize: "20px" - }, - { - type: "date", - icon: "fa-solid fa-calendar-days", - iconSize: "20px" - }, - { - type: "name", - icon: "fa-solid fa-user", - iconSize: "21px" - }, - { - type: "email", - icon: "fa-solid fa-envelope", - iconSize: "20px" - }, - { - type: "company", - icon: "fa-solid fa-building", - iconSize: "25px" - }, - { - type: "job title", - icon: "fa-solid fa-address-card", - iconSize: "17px" - }, -]; - -const getDate = () => { - const date = new Date(); - const milliseconds = date.getTime(); - const newDate = moment(milliseconds).format("MM/DD/YYYY"); - return newDate; -}; - -export const addWidgetOptions = (type) => { - const defaultOpt = { - name: "", - status: "required" - }; - switch (type) { - case "signature": - return defaultOpt; - case "stamp": - return defaultOpt; - case "checkbox": - return defaultOpt; - case "text": - return { ...defaultOpt, validation: { type: "text", pattern: "" } }; - case "initials": - return defaultOpt; - case "name": - return { ...defaultOpt, validation: { type: "text", pattern: "" } }; - case "company": - return { ...defaultOpt, validation: { type: "text", pattern: "" } }; - case "job title": - return { ...defaultOpt, validation: { type: "text", pattern: "" } }; - case "date": - return { ...defaultOpt, response: getDate() }; - case "image": - return defaultOpt; - case "email": - return { ...defaultOpt, validation: { type: "email", pattern: "" } }; - case "dropdown": - return defaultOpt; - case "radio": - return { ...defaultOpt, values: [] }; - case "label": - return defaultOpt; - default: - return {}; - } -}; -export const getWidgetType = (item, marginLeft) => { - return ( - <> - <div - className="signatureBtn widgets" - style={{ - boxShadow: - "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18)", - marginLeft: marginLeft && `${marginLeft}px` - }} - > - <div - style={{ - display: "flex", - alignItems: "center", - marginLeft: "5px" - }} - > - <i - className="fa-sharp fa-solid fa-grip-vertical" - style={{ color: "#908d8d", fontSize: "13px" }} - ></i> - <span - style={{ - fontWeight: "400", - fontSize: "15px", - // padding: "3px 20px 0px 20px", - color: "black", - marginLeft: "5px" - }} - > - {item.type} - </span> - </div> - <div - style={{ - backgroundColor: themeColor(), - padding: "0 5px", - display: "flex", - alignItems: "center" - }} - > - <i - style={{ color: "white", fontSize: item.iconSize }} - className={item.icon} - ></i> - </div> - </div> - </> - ); -}; - -export const defaultWidthHeight = (type) => { - switch (type) { - case "signature": - return { width: 150, height: 60 }; - case "stamp": - return { width: 150, height: 60 }; - case "checkbox": - return { width: 15, height: 15 }; - case "text": - return { width: 150, height: 25 }; - case "dropdown": - return { width: 120, height: 22 }; - case "initials": - return { width: 50, height: 50 }; - case "name": - return { width: 150, height: 25 }; - case "company": - return { width: 150, height: 25 }; - case "job title": - return { width: 150, height: 25 }; - case "date": - return { width: 100, height: 20 }; - case "image": - return { width: 70, height: 70 }; - case "email": - return { width: 150, height: 20 }; - case "radio": - return { width: 15, height: 30 }; - case "label": - return { width: 150, height: 17 }; - default: - return { width: 150, height: 60 }; - } -}; - -export const resizeBorderExtraWidth = () => { - return 20; -}; - -export async function getBase64FromUrl(url) { - const data = await fetch(url); - const blob = await data.blob(); - return new Promise((resolve) => { - const reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = function () { - const pdfBase = this.result; - const removeBase64Prefix = "data:application/octet-stream;base64,"; - const suffixbase64 = pdfBase.replace(removeBase64Prefix, ""); - resolve(suffixbase64); - }; - }); -} - -export async function getBase64FromIMG(url) { - const data = await fetch(url); - const blob = await data.blob(); - return new Promise((resolve) => { - const reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = function () { - const pdfBase = this.result; - - resolve(pdfBase); - }; - }); -} -//function for convert signature png base64 url to jpeg base64 -export const convertPNGtoJPEG = (base64Data) => { - return new Promise((resolve, reject) => { - const canvas = document.createElement("canvas"); - const img = new Image(); - img.src = base64Data; - - img.onload = () => { - canvas.width = img.width; - canvas.height = img.height; - - const ctx = canvas.getContext("2d"); - ctx.fillStyle = "#ffffff"; // white color - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.drawImage(img, 0, 0); - // Convert to JPEG by using the canvas.toDataURL() method - const jpegBase64Data = canvas.toDataURL("image/jpeg"); - - resolve(jpegBase64Data); - }; - - img.onerror = (error) => { - reject(error); - }; - }); -}; - -export function getHostUrl() { - const hostUrl = window.location.href; - - if (hostUrl) { - const urlSplit = hostUrl.split("/"); - const concatUrl = urlSplit[3] + "/" + urlSplit[4]; - - if (urlSplit) { - const desireUrl = "/" + concatUrl; - if (desireUrl) { - return desireUrl + "/"; - } - } - } else { - return "/"; - } -} - -export const calculateImgAspectRatio = (imgWH, pos) => { - let newWidth, newHeight; - - const placeholderHeight = pos && pos.Height ? pos.Height : 60; - const aspectRatio = imgWH.width / imgWH.height; - newWidth = aspectRatio * placeholderHeight; - newHeight = placeholderHeight; - - return { newHeight, newWidth }; -}; - -//function for upload stamp or image -export function onSaveImage(xyPostion, index, signKey, imgWH, image) { - let getIMGWH; - - //get current page position - const getXYData = xyPostion[index].pos; - const updateXYData = getXYData.map((position) => { - if (position.key === signKey) { - getIMGWH = calculateImgAspectRatio(imgWH, position); - - return { - ...position, - Width: getIMGWH.newWidth, - Height: getIMGWH.newHeight, - SignUrl: image.src, - ImageType: image.imgType, - options: { - ...position.options, - response: image.src - } - }; - } - return position; - }); - - const updateXYposition = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: updateXYData }; - } - return obj; - }); - return updateXYposition; -} - -//function for save button to save signature or image url -export function onSaveSign( - xyPostion, - index, - signKey, - signatureImg, - imgWH, - isDefaultSign, - isTypeText -) { - let getIMGWH; - let getXYdata = xyPostion[index].pos; - const updateXYData = getXYdata.map((position) => { - if (position.key === signKey) { - if (isDefaultSign === "initials") { - let imgWH = { width: position.Width, height: position.Height }; - getIMGWH = calculateImgAspectRatio(imgWH, position); - } else if (isDefaultSign === "default") { - getIMGWH = calculateImgAspectRatio(imgWH, position); - } else if (isTypeText) { - getIMGWH = { newWidth: imgWH.width, newHeight: imgWH.height }; - } else { - const defaultWidth = defaultWidthHeight(position?.type).width; - const defaultHeight = defaultWidthHeight(position?.type).height; - - getIMGWH = calculateImgAspectRatio( - { - width: defaultWidth ? defaultWidth : 150, - height: defaultHeight ? defaultHeight : 60 - }, - position - ); - } - - const posWidth = getIMGWH ? getIMGWH.newWidth : 150; - const posHeight = getIMGWH ? getIMGWH.newHeight : 60; - - return { - ...position, - Width: posWidth, - Height: posHeight, - SignUrl: signatureImg, - options: { - ...position.options, - response: signatureImg - } - }; - } - return position; - }); - - const updateXYposition = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: updateXYData }; - } - return obj; - }); - return updateXYposition; -} - -export const addZIndex = (signerPos, key, setZIndex) => { - return signerPos.map((item) => { - if (item.placeHolder && item.placeHolder.length > 0) { - // If there is a nested array, recursively add the field to the last object - return { - ...item, - placeHolder: addZIndex(item.placeHolder, key, setZIndex) - }; - } else if (item.pos && item.pos.length > 0) { - // If there is no nested array, add the new field - return { - ...item, - pos: addZIndex(item.pos, key, setZIndex) - // Adjust this line to add the desired field - }; - } else { - if (item.key === key) { - setZIndex(item.zIndex); - return { - ...item, - zIndex: item.zIndex ? item.zIndex + 1 : 1 - }; - } else { - return { - ...item - }; - } - } - }); -}; -//function for add default signature or image for all requested location -export const addDefaultSignatureImg = (xyPostion, defaultSignImg) => { - let imgWH = { width: "", height: "" }; - const img = new Image(); - img.src = defaultSignImg; - if (img.complete) { - imgWH = { - width: img.width, - height: img.height - }; - } - - let xyDefaultPos = []; - for (let i = 0; i < xyPostion.length; i++) { - let getIMGWH; - const getXYdata = xyPostion[i].pos; - const getPageNo = xyPostion[i].pageNumber; - const getPosData = getXYdata; - - const addSign = getPosData.map((position) => { - getIMGWH = calculateImgAspectRatio(imgWH, position); - if (position.type) { - if (position?.type === "signature") { - return { - ...position, - SignUrl: defaultSignImg, - Width: getIMGWH.newWidth, - Height: getIMGWH.newHeight, - ImageType: "default", - options: { - ...position.options, - response: defaultSignImg - } - }; - } - } else if (position && !position.isStamp) { - return { - ...position, - SignUrl: defaultSignImg, - Width: getIMGWH.newWidth, - Height: getIMGWH.newHeight, - ImageType: "default", - options: { - ...position.options, - response: defaultSignImg - } - }; - } - return position; - }); - - const newXypos = { - pageNumber: getPageNo, - pos: addSign - }; - xyDefaultPos.push(newXypos); - } - return xyDefaultPos; -}; - -//function for select image and upload image -export const onImageSelect = (event, setImgWH, setImage) => { - const imageType = event.target.files[0].type; - const reader = new FileReader(); - reader.readAsDataURL(event.target.files[0]); - - reader.onloadend = function (e) { - let width, height; - const image = new Image(); - - image.src = e.target.result; - image.onload = function () { - width = image.width; - height = image.height; - const aspectRatio = 460 / 184; - const imgR = width / height; - - if (imgR > aspectRatio) { - width = 460; - height = 460 / imgR; - } else { - width = 184 * imgR; - height = 184; - } - setImgWH({ width: width, height: height }); - }; - - image.src = reader.result; - - setImage({ src: image.src, imgType: imageType }); - }; -}; -//function for getting document details from contract_Documents class -export const contractDocument = async (documentId) => { - const data = { - docId: documentId - }; - const documentDeatils = await axios - .post(`${localStorage.getItem("baseUrl")}functions/getDocument`, data, { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - }) - .then((Listdata) => { - const json = Listdata.data; - let data = []; - if (json && json.result.error) { - return json; - } else if (json && json.result) { - data.push(json.result); - return data; - } else { - return []; - } - }) - .catch((err) => { - return "Error: Something went wrong!"; - }); - - return documentDeatils; -}; - -//function for getting document details for getDrive -export const getDrive = async (documentId) => { - const data = { - docId: documentId && documentId - }; - const driveDeatils = await axios - .post(`${localStorage.getItem("baseUrl")}functions/getDrive`, data, { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessiontoken: localStorage.getItem("accesstoken") - } - }) - .then((Listdata) => { - const json = Listdata.data; - - if (json && json.result.error) { - return json; - } else if (json && json.result) { - const data = json.result; - return data; - } else { - return []; - } - }) - .catch((err) => { - return "Error: Something went wrong!"; - }); - - return driveDeatils; -}; -//function for getting contract_User details -export const contractUsers = async (email) => { - const data = { - email: email - }; - const userDetails = await axios - .post(`${localStorage.getItem("baseUrl")}functions/getUserDetails`, data, { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - }) - .then((Listdata) => { - const json = Listdata.data; - let data = []; - - if (json && json.result) { - data.push(json.result); - return data; - } - }) - .catch((err) => { - return "Error: Something went wrong!"; - }); - - return userDetails; -}; - -//function for getting contracts_contactbook details -export const contactBook = async (objectId) => { - const result = await axios - .get( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Contactbook?where={"objectId":"${objectId}"}`, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ) - .then((Listdata) => { - const json = Listdata.data; - const res = json.results; - return res; - }) - - .catch((err) => { - return "Error: Something went wrong!"; - }); - return result; -}; - -// function for validating URLs -export function urlValidator(url) { - try { - const newUrl = new URL(url); - return newUrl.protocol === "http:" || newUrl.protocol === "https:"; - } catch (err) { - return false; - } -} - -export const placeholderWidth = (pos, scale, signyourself) => { - let width; - const defaultWidth = defaultWidthHeight(pos.type).width; - const posWidth = pos.Width ? pos.Width : defaultWidth; - - if (signyourself) { - if (isMobile) { - return posWidth * scale; - } else { - return posWidth; - } - } else { - if (isMobile) { - if (pos.isMobile) { - width = posWidth ? posWidth * scale : defaultWidth * scale; - return width; - } else { - if (pos.IsResize) { - width = posWidth ? posWidth * scale : defaultWidth * scale; - return width; - } else { - width = posWidth ? posWidth : defaultWidth; - return width; - } - } - } else { - if (pos.isMobile) { - if (pos.IsResize) { - width = posWidth ? posWidth : defaultWidth; - return width; - } else { - width = posWidth ? posWidth * pos.scale : defaultWidth * pos.scale; - - return width; - } - } else { - width = posWidth ? posWidth : defaultWidth; - return width; - } - } - } -}; -export const placeholderHeight = (pos, scale, signyourself) => { - let height; - const posHeight = pos.Height; - const defaultHeight = defaultWidthHeight(pos.type).height; - if (signyourself) { - if (isMobile) { - return posHeight ? posHeight * scale : defaultHeight * scale; - } else { - return posHeight ? posHeight : defaultHeight; - } - } else { - if (isMobile) { - if (pos.isMobile) { - height = posHeight ? posHeight * scale : defaultHeight * scale; - return height; - } else { - if (pos.IsResize) { - height = posHeight ? posHeight * scale : defaultHeight * scale; - return height; - } else { - height = posHeight ? posHeight : defaultHeight; - - return height; - } - } - } else { - if (pos.isMobile) { - if (pos.IsResize) { - height = posHeight ? posHeight : defaultHeight; - return height; - } else { - height = posHeight - ? posHeight * pos.scale - : defaultHeight * pos.scale; - return height; - } - } else { - height = posHeight ? posHeight : defaultHeight; - return height; - } - } - } -}; -//function for embed multiple signature using pdf-lib -export const multiSignEmbed = async ( - pngUrl, - pdfDoc, - pdfOriginalWidth, - signyourself, - containerWH -) => { - for (let item of pngUrl) { - const newWidth = containerWH.width; - const scale = isMobile ? pdfOriginalWidth / newWidth : 1; - const pageNo = item.pageNumber; - const imgUrlList = item.pos; - const pages = pdfDoc.getPages(); - const form = pdfDoc.getForm(); - const page = pages[pageNo - 1]; - const images = await Promise.all( - imgUrlList.map(async (url) => { - let signUrl = url.SignUrl && url.SignUrl; - if (signUrl) { - if (url.ImageType === "image/png") { - //function for convert signature png base64 url to jpeg base64 - const newUrl = await convertPNGtoJPEG(signUrl); - signUrl = newUrl; - } - const checkUrl = urlValidator(signUrl); - if (checkUrl) { - signUrl = signUrl + "?get"; - } - const res = await fetch(signUrl); - return res.arrayBuffer(); - } - }) - ); - - imgUrlList.forEach(async (position, id) => { - let img; - if (["signature", "stamp", "initials", "image"].includes(position.type)) { - if ( - (position.ImageType && position.ImageType === "image/png") || - position.ImageType === "image/jpeg" - ) { - img = await pdfDoc.embedJpg(images[id]); - } else { - img = await pdfDoc.embedPng(images[id]); - } - } else if (!position.type) { - if ( - (position.ImageType && position.ImageType === "image/png") || - position.ImageType === "image/jpeg" - ) { - img = await pdfDoc.embedJpg(images[id]); - } else { - img = await pdfDoc.embedPng(images[id]); - } - } - let scaleWidth, scaleHeight; - scaleWidth = placeholderWidth(position, scale, signyourself); - scaleHeight = placeholderHeight(position, scale, signyourself); - - const xPos = (pos) => { - const resizePos = pos.xPosition; - - if (signyourself) { - if (isMobile) { - return resizePos * scale; - } else { - return resizePos; - } - } else { - //checking both condition mobile and desktop view - if (isMobile) { - //if pos.isMobile false -- placeholder saved from desktop view then handle position in mobile view divided by scale - if (pos.isMobile) { - const x = resizePos * (pos.scale / scale); - return x * scale; - } else { - const x = resizePos / scale; - return x * scale; - } - } else { - //else if pos.isMobile true -- placeholder saved from mobile or tablet view then handle position in desktop view divide by scale - if (pos.isMobile) { - const x = resizePos * pos.scale; - return x; - } else { - return resizePos; - } - } - } - }; - - const yPos = (pos, ind) => { - const resizePos = pos.yPosition; - const widgetHeight = - position.type === "radio" - ? 10 - : position.type === "checkbox" - ? 10 - : scaleHeight; - const newHeight = ind - ? ind > 0 - ? widgetHeight - : 0 - : widgetHeight; - - - if (signyourself) { - if (isMobile) { - if (ind && ind > 0 && position.type === "checkbox") { - return page.getHeight() - resizePos * scale - newHeight; - } else if (!ind && position.type === "checkbox") { - return page.getHeight() - resizePos * scale; - } else { - return page.getHeight() - resizePos * scale - newHeight; - } - // return page.getHeight() - resizePos * scale - scaleHeight; - } else { - - if (ind && ind > 0 && position.type === "checkbox") { - return page.getHeight() - resizePos - newHeight; - } else if (!ind && position.type === "checkbox") { - return page.getHeight() - resizePos; - } else { - return page.getHeight() - resizePos - newHeight; - } - // return page.getHeight() - resizePos - scaleHeight; - } - } else { - //checking both condition mobile and desktop view - const y = resizePos / scale; - if (isMobile) { - //if pos.isMobile false -- placeholder saved from desktop view then handle position in mobile view divided by scale - if (pos.isMobile) { - const y = resizePos * (pos.scale / scale); - return page.getHeight() - y * scale - scaleHeight; - } else { - if (pos.IsResize) { - return page.getHeight() - y * scale - scaleHeight; - } else { - return page.getHeight() - y * scale - scaleHeight; - } - } - } else { - //else if pos.isMobile true -- placeholder saved from mobile or tablet view then handle position in desktop view divide by scale - if (pos.isMobile) { - if (pos.IsResize) { - const y = resizePos * pos.scale; - return page.getHeight() - y - scaleHeight; - } else { - const y = resizePos * pos.scale; - return page.getHeight() - y - scaleHeight; - } - } else { - - - if (ind && ind > 0 && position.type === "checkbox") { - return page.getHeight() - resizePos - newHeight; - } else if (!ind && position.type === "checkbox") { - return page.getHeight() - resizePos; - } else { - return page.getHeight() - resizePos - newHeight; - } - } - } - } - }; - const randomboxId = "randombox_" + position.key; - const widgetTypeExist = [ - "text", - "name", - "company", - "job title", - "date", - "email", - "label" - ].includes(position.type); - if (position.type === "checkbox") { - let addYPosition, isCheck; - - if (position?.options?.values.length > 0) { - position?.options?.values.forEach((item, ind) => { - const checkboxRandomId = "checkbox" + randomId(); - let yPosition; - const height = 10; - if (position?.options?.response && position?.options?.response?.length >0) { - isCheck = position?.options?.response?.includes(ind); - } else if (position?.options?.defaultValue) { - isCheck = position?.options?.defaultValue?.includes(ind); - } - - const checkbox = form.createCheckBox(checkboxRandomId); - if (ind > 0) { - yPosition = yPos(position, ind) - addYPosition; - addYPosition = addYPosition + height + 10; - } else { - yPosition = yPos(position, ind); - addYPosition = height; - } - checkbox.addToPage(page, { - x: xPos(position), - y: yPosition, - width: height, - height: height - }); - if (isCheck) { - checkbox.check(); - } else { - checkbox.uncheck(); - } - checkbox.enableReadOnly(); - }); - } - } else if (widgetTypeExist) { - const font = await pdfDoc.embedFont("Helvetica"); - const fontSize = 12; - let textContent; - if (position?.options?.response) { - textContent = position.options?.response; - } else if (position?.options?.defaultValue) { - textContent = position?.options?.defaultValue; - } - page.drawText(textContent, { - x: xPos(position), - y: yPos(position) + 10, - size: fontSize, - font, - color: rgb(0, 0, 0) - }); - } else if (position.type === "dropdown") { - const dropdown = form.createDropdown(randomboxId); - dropdown.addOptions(position?.options?.values); - if (position?.options?.response) { - dropdown.select(position.options?.response); - } else if (position?.options?.defaultValue) { - dropdown.select( position?.options?.defaultValue); - - } - - dropdown.addToPage(page, { - x: xPos(position), - y: yPos(position), - width: scaleWidth, - height: scaleHeight - }); - dropdown.enableReadOnly(); - } else if (position.type === "radio") { - const radioGroup = form.createRadioGroup(randomboxId); - let addYPosition = 18; - - for (let i = 1; i <= position?.options?.values.length; i++) { - const data = position?.options?.values[i - 1]; - let yPosition; - if (i > 1) { - yPosition = yPos(position) - addYPosition; - } else { - yPosition = yPos(position); - } - - radioGroup.addOptionToPage(data, page, { - x: xPos(position), - y: yPosition, - width: 11, - height: 11 - }); - if (i > 1) { - addYPosition = addYPosition + 18; - } - } - if (position?.options?.response) { - radioGroup.select(position.options?.response); - } else if (position?.options?.defaultValue) { - radioGroup.select(position?.options?.defaultValue); - } - - radioGroup.enableReadOnly(); - } else { - page.drawImage(img, { - x: xPos(position), - y: yPos(position), - width: scaleWidth, - height: scaleHeight - }); - } - }); - } - - const pdfBytes = await pdfDoc.saveAsBase64({ useObjectStreams: false }); - - return pdfBytes; -}; -//function for embed document id -export const embedDocId = async (pdfDoc, documentId, allPages) => { - for (let i = 0; i < allPages; i++) { - const font = await pdfDoc.embedFont("Helvetica"); - const fontSize = 10; - const textContent = documentId && `OpenSign™ DocumentId: ${documentId} `; - const pages = pdfDoc.getPages(); - const page = pages[i]; - page.drawText(textContent, { - x: 10, - y: page.getHeight() - 10, - size: fontSize, - font, - color: rgb(0.5, 0.5, 0.5) - }); - } -}; - -export const pdfNewWidthFun = (divRef) => { - const clientWidth = divRef.current.offsetWidth; - const pdfWidth = clientWidth - 160 - 200; - //160 is width of left side, 200 is width of right side component - return pdfWidth; -}; - -//function for resize image and update width and height for mulitisigners -export const handleImageResize = ( - ref, - key, - signerPos, - setSignerPos, - pageNumber, - signerId, - showResize -) => { - // const filterSignerPos = signerPos.filter( - // (data) => data.signerObjId === signerId - // ); - - const filterSignerPos = signerPos.filter((data) => data.Id === signerId); - - if (filterSignerPos.length > 0) { - const getPlaceHolder = filterSignerPos[0].placeHolder; - const getPageNumer = getPlaceHolder.filter( - (data) => data.pageNumber === pageNumber - ); - if (getPageNumer.length > 0) { - const getXYdata = getPageNumer[0].pos; - const getPosData = getXYdata; - const addSignPos = getPosData.map((url) => { - if (url.key === key) { - return { - ...url, - Width: ref.offsetWidth, - Height: ref.offsetHeight, - IsResize: showResize ? true : false - }; - } - return url; - }); - - const newUpdateSignPos = getPlaceHolder.map((obj) => { - if (obj.pageNumber === pageNumber) { - return { ...obj, pos: addSignPos }; - } - return obj; - }); - - const newUpdateSigner = signerPos.map((obj, ind) => { - if (obj.Id === signerId) { - return { ...obj, placeHolder: newUpdateSignPos }; - } - return obj; - }); - - setSignerPos(newUpdateSigner); - } - } -}; - -//function for resize image and update width and height for sign-yourself -export const handleSignYourselfImageResize = ( - ref, - key, - xyPostion, - setXyPostion, - index -) => { - const getXYdata = xyPostion[index].pos; - const getPosData = getXYdata; - const addSign = getPosData.map((url, ind) => { - if (url.key === key) { - return { - ...url, - Width: ref.offsetWidth, - Height: ref.offsetHeight, - IsResize: true - }; - } - return url; - }); - - const newUpdateUrl = xyPostion.map((obj, ind) => { - if (ind === index) { - return { ...obj, pos: addSign }; - } - return obj; - }); - setXyPostion(newUpdateUrl); -}; - -//function for call cloud function signPdf and generate digital signature -export const signPdfFun = async ( - base64Url, - documentId, - signerObjectId, - pdfOriginalWidth, - signerData, - containerWH, - setIsAlert, - xyPosData, - pdfBase64Url, - pageNo -) => { - let singleSign; - - singleSign = { - pdfFile: base64Url, - docId: documentId, - userId: signerObjectId - // }; - }; - - const response = await axios - .post(`${localStorage.getItem("baseUrl")}functions/signPdf`, singleSign, { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - sessionToken: localStorage.getItem("accesstoken") - } - }) - .then((Listdata) => { - const json = Listdata.data; - const res = json.result; - return res; - }) - .catch((err) => { - setIsAlert({ - isShow: true, - alertMessage: "something went wrong" - }); - }); - - return response; -}; - -export const randomId = () => Math.floor(1000 + Math.random() * 9000); - -export const createDocument = async (template, placeholders, signerData) => { - if (template && template.length > 0) { - const Doc = template[0]; - - let placeholdersArr = []; - if (placeholders?.length > 0) { - placeholdersArr = placeholders; - } - let signers = []; - if (signerData?.length > 0) { - signerData.forEach((x) => { - if (x.objectId) { - const obj = { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: x.objectId - }; - signers.push(obj); - } - }); - } - const data = { - Name: Doc.Name, - URL: Doc.URL, - SignedUrl: Doc.SignedUrl, - Description: Doc.Description, - Note: Doc.Note, - Placeholders: placeholdersArr, - ExtUserPtr: { - __type: "Pointer", - className: "contracts_Users", - objectId: Doc.ExtUserPtr.objectId - }, - CreatedBy: { - __type: "Pointer", - className: "_User", - objectId: Doc.CreatedBy.objectId - }, - Signers: signers, - SendinOrder: Doc?.SendinOrder || false - }; - - try { - const res = await axios.post( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } - } - ); - if (res) { - return { status: "success", id: res.data.objectId }; - } - } catch (err) { - console.log("axois err ", err); - return { status: "error", id: "Something Went Wrong!" }; - } - } -}; - -export const getFirstLetter = (name) => { - const firstLetter = name?.charAt(0); - return firstLetter; -}; - -export const darkenColor = (color, factor) => { - // Remove '#' from the color code and parse it to get RGB values - const hex = color.replace("#", ""); - const r = parseInt(hex.substring(0, 2), 16); - const g = parseInt(hex.substring(2, 4), 16); - const b = parseInt(hex.substring(4, 6), 16); - - // Darken the color by reducing each RGB component - const darkerR = Math.floor(r * (1 - factor)); - const darkerG = Math.floor(g * (1 - factor)); - const darkerB = Math.floor(b * (1 - factor)); - - // Convert the darkened RGB components back to hex - return `#${((darkerR << 16) | (darkerG << 8) | darkerB) - .toString(16) - .padStart(6, "0")}`; -}; diff --git a/microfrontends/SignDocuments/src/utils/toDataUrl.js b/microfrontends/SignDocuments/src/utils/toDataUrl.js deleted file mode 100644 index 21406de90..000000000 --- a/microfrontends/SignDocuments/src/utils/toDataUrl.js +++ /dev/null @@ -1,10 +0,0 @@ -export const toDataUrl = (file) => { - return new Promise((resolve) => { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.onloadend = (e) => { - resolve(e.target.result); - }; - }); - }; - \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/utils/useFileUpload.js b/microfrontends/SignDocuments/src/utils/useFileUpload.js deleted file mode 100644 index 18fb5b897..000000000 --- a/microfrontends/SignDocuments/src/utils/useFileUpload.js +++ /dev/null @@ -1,68 +0,0 @@ -import { useState } from "react"; -import axios from "axios"; - -export const useFileUpload = () => { - const [parseBaseUrl] = useState(localStorage.getItem("baseUrl")); - const [parseAppId] = useState(localStorage.getItem("parseAppId")); - const [_fileupload, setFileUpload] = useState(""); - const [fileload, setfileload] = useState(false); - const [percentage, setpercentage] = useState(0); - - const onChange = (e) => { - try { - let files = e.target.files; - if (typeof files[0] !== "undefined") { - fileUpload(files[0]); - } else { - alert("Please select file."); - return false; - } - } catch (error) { - alert(error.message); - return false; - } - }; - const fileUpload = async (file) => { - setfileload(true); - let image_url = parseBaseUrl.replace("/app", ""); - const url = `${image_url}image_upload`; - const formData = new FormData(); - formData.append("file", file); - const config = { - headers: { - "content-type": "multipart/form-data", - "X-Parse-Application-Id": parseAppId, - }, - onUploadProgress: function (progressEvent) { - var percentCompleted = Math.round( - (progressEvent.loaded * 100) / progressEvent.total - ); - setpercentage(percentCompleted); - }, - }; - - try { - await axios - .post(url, formData, config) - .then((res) => { - if (res.data.status === "Error") { - alert(res.data.message); - } - setFileUpload(res.data.imageUrl); - setfileload(false); - setpercentage(0); - }) - .catch((err) => { - alert(`${err.message}`); - setfileload(false); - setpercentage(0); - }); - } catch (error) { - alert(error.message); - setfileload(false); - setpercentage(0); - } - }; - - return { onChange, _fileupload, fileload, percentage, setFileUpload }; -};