commit 2f0cd84c4aeacff8ac286959624f21af3e59f399 Author: sridhar.r Date: Wed Aug 12 14:24:25 2026 +0530 first commit diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..4dcb439 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,20 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + settings: { react: { version: '18.2' } }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Public Updated 12Aug.zip b/Public Updated 12Aug.zip new file mode 100644 index 0000000..743c288 Binary files /dev/null and b/Public Updated 12Aug.zip differ diff --git a/Public Updated.zip b/Public Updated.zip new file mode 100644 index 0000000..b15812c Binary files /dev/null and b/Public Updated.zip differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/codeStructure.txt b/codeStructure.txt new file mode 100644 index 0000000..9241406 --- /dev/null +++ b/codeStructure.txt @@ -0,0 +1,44 @@ +import React, { useState,useRef,useCallback ,useEffect} from 'react'; +import { useDispatch, useSelector } from "react-redux"; +import { Link } from "react-router-dom"; +import { Modal,Form } from 'antd'; +import {EyeOutlined,PlusOutlined, CloseOutlined,ArrowRightOutlined } from '@ant-design/icons'; +import Android from "../../../../Images/android.png"; +import { InputField } from "../../../../Components/Forms/InputField"; +import OverView2 from './OverView2'; +import {changeOverviewData,changeOverview2Img,changeOverview2Video,overviewPostData,overview2Img,overview2Video} from "../../../../features/themeChange/themeChange.js" +import "../../../../styles/template/overView/overView2.scss"; + + +const Name =() => { + + const formRef = useRef(null); + const dispatch = useDispatch(); + + const overView1Data = useSelector(overviewPostData); + const imageUrl = useSelector(overview1Img); + + const [messageType, setMessageType] = useState(null); + const [messageData, setMessageData] = useState(null); + const [open, setOpen] = useState(false); + const [editopen, setEditOpen] = useState(false); + const [editData, setEditData] = useState(false); + + const items = [] + + useEffect(()=>{ + + }) + + const sampleFunction = () => { + + } + + return ( + + ) + + +} + +export default Name \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..4fd3b03 --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ + + + + + Pozo Store + + + + + + + + + + + + +
+ + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c0dc3dd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9619 @@ +{ + "name": "retail-application", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "retail-application", + "version": "0.0.0", + "dependencies": { + "@ant-design/plots": "^1.2.5", + "@autocomplete/material-ui": "0.0.17", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@material-ui/lab": "^4.0.0-alpha.61", + "@mui/material": "^5.14.18", + "@reduxjs/toolkit": "^1.9.5", + "antd": "^5.9.2", + "antd-img-crop": "^4.21.0", + "aos": "^2.3.4", + "axios": "^1.5.0", + "classnames": "^2.3.2", + "cropperjs": "^1.6.1", + "crypto-js": "^4.1.1", + "exceljs": "^4.3.0", + "google-maps-react": "^2.0.6", + "html2canvas": "^1.4.1", + "html2pdf.js": "^0.10.2", + "jspdf": "^2.5.1", + "material-ui": "^0.20.2", + "moment": "^2.29.4", + "mui-autocomplete": "^2.0.1", + "number-to-words": "^1.2.4", + "qrcode": "^1.5.3", + "react": "^18.2.0", + "react-color": "^2.19.3", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", + "react-icons": "^4.11.0", + "react-qr-code": "^2.0.12", + "react-redux": "^8.1.2", + "react-router-dom": "^6.16.0", + "react-select": "^5.8.0", + "react-speech-recognition": "^3.10.0", + "react-timer-hook": "^3.0.7", + "universal-cookie": "^6.1.1", + "webfontloader": "^1.6.28", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@vitejs/plugin-react": "^4.0.3", + "eslint": "^8.45.0", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "sass": "^1.68.0", + "vite": "^4.4.11" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/@ant-design/colors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz", + "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==", + "dependencies": { + "@ctrl/tinycolor": "^3.6.1" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.18.4.tgz", + "integrity": "sha512-IrUAOj5TYuMG556C9gdbFuOrigyhzhU5ZYpWb3gYTxAwymVqRbvLzFCZg6OsjLBR6GhzcxYF3AhxKmjB+rA2xA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs/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==" + }, + "node_modules/@ant-design/icons": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.0.tgz", + "integrity": "sha512-69FgBsIkeCjw72ZU3fJpqjhmLCPrzKGEllbrAZK7MUdt1BrKsyG6A8YDCBPKea27UQ0tRXi33PcjR4tp/tEXMg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.11.2", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + }, + "node_modules/@ant-design/plots": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@ant-design/plots/-/plots-1.2.6.tgz", + "integrity": "sha512-fFzB9DxRSPQa47S3WypRk4Rh+P8vBUuY/DT+IXgUrlKJtvVZUFnuYfjypX3Q/Pie2PEbI6gmskzXLxVF+3Ztvw==", + "dependencies": { + "@antv/g2plot": "^2.2.11", + "@antv/util": "^2.0.9", + "react-content-loader": "^5.0.4" + }, + "peerDependencies": { + "react": ">=16.8.4", + "react-dom": ">=16.8.4" + } + }, + "node_modules/@ant-design/react-slick": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz", + "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@antv/adjust": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@antv/adjust/-/adjust-0.2.5.tgz", + "integrity": "sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ==", + "dependencies": { + "@antv/util": "~2.0.0", + "tslib": "^1.10.0" + } + }, + "node_modules/@antv/adjust/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/@antv/attr": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@antv/attr/-/attr-0.3.5.tgz", + "integrity": "sha512-wuj2gUo6C8Q2ASSMrVBuTcb5LcV+Tc0Egiy6bC42D0vxcQ+ta13CLxgMmHz8mjD0FxTPJDXSciyszRSC5TdLsg==", + "dependencies": { + "@antv/color-util": "^2.0.1", + "@antv/scale": "^0.3.0", + "@antv/util": "~2.0.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@antv/color-util": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@antv/color-util/-/color-util-2.0.6.tgz", + "integrity": "sha512-KnPEaAH+XNJMjax9U35W67nzPI+QQ2x27pYlzmSIWrbj4/k8PGrARXfzDTjwoozHJY8qG62Z+Ww6Alhu2FctXQ==", + "dependencies": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/component": { + "version": "0.8.35", + "resolved": "https://registry.npmjs.org/@antv/component/-/component-0.8.35.tgz", + "integrity": "sha512-VnRa5X77nBPI952o2xePEEMSNZ6g2mcUDrQY8mVL2kino/8TFhqDq5fTRmDXZyWyIYd4ulJTz5zgeSwAnX/INQ==", + "dependencies": { + "@antv/color-util": "^2.0.3", + "@antv/dom-util": "~2.0.1", + "@antv/g-base": "^0.5.9", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.7", + "@antv/scale": "~0.3.1", + "@antv/util": "~2.0.0", + "fecha": "~4.2.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/component/node_modules/@antv/path-util": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", + "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", + "dependencies": { + "@antv/matrix-util": "^3.0.4", + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/component/node_modules/@antv/path-util/node_modules/@antv/matrix-util": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/coord": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@antv/coord/-/coord-0.3.1.tgz", + "integrity": "sha512-rFE94C8Xzbx4xmZnHh2AnlB3Qm1n5x0VT3OROy257IH6Rm4cuzv1+tZaUBATviwZd99S+rOY9telw/+6C9GbRw==", + "dependencies": { + "@antv/matrix-util": "^3.1.0-beta.2", + "@antv/util": "~2.0.12", + "tslib": "^2.1.0" + } + }, + "node_modules/@antv/dom-util": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz", + "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/event-emitter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" + }, + "node_modules/@antv/g-base": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.15.tgz", + "integrity": "sha512-QOtq50QpnKez9J75/Z8j2yZ7QDQdk8R8mVQJiHtaEO5eI7DM4ZbrsWff/Ew26JYmPWdq7nbRuARMAD4PX9uuLA==", + "dependencies": { + "@antv/event-emitter": "^0.1.1", + "@antv/g-math": "^0.1.9", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.13", + "@types/d3-timer": "^2.0.0", + "d3-ease": "^1.0.5", + "d3-interpolate": "^3.0.1", + "d3-timer": "^1.0.9", + "detect-browser": "^5.1.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-base/node_modules/@antv/path-util": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", + "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", + "dependencies": { + "@antv/matrix-util": "^3.0.4", + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-base/node_modules/@antv/path-util/node_modules/@antv/matrix-util": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-canvas": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.14.tgz", + "integrity": "sha512-IUGLEMIMAUYgaBMT8h3FTmYQYz7sjQkKWwh6Psqx+UPK86fySa+G8fMRrh1EqAL07jVB+GRnn6Ym+3FoFUgeFg==", + "dependencies": { + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-canvas/node_modules/@antv/path-util": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", + "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", + "dependencies": { + "@antv/matrix-util": "^3.0.4", + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-canvas/node_modules/@antv/path-util/node_modules/@antv/matrix-util": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-math": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz", + "integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==", + "dependencies": { + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" + } + }, + "node_modules/@antv/g-svg": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz", + "integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==", + "dependencies": { + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", + "@antv/util": "~2.0.0", + "detect-browser": "^5.0.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g2": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-4.2.10.tgz", + "integrity": "sha512-/ZlJ/DFJBCvtEQgE6roxdd6sBml0fZ8ZVfzG+HdjGpA7/ceURb8XkxUcqa0E8NV+e4sFijnaAhBCdUm2whiuyA==", + "dependencies": { + "@antv/adjust": "^0.2.1", + "@antv/attr": "^0.3.1", + "@antv/color-util": "^2.0.2", + "@antv/component": "^0.8.27", + "@antv/coord": "^0.3.0", + "@antv/dom-util": "^2.0.2", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "~0.5.6", + "@antv/g-canvas": "~0.5.10", + "@antv/g-svg": "~0.5.6", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.15", + "@antv/scale": "^0.3.14", + "@antv/util": "~2.0.5", + "tslib": "^2.0.0" + } + }, + "node_modules/@antv/g2/node_modules/@antv/path-util": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", + "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", + "dependencies": { + "@antv/matrix-util": "^3.0.4", + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g2/node_modules/@antv/path-util/node_modules/@antv/matrix-util": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g2plot": { + "version": "2.4.31", + "resolved": "https://registry.npmjs.org/@antv/g2plot/-/g2plot-2.4.31.tgz", + "integrity": "sha512-SlWHYVsJgRN7E1Oe5Qk6yWBrSWmctmloknFmklaqe9vEeK+YB9ZLUffZvtAHT10mA2NZ+VjGUhlnMNgR9M1PQg==", + "dependencies": { + "@antv/color-util": "^2.0.6", + "@antv/event-emitter": "^0.1.2", + "@antv/g-base": "^0.5.11", + "@antv/g2": "^4.1.26", + "@antv/matrix-util": "^3.1.0-beta.2", + "@antv/path-util": "^3.0.1", + "@antv/scale": "^0.3.18", + "@antv/util": "^2.0.17", + "d3-hierarchy": "^2.0.0", + "d3-regression": "^1.3.5", + "fmin": "^0.0.2", + "pdfast": "^0.2.0", + "size-sensor": "^1.0.1", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/matrix-util": { + "version": "3.1.0-beta.3", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", + "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.4.3", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/path-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-3.0.1.tgz", + "integrity": "sha512-tpvAzMpF9Qm6ik2YSMqICNU5tco5POOW7S4XoxZAI/B0L26adU+Md/SmO0BBo2SpuywKvzPH3hPT3xmoyhr04Q==", + "dependencies": { + "gl-matrix": "^3.1.0", + "lodash-es": "^4.17.21", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/scale": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz", + "integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==", + "dependencies": { + "@antv/util": "~2.0.3", + "fecha": "~4.2.0", + "tslib": "^2.0.0" + } + }, + "node_modules/@antv/util": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", + "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "dependencies": { + "csstype": "^3.0.8", + "tslib": "^2.0.3" + } + }, + "node_modules/@autocomplete/core": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@autocomplete/core/-/core-0.0.17.tgz", + "integrity": "sha512-U35Okj4Z4aKSuIY6j2wBQi+nVle6o0aqbZHtu/IH/PHlC3yWLNbwvw5R9qkW/4SAl0eKxxmtaOrG7JIFLcQNeA==", + "dependencies": { + "@storex/core": "^1.1.10" + } + }, + "node_modules/@autocomplete/material-ui": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@autocomplete/material-ui/-/material-ui-0.0.17.tgz", + "integrity": "sha512-0D30nclrOL4yUXxQ2ecyFXOIZJFAfTyERdnL1lH9ZIsJ5QZN/2jocekcX/i4XXCC1zPEXKo9pVuvJfnl0gDCfg==", + "dependencies": { + "@autocomplete/react": "^0.0.17", + "@material-ui/core": "^4.9.5", + "@material-ui/icons": "^4.9.1", + "@types/react": "^16.9.23" + } + }, + "node_modules/@autocomplete/material-ui/node_modules/@types/react": { + "version": "16.14.57", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.57.tgz", + "integrity": "sha512-fuNq/GV1a6GgqSuVuC457vYeTbm4E1CUBQVZwSPxqYnRhIzSXCJ1gGqyv+PKhqLyfbKCga9dXHJDzv+4XE41fw==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@autocomplete/react": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@autocomplete/react/-/react-0.0.17.tgz", + "integrity": "sha512-zPt5sr8+/onRY7v2TFi3z+cbxgZCH4/C3sti+RNC2bmMvvpGGAUfE2W61J6wuk/pC1JnP9ygIjHRaYBF3B+ksg==", + "dependencies": { + "@autocomplete/core": "^0.0.17", + "@storex/core": "^1.1.10", + "@storex/react": "1.1.10", + "compute-scroll-into-view": "^1.0.13", + "react": "^16.13.0", + "react-dom": "^16.13.0" + } + }, + "node_modules/@autocomplete/react/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@autocomplete/react/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "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/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/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@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-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "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-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "license": "MIT", + "engines": { + "node": ">=6.9.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-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.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dev": true, + "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-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dev": true, + "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-pure-annotations": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=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/@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/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.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "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.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@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.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "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/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/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/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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/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/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "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.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "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/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "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/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.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.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.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.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.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==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@icons/material": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", + "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/node_modules/string-width-cjs": { + "name": "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" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width-cjs/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/@isaacs/cliui/node_modules/string-width-cjs/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/@isaacs/cliui/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/@isaacs/cliui/node_modules/strip-ansi-cjs": { + "name": "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" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi-cjs/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/@isaacs/cliui/node_modules/wrap-ansi-cjs": { + "name": "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" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/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/@isaacs/cliui/node_modules/wrap-ansi-cjs/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/@isaacs/cliui/node_modules/wrap-ansi-cjs/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/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "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": "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/@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.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@ljharb/resumer": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", + "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", + "dependencies": { + "@ljharb/through": "^2.3.9" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@ljharb/through": { + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "dependencies": { + "call-bind": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@material-ui/core": { + "version": "4.12.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/icons": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", + "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", + "dependencies": { + "@babel/runtime": "^7.4.4" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "@material-ui/core": "^4.0.0", + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/lab": { + "version": "4.0.0-alpha.61", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz", + "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.3", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "@material-ui/core": "^4.12.1", + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/styles": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", + "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/styles/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/@material-ui/system": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", + "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", + "dependencies": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.3", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/material-ui" + }, + "peerDependencies": { + "@types/react": "^16.8.6 || ^17.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/system/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@material-ui/utils": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", + "dependencies": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.37", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.37.tgz", + "integrity": "sha512-/o3anbb+DeCng8jNsd3704XtmmLDZju1Fo8R2o7ugrVtPQ/QpcqddwKNzKPZwa0J5T8YNW3ZVuHyQgbTnQLisQ==", + "deprecated": "This package has been replaced by @base-ui-components/react", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/base/node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.11.tgz", + "integrity": "sha512-JVrJ9Jo4gyU707ujnRzmE8ABBWpXd6FwL9GYULmwZRtfPg89ggXs/S3MStQkpJ1JRWfdLL6S5syXmgQGq5EDAw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.11.tgz", + "integrity": "sha512-FA3eEuEZaDaxgN3CgfXezMWbCZ4VCeU/sv0F0/PK5n42qIgsPVD6q+j71qS7/62sp6wRFMHtDMpXRlN+tT/7NA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.37", + "@mui/core-downloads-tracker": "^5.15.11", + "@mui/system": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/material/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/@mui/private-theming": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.11.tgz", + "integrity": "sha512-jY/696SnSxSzO1u86Thym7ky5T9CgfidU3NFJjguldqK4f3Z5S97amZ6nffg8gTD0HBjY9scB+4ekqDEUmxZOA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.11", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", + "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.11.tgz", + "integrity": "sha512-9j35suLFq+MgJo5ktVSHPbkjDLRMBCV17NMBdEQurh6oWyGnLM4uhU4QGZZQ75o0vuhjJghOCA1jkO3+79wKsA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.11", + "@mui/styled-engine": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.11", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/system/node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/types": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.11.tgz", + "integrity": "sha512-D6bwqprUa9Stf8ft0dcMqWyWDKEo7D+6pB1k8WajbqlYIRA8J8Kw9Ra7PSZKKePGBGWO+/xxrX1U8HpG/aXQCw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/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/@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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "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/@rc-component/color-picker": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.2.tgz", + "integrity": "sha512-YJXujYzYFAEtlXJXy0yJUhwzUWPTcniBZto+wZ/vnACmFnUTNR7dH+NOeqSwMMsssh74e9H5Jfpr5LAH2PYqUw==", + "dependencies": { + "@babel/runtime": "^7.23.6", + "@ctrl/tinycolor": "^3.6.1", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.12.3.tgz", + "integrity": "sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^1.3.6", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.3.tgz", + "integrity": "sha512-Ksr25pXreYe1gX6ayZ1jLrOrl9OAUHUqnuhEx6MeHnNa1zVM5Y2Aj3Q35UrER0ns8D2cJYtmJtVli+i+4eKrvA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", + "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@storex/core": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@storex/core/-/core-1.1.10.tgz", + "integrity": "sha512-3dNvuO5R0Iye/Qt3DWXRRFLVyTMUsP8dv3QHYc+a1ehN/f1vNBMWSFvh0IgotSgkfraflEy7Z6LyftMxDh8dvA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@storex/utils": "^1.1.10" + } + }, + "node_modules/@storex/react": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@storex/react/-/react-1.1.10.tgz", + "integrity": "sha512-+iohIUx2l35wLr4DerFcQcOg8OuxFD0h6A2e1/sylAE6PWcFbqpddHzgP02NF2Gt6I7Oj74hz4zZ8vPlzgTNaQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@storex/core": "^1.1.10", + "@storex/utils": "^1.1.10", + "@types/jest": "^25.1.3", + "react": "^16.8.6", + "react-dom": "^16.8.6" + } + }, + "node_modules/@storex/react/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storex/react/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/@storex/utils": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@storex/utils/-/utils-1.1.10.tgz", + "integrity": "sha512-FTr8E74qx5i+GdFmg17VHkey2FKVOTaLVpPxxsk4YS/ZAgLED4acJ19EYaVmab2q173TL+179H1Vy/CMyd0aXw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@types/jest": "^25.1.3", + "typescript": "^3.8.2" + }, + "peerDependencies": { + "ajv": "^5.5.2" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "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.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, + "node_modules/@types/d3-timer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", + "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==" + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "dependencies": { + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" + } + }, + "node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/raf": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", + "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", + "optional": true + }, + "node_modules/@types/react": { + "version": "18.2.60", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.60.tgz", + "integrity": "sha512-dfiPj9+k20jJrLGOu9Nf6eqxm2EyJRrq2NvwOFsfbb7sFExZ9WELPs67UImHj3Ayxg8ruTtKtNnbjaF8olPq0A==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/ajv/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "license": "MIT", + "peer": true + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/antd": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.14.2.tgz", + "integrity": "sha512-ur0oBI9U7hAeON4ZRs1cAF1suIpTR+uj3YliTZacWkiVxNTZYPaaTdnLuAZDRMT9P2IZ007dCQTqxn5t1Z+Dxw==", + "dependencies": { + "@ant-design/colors": "^7.0.2", + "@ant-design/cssinjs": "^1.18.4", + "@ant-design/icons": "^5.3.0", + "@ant-design/react-slick": "~1.0.2", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~1.5.2", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/tour": "~1.12.3", + "@rc-component/trigger": "^1.18.3", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.10", + "qrcode.react": "^3.1.0", + "rc-cascader": "~3.21.2", + "rc-checkbox": "~3.1.0", + "rc-collapse": "~3.7.2", + "rc-dialog": "~9.3.4", + "rc-drawer": "~7.0.0", + "rc-dropdown": "~4.1.0", + "rc-field-form": "~1.41.0", + "rc-image": "~7.5.1", + "rc-input": "~1.4.3", + "rc-input-number": "~9.0.0", + "rc-mentions": "~2.10.1", + "rc-menu": "~9.12.4", + "rc-motion": "^2.9.0", + "rc-notification": "~5.3.0", + "rc-pagination": "~4.0.4", + "rc-picker": "~4.1.4", + "rc-progress": "~3.5.1", + "rc-rate": "~2.12.0", + "rc-resize-observer": "^1.4.0", + "rc-segmented": "~2.3.0", + "rc-select": "~14.11.0", + "rc-slider": "~10.5.0", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.39.0", + "rc-tabs": "~14.0.0", + "rc-textarea": "~1.6.3", + "rc-tooltip": "~6.1.3", + "rc-tree": "~5.8.5", + "rc-tree-select": "~5.17.0", + "rc-upload": "~4.5.2", + "rc-util": "^5.38.2", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/antd-img-crop": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/antd-img-crop/-/antd-img-crop-4.21.0.tgz", + "integrity": "sha512-YA5GUMfwoDoSJNWinGOmtYFDFLf+t7Rhfg7ZusbHgFpKCq8n9W0005LeCWgSP4C0iK3vxNHAT3DaRa3rTgKFlQ==", + "dependencies": { + "compare-versions": "6.1.0", + "react-easy-crop": "^5.0.4", + "tslib": "^2.6.2" + }, + "peerDependencies": { + "antd": ">=4.0.0", + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aos": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/aos/-/aos-2.3.4.tgz", + "integrity": "sha512-zh/ahtR2yME4I51z8IttIt4lC1Nw0ktsFtmeDzID1m9naJnWXhCoARaCgNOGXb5CLy3zm+wqmRAEgMYB5E2HUw==", + "dependencies": { + "classlist-polyfill": "^1.0.3", + "lodash.debounce": "^4.0.6", + "lodash.throttle": "^4.0.1" + } + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/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/archiver-utils/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/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "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-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "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/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "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==", + "dev": true, + "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/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.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-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "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-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "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/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "node_modules/bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" + }, + "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==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "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.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "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/canvg": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.10.tgz", + "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/canvg/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==", + "optional": true + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chain-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", + "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/change-emitter": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", + "integrity": "sha512-YXzt1cQ4a2jqazhcuSWEOc1K2q8g9H6eWNsyZgi640LDzRWVQ2eDe+Y/kVdftH+vYdPF2rgDb3dLdpxE1jvAxw==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classlist-polyfill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", + "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "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/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, + "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/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/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/compare-versions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", + "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==" + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + }, + "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/contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", + "integrity": "sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==" + }, + "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/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "hasInstallScript": true, + "optional": 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/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cropperjs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.6.1.tgz", + "integrity": "sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==" + }, + "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/css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "dependencies": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "dependencies": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "node_modules/d3-hierarchy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", + "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-regression": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz", + "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==" + }, + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "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/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "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/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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/dompurify": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", + "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==", + "optional": true + }, + "node_modules/dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dependencies": { + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/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/duplexer2/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/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.685", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.685.tgz", + "integrity": "sha512-yDYeobbTEe4TNooEzOQO6xFqg9XnAkVy2Lod1C1B2it8u47JNLYvl9nLDWBamqUakWB8Jc1hhS1uHUNYTNQdfw==" + }, + "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/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "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/es-abstract": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", + "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "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.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.1", + "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.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", + "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.4", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "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/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "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/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "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-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==", + "dev": true, + "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==", + "dev": true, + "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-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "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==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "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/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "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/eslint/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": 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/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/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==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exceljs": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz", + "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", + "dependencies": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.10.1", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fbjs": { + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", + "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "dependencies": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs/node_modules/core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + }, + "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==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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": "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/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fmin": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", + "integrity": "sha512-sSi6DzInhl9d8yqssDfGZejChO8d2bAGIpysPsvYsxFe898z89XhCZg6CPNV3nhUhFefeC/AXZK2bAJxlBjN6A==", + "dependencies": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + } + }, + "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/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/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "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==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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/google-maps-react": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/google-maps-react/-/google-maps-react-2.0.6.tgz", + "integrity": "sha512-M8Eo9WndfQEfxcmm6yRq03qdJgw1x6rQmJ9DN+a+xPQ3K7yNDGkVDbinrf4/8vcox7nELbeopbm4bpefKewWfQ==", + "peerDependencies": { + "react": "~0.14.8 || ^15.0.0 || ^16.0.0", + "react-dom": "~0.14.8 || ^15.0.0 || ^16.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.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": "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/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "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.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/html2pdf.js": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/html2pdf.js/-/html2pdf.js-0.10.2.tgz", + "integrity": "sha512-WyHVeMb18Bp7vYTmBv1GVsThH//K7SRfHdSdhHPkl4JvyQarNQXnailkYn0QUbRRmnN5rdbbmSIGEsPZtzPy2Q==", + "dependencies": { + "es6-promise": "^4.2.5", + "html2canvas": "^1.0.0", + "jspdf": "^2.3.1" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "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/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "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/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "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/inline-style-prefixer": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", + "integrity": "sha512-ne8XIyyqkRaNJ1JfL1NYzNdCNxq+MCBQhC8NgOQlzNm2vv3XxlP0VSLQUbSRCF6KPEoveCVEpayHoHzcMyZsMQ==", + "dependencies": { + "bowser": "^1.7.3", + "css-in-js-utils": "^2.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "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.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "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-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "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==", + "dev": true, + "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-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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + }, + "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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "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==", + "dev": true, + "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-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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dependencies": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "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": "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/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-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "engines": { + "node": ">= 8.3" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true + }, + "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-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "license": "MIT", + "peer": true + }, + "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==", + "dev": true + }, + "node_modules/json2module": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", + "integrity": "sha512-qYGxqrRrt4GbB8IEOy1jJGypkNsjWoIMlZt4bAsmUScCA507Hbc2p1JOhBzqn45u3PWafUgH2OnzyNU7udO/GA==", + "dependencies": { + "rw": "^1.3.2" + }, + "bin": { + "json2module": "bin/json2module" + } + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "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/jspdf": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz", + "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==", + "dependencies": { + "@babel/runtime": "^7.14.0", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.4.8" + }, + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" + } + }, + "node_modules/jss-plugin-camel-case": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-default-unit": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-global": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-nested": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + } + }, + "node_modules/jss-plugin-props-sort": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-rule-value-function": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + } + }, + "node_modules/jss-plugin-vendor-prefixer": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.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==", + "dev": true, + "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/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/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/jszip/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/keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/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/lazystream/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/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "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/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" + }, + "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/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "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.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "node_modules/lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" + }, + "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.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" + }, + "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/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" + }, + "node_modules/material-ui": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.20.2.tgz", + "integrity": "sha512-VeqgQkdvtK193w+FFvXDEwlVxI4rWk83eWbpYLeOIHDPWr3rbB9B075JRnJt/8IsI2X8q5Aia5W3+7m4KkleDg==", + "deprecated": "You can now upgrade to @material-ui/core", + "dependencies": { + "babel-runtime": "^6.23.0", + "inline-style-prefixer": "^3.0.8", + "keycode": "^2.1.8", + "lodash.merge": "^4.6.0", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.5.7", + "react-event-listener": "^0.6.2", + "react-transition-group": "^1.2.1", + "recompose": "^0.26.0", + "simple-assign": "^0.1.0", + "warning": "^3.0.0" + }, + "peerDependencies": { + "react": "^15.4.0 || ^16.0.0", + "react-dom": "^15.4.0 || ^16.0.0" + } + }, + "node_modules/material-ui/node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/material-ui/node_modules/react-transition-group": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", + "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", + "dependencies": { + "chain-function": "^1.0.0", + "dom-helpers": "^3.2.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.5.6", + "warning": "^3.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0", + "react-dom": "^15.0.0 || ^16.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/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/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": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/mock-property": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", + "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "functions-have-names": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "hasown": "^2.0.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/mui-autocomplete": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mui-autocomplete/-/mui-autocomplete-2.0.1.tgz", + "integrity": "sha512-wW1qFEo24G+uLhnvQYYe3CBbsYd12tQ8q5BYVSFLKhDx2PPeSMZ8EF/PmlRbVDFcNzMUs90cYIxwkheCTj97SQ==", + "peerDependencies": { + "@babel/preset-react": "^7.0.0", + "@material-ui/core": "^4.1.3", + "@material-ui/icons": "^4.2.1", + "axios": "^0.19.0", + "react": "^16.8.6", + "react-dom": "^16.8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "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-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, + "node_modules/number-to-words": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/number-to-words/-/number-to-words-1.2.4.tgz", + "integrity": "sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==" + }, + "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-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.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "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.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "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==", + "dev": true, + "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==", + "dev": true, + "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.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "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==", + "dev": true, + "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/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/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "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": "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/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/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/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-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/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-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/pdfast": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pdfast/-/pdfast-0.2.0.tgz", + "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==" + }, + "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==", + "optional": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/popper.js": { + "version": "1.16.1-lts", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "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.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dependencies": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/pretty-format/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/pretty-format/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/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": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "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/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/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qr.js": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz", + "integrity": "sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==" + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode.react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/qrcode/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/qrcode/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/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/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/qrcode/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/qrcode/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/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "optional": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.21.2.tgz", + "integrity": "sha512-J7GozpgsLaOtzfIHFJFuh4oFY0ePb1w10twqK6is3pAkqHkca/PsokbDr822KIRZ8/CK8CqevxohuPDVZ1RO/A==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "array-tree-filter": "^2.1.0", + "classnames": "^2.3.1", + "rc-select": "~14.11.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.1.0.tgz", + "integrity": "sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.2.tgz", + "integrity": "sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.3.4.tgz", + "integrity": "sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.0.0.tgz", + "integrity": "sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.36.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.1.0.tgz", + "integrity": "sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^1.7.0", + "classnames": "^2.2.6", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.41.0.tgz", + "integrity": "sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "async-validator": "^4.1.0", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.5.1.tgz", + "integrity": "sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.3.4", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.3.tgz", + "integrity": "sha512-aHyQUAIRmTlOnvk5EcNqEpJ+XMtfMpYRAJayIlJfsvvH9cAKUWboh4egm23vgMA7E+c/qm4BZcnrDcA960GC1w==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz", + "integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.4.0", + "rc-util": "^5.28.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.10.1.tgz", + "integrity": "sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.6", + "rc-input": "~1.4.0", + "rc-menu": "~9.12.0", + "rc-textarea": "~1.6.1", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.12.4", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.4.tgz", + "integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.17.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz", + "integrity": "sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz", + "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz", + "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.1.5.tgz", + "integrity": "sha512-dh2E9j7HomZW10RWIBsdyXs3geHkSslVqKTx3VZfmi9UEabiQrBBNKVIhqn2m0goia0dqyWJ4qRghAsBVLGzbw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.38.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz", + "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", + "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.38.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", + "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.11.0", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.11.0.tgz", + "integrity": "sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", + "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.27.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.39.0", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.39.0.tgz", + "integrity": "sha512-7fHLMNsm/2DlGwyIMkdH2xIeRzb5I69bLsFaEVtX+gqmGhByy0wtOAgHkiOew3PtXozSJyh+iXifjLgQzWdczw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.37.0", + "rc-virtual-list": "^3.11.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.0.0.tgz", + "integrity": "sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.1.0", + "rc-menu": "~9.12.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz", + "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.4.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.3.tgz", + "integrity": "sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^1.18.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.8.5", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.5.tgz", + "integrity": "sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.17.0.tgz", + "integrity": "sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-select": "~14.11.0-0", + "rc-tree": "~5.8.1", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", + "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.38.2", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.2.tgz", + "integrity": "sha512-yRGRPKyi84H7NkRSP6FzEIYBdUt4ufdsmXUZ7qM2H5qoByPax70NnGPkfo36N+UKUnUBj2f2Q2eUbwYMuAsIOQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/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/rc-virtual-list": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz", + "integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.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-color": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", + "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", + "dependencies": { + "@icons/material": "^0.2.4", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-content-loader": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-5.1.4.tgz", + "integrity": "sha512-hTq7pZi2GKCK6a9d3u6XStozm0QGCEjw8cSqQReiWnh2up6IwCha5R5TF0o6SY5qUDpByloEZEZtnFxpJyENFw==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/react-device-detect": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.3.tgz", + "integrity": "sha512-buYY3qrCnQVlIFHrC5UcUoAj7iANs/+srdkwsnNjI7anr3Tt7UY6MqNxtMLlr0tMBied0O49UZVK8XKs3ZIiPw==", + "dependencies": { + "ua-parser-js": "^1.0.33" + }, + "peerDependencies": { + "react": ">= 0.14.0", + "react-dom": ">= 0.14.0" + } + }, + "node_modules/react-device-detect/node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "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-dom/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/react-easy-crop": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.0.5.tgz", + "integrity": "sha512-GH7Jw3898ytSaN4i4Oxi7j3BKzapZ2pVgnKIl+gFIUjA+NsDgdBSIpiBQUrPFIvHzSnPmz0kGCpX95X6NgsDzA==", + "dependencies": { + "normalize-wheel": "^1.0.1", + "tslib": "2.0.1" + }, + "peerDependencies": { + "react": ">=16.4.0", + "react-dom": ">=16.4.0" + } + }, + "node_modules/react-easy-crop/node_modules/tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==" + }, + "node_modules/react-event-listener": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz", + "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==", + "dependencies": { + "@babel/runtime": "^7.2.0", + "prop-types": "^15.6.0", + "warning": "^4.0.1" + }, + "peerDependencies": { + "react": "^16.3.0" + } + }, + "node_modules/react-event-listener/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/react-icons": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", + "peerDependencies": { + "react": "*" + } + }, + "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/react-qr-code": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.12.tgz", + "integrity": "sha512-k+pzP5CKLEGBRwZsDPp98/CAJeXlsYRHM2iZn1Sd5Th/HnKhIZCSg27PXO58zk8z02RaEryg+60xa4vyywMJwg==", + "dependencies": { + "prop-types": "^15.8.1", + "qr.js": "0.0.0" + }, + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x", + "react-native-svg": "*" + }, + "peerDependenciesMeta": { + "react-native-svg": { + "optional": true + } + } + }, + "node_modules/react-redux": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", + "dependencies": { + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-redux/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/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.22.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz", + "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==", + "dependencies": { + "@remix-run/router": "1.15.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz", + "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==", + "dependencies": { + "@remix-run/router": "1.15.1", + "react-router": "6.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "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-speech-recognition": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/react-speech-recognition/-/react-speech-recognition-3.10.0.tgz", + "integrity": "sha512-EVSr4Ik8l9urwdPiK2r0+ADrLyDDrjB0qBRdUWO+w2MfwEBrj6NuRmy1GD3x7BU/V6/hab0pl8Lupen0zwlJyw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-timer-hook": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.7.tgz", + "integrity": "sha512-ATpNcU+PQRxxfNBPVqce2+REtjGAlwmfoNQfcEBMZFxPj0r3GYdKhyPHdStvqrejejEi0QvqaJZjy2lBlFvAsA==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "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/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "dependencies": { + "lodash": "^4.0.1" + } + }, + "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/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/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/readdir-glob/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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recompose": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", + "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", + "dependencies": { + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "symbol-observable": "^1.0.4" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/recompose/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "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/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", + "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0", + "get-intrinsic": "^1.2.3", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "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-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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-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/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/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/rimraf/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", + "integrity": "sha512-a2S4Bh3bgrdO4BhKr2E4nZkjTvrJ2m2bWjMTzVYtoqSCn0HnuxosXnaJUHrMEziOWr3CzL9GjilQQKcyCQpJoA==", + "dependencies": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + }, + "bin": { + "rollup": "bin/rollup" + } + }, + "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==", + "dev": true, + "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/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "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.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.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/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "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.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/scroll-into-view-if-needed/node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" + }, + "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/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==" + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "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/side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-assign": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz", + "integrity": "sha512-otdSSQzuVsmDoe5MnSm4ZgHd5sl0ak6A1CTjW1R/DUHQ8xoZuU1NUzf9x6n9Dvp3nxpvW51WNMQ/7rQ9432xDg==" + }, + "node_modules/size-sensor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/size-sensor/-/size-sensor-1.0.2.tgz", + "integrity": "sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==" + }, + "node_modules/source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", + "integrity": "sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", + "dependencies": { + "source-map": "0.1.32" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/stackblur-canvas": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", + "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", + "optional": true, + "engines": { + "node": ">=0.1.14" + } + }, + "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/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/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/string-width/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/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==", + "dev": true, + "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/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "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-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tape": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz", + "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", + "dependencies": { + "@ljharb/resumer": "~0.0.1", + "@ljharb/through": "~2.3.9", + "call-bind": "~1.0.2", + "deep-equal": "~1.1.1", + "defined": "~1.0.1", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "glob": "~7.2.3", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.1.4", + "minimist": "~1.2.8", + "mock-property": "~1.0.0", + "object-inspect": "~1.12.3", + "resolve": "~1.22.6", + "string.prototype.trim": "~1.2.8" + }, + "bin": { + "tape": "bin/tape" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "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==", + "dev": true + }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "node_modules/tmp": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.2.tgz", + "integrity": "sha512-ETcvHhaIc9J2MDEAH6N67j9bvBvu/3Gb764qaGhwtFvjtvhegqoqSpofgeyq1Sc24mW5pdyUDs9HP5j3ehkxRw==", + "dependencies": { + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">=14" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } + }, + "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/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/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/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "optional": true + }, + "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/universal-cookie": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-6.1.3.tgz", + "integrity": "sha512-AETYRrhpRgl9T1YtnODmQE32G81U3A+f3HO3ZeK7efbXqe3x+RNOW4RTpV0iff7zJWhGYJA6EI0Mm+w50aFTAw==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0" + } + }, + "node_modules/unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/unzipper/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/unzipper/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/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==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "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-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "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/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "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/vite": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webfontloader": { + "version": "1.6.28", + "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", + "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ==" + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-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/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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/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/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "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/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "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": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/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/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..baf1771 --- /dev/null +++ b/package.json @@ -0,0 +1,63 @@ +{ + "name": "retail-application", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@ant-design/plots": "^1.2.5", + "@autocomplete/material-ui": "0.0.17", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@material-ui/lab": "^4.0.0-alpha.61", + "@mui/material": "^5.14.18", + "@reduxjs/toolkit": "^1.9.5", + "antd": "^5.9.2", + "antd-img-crop": "^4.21.0", + "aos": "^2.3.4", + "axios": "^1.5.0", + "classnames": "^2.3.2", + "cropperjs": "^1.6.1", + "crypto-js": "^4.1.1", + "exceljs": "^4.3.0", + "google-maps-react": "^2.0.6", + "html2canvas": "^1.4.1", + "html2pdf.js": "^0.10.2", + "jspdf": "^2.5.1", + "material-ui": "^0.20.2", + "moment": "^2.29.4", + "mui-autocomplete": "^2.0.1", + "number-to-words": "^1.2.4", + "qrcode": "^1.5.3", + "react": "^18.2.0", + "react-color": "^2.19.3", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", + "react-icons": "^4.11.0", + "react-qr-code": "^2.0.12", + "react-redux": "^8.1.2", + "react-router-dom": "^6.16.0", + "react-select": "^5.8.0", + "react-speech-recognition": "^3.10.0", + "react-timer-hook": "^3.0.7", + "universal-cookie": "^6.1.1", + "webfontloader": "^1.6.28", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "@vitejs/plugin-react": "^4.0.3", + "eslint": "^8.45.0", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "sass": "^1.68.0", + "vite": "^4.4.11" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.env.development b/src/.env.development new file mode 100644 index 0000000..4512bad --- /dev/null +++ b/src/.env.development @@ -0,0 +1,9 @@ +ENV_BASE_URL='/' +ENV_COMMON_BASE_URL='https://pozo.app' +ENV_API_URL='http://192.168.1.37:8010' +# ENV_API_URL='http://192.168.1.38:8003' +ENV_API_URL_COMMON='http://192.168.1.38' +ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.app/pozo-common-image-api/" +ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d" +ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b" +ENV_MAIN_BASE_URL='http://192.168.1.16:3006/' diff --git a/src/.env.production b/src/.env.production new file mode 100644 index 0000000..d61bf61 --- /dev/null +++ b/src/.env.production @@ -0,0 +1,8 @@ +ENV_BASE_URL='/apps/retail-public/' +ENV_COMMON_BASE_URL='https://pozo.app' +ENV_API_URL='https://api.pozo.app/pozo-retail-api' +ENV_API_URL_COMMON='https://api.pozo.app/pozo-common-api' +ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.app/pozo-common-image-api/" +ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d" +ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b" +ENV_MAIN_BASE_URL='https://pozo.app/apps/retail/' diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..d9dba4d --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,98 @@ +import { Routes, Route } from "react-router-dom"; +import PozoPublicHomePage from "../src/Pages/HomePage/PozoPublicHomePage"; +import Purchase from "./Pages/Purchcase/Purchase"; +import PozoStore from "./Pages/PozoStore/PozoStore"; +import PozoIndividualCard from "../src/Pages/PozoIndividualCard/PozoIndividualCard.jsx"; +import LandingPage from "./Pages/LandingPage/landingPage.jsx"; +import PozoPublicCheckOut from "./Pages/CheckOut/PozoPublicCheckOut.jsx"; +import PozoCart from "./Pages/PozoCart/PozoCart.jsx"; +import PozoPublicSignIn from "./Pages/SignIn/PozoPublicSignIn.jsx"; +// import PozoPublicNavbar from "./Components/PozoPublicNavbar/PozoPubliNavbar.jsx"; +import PozoPublicFavouriteList from "./Pages/FavouriteList/PozoPublicFavouriteList.jsx"; +import PozoPublicFavShop from "./Pages/FavShop/PozoPublicFavShop.jsx"; +import PozoPublicOrder from "./Pages/MyOrderPage/PozoPublicOrder.jsx"; +import PozoPublicOrderInfo from "./Pages/MyOrderPage/PozoPublicOrderInfo.jsx"; +import PozoPublicMyProfile from "./Pages/MyProfile/PozoPublicMyProfile.jsx"; +import PozoPublicInvoice from "./Pages/Invoice/PozoPublicInvoice.jsx"; +import StepProgress from "./Pages/MyOrderPage/StepProgress.jsx"; +import PozoPublicCollapse from "./Components/Collapse/PozoPublicCollapse.jsx"; +import PozoPublicImagePicker from "./Components/ImagePicker/PozoPublicImagePicker.jsx"; +import ModalPozoPublic from "./Components/PozoPublicCard/ModalPozoPublic.jsx"; +import PublicPozoModal from "./Components/PublicPozoModal/PublicPozoModal.jsx"; +import PozoPublicDatePicker from "./Components/DatePicker/PozoPublicDatePicker.jsx"; +import PozoPublicProductMaster from "./Pages/ProductMaster/PozoPublicProductMaster.jsx"; +import PozoPublicStore from "./Pages/Store/PozoPublicStore.jsx"; +import PozoPublicSellerRegister from "./Pages/SellerRegister/PozoPublicSellerRegister.jsx"; +import PozoPublicSalesReport from "./Pages/SalesReport/PozoPublicSalesReport.jsx"; +import SadminUsers from "./Pages/Sadmin/SadminUsers/SadminUser.jsx" + +import PozoChartGraphs from "./Components/Charts/PozoGraphchart.jsx"; + +import PozoPublicBarchart from "./Components/Charts/PozoPublicBarchart.jsx"; +import PozoPublicSadminReport from "./Pages/Sadmin/PozoPublicSadminReport.jsx"; +import PozoPublicSetting from "./Pages/Setting/PozoPublicSetting.jsx"; +import PozoPublicDashboard from "./Pages/Dashboard/PozoPublicDashboard.jsx"; +import PozoPublicPaymentReport from "./Pages/Payment Report/PozoPublicPaymentReport.jsx"; +import PozoPublicQueryManagement from "./Pages/QueryManagement/PozoPublicQueryManagement.jsx"; +import Orders from "./Pages/Orders/Orders.jsx"; +import GraphChart from "./Components/Charts/GraphChart.jsx"; +import QueryRequest from "./Pages/QueryRequestForm/QueryRequest.jsx"; +import AdminlandingPage from "./Pages/AdminLandingPage/AdminLandingPage.jsx"; +import QueryContact from "./Pages/QueryRequestForm/QueryContact.jsx"; +import CustomModal from "./Components/CustomModal/CustomModals.jsx"; +import PozoPublicSAdminDashboard from "./Pages/SAdminDashboard/PozoPublicSAdminDashboard.jsx" +import AdsManagement from "./Pages/Ads Management/AdsManagement.jsx"; +import PozoPublicMyProduct from "./Pages/MyProduct/PozoPublicMyProduct.jsx" +import SadminOveriew from "./Pages/SadminOverview/SadminOveriew.jsx" +const subDirectory = import.meta.env.BASE_URL; + +const App = () => { + return ( + + }> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + }> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + ); +}; + +export default App; diff --git a/src/Check.jsx b/src/Check.jsx new file mode 100644 index 0000000..c600ff7 --- /dev/null +++ b/src/Check.jsx @@ -0,0 +1,706 @@ +import { CgClose } from "react-icons/cg"; +import { RiAddBoxLine, RiDeleteBinLine } from "react-icons/ri"; +import { BsFillCheckCircleFill } from "react-icons/bs"; +import { IoLogoYoutube, IoMdClose } from "react-icons/io"; +import React, { useState } from 'react'; +import PozoPublicNavbar from "../../Components/PozoPublicNavbar/PozoPubliNavbar.jsx"; +import "../../Styles/Pages/PozoPublicSellerRegister.scss" +import PozoPublicInputSearch from '../../Components/InputSearch/PozoPublicInputSearch.jsx'; +import { useNavigate } from "react-router-dom"; +import AllCategories from "../../Images/AllCategories.png" +import book from "../../Images/book.png" +import fooddelivery from "../../Images/fooddelivery.png" +import grocery from "../../Images/grocery.png" +import meat from "../../Images/meat.png" +import PozoPublicInput from "../../Components/Input/PozoPublicInput.jsx"; +const subDirectory = import.meta.env.BASE_URL; +import { RxPencil2 } from "react-icons/rx"; +import FullPageLoader from "../../Components/Loader/PozoPublicLoader.jsx"; +import PozoPublicButton from "../../Components/Button/PozoPublicButton.jsx"; +import { MdOutlineAddLocationAlt, MdOutlineWorkOutline } from "react-icons/md"; +import { HiOutlineHome } from "react-icons/hi"; +import { TiTick } from "react-icons/ti"; +import Popconfirm from "../../Components/Popconfirm/Popconfirm.jsx"; + + + +const PozoPublicSellerRegister = () => { + const [showUserInfoDetails, setShowUserInfoDetails] = useState(false); + + const [userdetail, setUserdetail] = useState(false); + // const [showAddressInputs, setShowAddressInputs] = useState(false); + const [email, setEmail] = useState("pannerselvam@gmail.com"); // Initial email + const [phone, setPhone] = useState("9442603558"); + const [ShowCancel, setShowCancel] = useState(false); + const [editingIndex, setEditingIndex] = useState(null); + const [userAddress, setUserAddress] = useState([]); + const [pickupAddress, setPickupAddress] = useState([]); + + // State for toggling input visibility + const [showAddressInputs, setShowAddressInputs] = useState(false); + const [showPickupAddressInputs, setShowPickupAddressInputs] = useState(false); + + // State for new address inputs + const [newAddress, setNewAddress] = useState({ + address1: "", + address2: "", + city: "", + state: "", + zipcode: "" + }); + + const [newPickupAddress, setNewPickupAddress] = useState({ + address1: "", + address2: "", + city: "", + state: "", + zipcode: "" + }); + + // State for edit functionality + const [isEditing, setIsEditing] = useState(false); + const [editIndex, setEditIndex] = useState(null); + + // Toggle input visibility for business address + const toggleAddressInputs = () => setShowAddressInputs(!showAddressInputs); + + // Toggle input visibility for pickup address + const togglePickupAddressInputs = () => setShowPickupAddressInputs(!showPickupAddressInputs); + + // Handle input changes for new address + const handleNewAddressChange = (e) => { + const { name, value } = e.target; + setNewAddress((prev) => ({ ...prev, [name]: value })); + }; + + // Handle input changes for new pickup address + const handleNewPickupAddressChange = (e) => { + const { name, value } = e.target; + setNewPickupAddress((prev) => ({ ...prev, [name]: value })); + }; + + // Handle submission of new address + const handleNewAddressSubmit = () => { + setUserAddress([...userAddress, newAddress]); + setNewAddress({ address1: "", address2: "", city: "", state: "", zipcode: "" }); + setShowAddressInputs(false); + }; + + // Handle submission of new pickup address + const handleNewPickupAddressSubmit = () => { + setPickupAddress([...pickupAddress, newPickupAddress]); + setNewPickupAddress({ address1: "", address2: "", city: "", state: "", zipcode: "" }); + setShowPickupAddressInputs(false); + }; + + // Handle editing an address + const handleEditAddress = (index, item) => { + setNewAddress(item); + setIsEditing(true); + setEditIndex(index); + setShowAddressInputs(true); + }; + + // Handle canceling the edit for business address + const handleEditCancel = () => { + setNewAddress({ address1: "", address2: "", city: "", state: "", zipcode: "" }); + setIsEditing(false); + setShowAddressInputs(false); + }; + + // Handle updating the edited address + const handleUpdateAddress = () => { + const updatedAddresses = [...userAddress]; + updatedAddresses[editIndex] = newAddress; + setUserAddress(updatedAddresses); + handleEditCancel(); + }; + + // Handle editing a pickup address + const handleEditPickupAddress = (index, item) => { + setNewPickupAddress(item); + setIsEditing(true); + setEditIndex(index); + setShowPickupAddressInputs(true); + }; + + // Handle canceling the edit for pickup address + const handlePickupEditCancel = () => { + setNewPickupAddress({ address1: "", address2: "", city: "", state: "", zipcode: "" }); + setIsEditing(false); + setShowPickupAddressInputs(false); + }; + + // Handle updating the edited pickup address + const handleUpdatePickupAddress = () => { + const updatedPickupAddresses = [...pickupAddress]; + updatedPickupAddresses[editIndex] = newPickupAddress; + setPickupAddress(updatedPickupAddresses); + handlePickupEditCancel(); + }; const isSubmitDisabled = Object.values(newAddress).some(field => field === ""); + + const handleSubmit = () => { + console.log("New data submitted:", { email, phone }); + setUserdetail(false); // Optionally close the edit mode after submission + }; + const [showConfirm, setShowConfirm] = useState(false); + const handleConfirm = () => { + console.log('Confirmed'); + setShowConfirm(false); + }; + const handleCancel = () => { + console.log('Cancelled'); + setShowConfirm(false); + }; + const handleClose = () => { + // Clean up any additional state or side effects + }; + const [userInfo, setUserInfo] = useState({ + name: "", + email: "", + mb: "", + dob: "", + gender: "", + }); + + // const toggleAddressInputs = () => { + // setNewAddress({ + // address1: "", + // address2: "", + // city: "", + // state: "", + // zipcode: "" + // }); + // setShowAddressInputs(true); + + // }; + const toggleUserInfoDetails = () => { + setShowUserInfoDetails((prevState) => !prevState); + }; + const handleUserInfoChange = (e) => { + const { name, value } = e.target; + setUserInfo((prevUserInfo) => ({ + ...prevUserInfo, + [name]: value, + })); + }; + + // const handleEditAddress = (index, item) => { + + // setNewAddress(item) + // setEditingIndex(index); + // setShowAddressInputs(true); + // setShowCancel(true); + // }; + + // const handleEditCancel = (index, item) => { + // setShowCancel(false); + // setShowAddressInputs(false); + // }; + + + + // const [userAddress, setUserAddress] = useState([ + // { + // address1: "dharga hosur", + // address2: "software solution", + // city: "chennai", + // state: "Tamil nadu", + // zipcode: "636542" + // }, + // ]); + + + // Handle new address form submission + // const handleNewAddressSubmit = () => { + // if (editingIndex !== null) { + // // Update existing address + // const updatedAddresses = [...userAddress]; + // updatedAddresses[editingIndex] = newAddress; + // setUserAddress(updatedAddresses); + // } else { + // // Add new address + // setUserAddress((prevAddresses) => [...prevAddresses, newAddress]); + // } + // setNewAddress({ + // address1: "", + // address2: "", + // city: "", + // state: "", + // zipcode: "" + // }); + // setShowAddressInputs(false); + // setEditingIndex(null); + // }; + + const deleteConformination = (index) => { + setdeleteconfirmination(false) + setUserAddress((prevAddresses) => prevAddresses.filter((_, i) => i !== dataIndex)); + setNewAddress({ + address1: "", + address2: "", + city: "", + state: "", + zipcode: "" + }) + } + + + const handleEditSellerUser = () => { + setUserdetail(!userdetail); + } + + + + const toProductMaster = () => { + navigate(`${subDirectory}admin-page/product`); + + } + const toggleAddressclose = () => { + setNewAddress({ + address1: "", + address2: "", + city: "", + state: "", + zipcode: "" + }); + setShowAddressInputs(false); + setShowCancel(false); + + + }; + + const navigate = useNavigate(); + const [loading, setLoading] = useState(false); + + + + const PageNavigate = () => { + + setLoading(true); + + setTimeout(() => { + navigate(`/dashboard`); + }, 700); + + }; + + // const handleNewAddressChange = (e) => { + // const { name, value } = e.target; + // setNewAddress((prevAddress) => ({ + // ...prevAddress, + // [name]: value + // })); + // }; + + + return ( + + <> + {loading && } + +
+ +
+ +
+
+
Contact Verification
+
Business Verification
+
Complete
+
+ +
+

hi , Paneer Selvam

+
+ {!userdetail && +
Edit
+ } + {userdetail && +
Close
+ } +
New
+
+ +
+ + +
+
+
Contact Verification
+
+ VERIFIED +
+
+ +
pannerselvam@gmail.com
+
9442603558
+
+ {userdetail && + <> +

Seller Info

+
+ <> + + + + + +
+
+ +
+ } + +
+
What products are you offering on Pozo?
+
+ +
+ AllCategories
ALL CATEGORIES
+
+
+ fooddelivery
FOOD DELIVERY
+
ONLY
+
+
+ grocery
GROCERY
+
ONLY
+
+
+ meat
MEAT
+
ONLY
+
+
+ book
BOOK
+
ONLY
+
+ +
+
+ +
+
+
Business Verification
+
VERIFIED
+
+ +
+ + +
+ + + +
+
+ + +
+
+
+ +
+
+
Business Verification
+
VERIFIED
+
+ + + +
+ {/* Business Address Section */} +
+
+
+ Business Address +
+ {!showAddressInputs ? ( +
+ New +
+ ) : ( +
+ Cancel +
+ )} +
+
+
+ {userAddress.map((item, index) => ( +
+
+

{item.address1}

+
handleEditAddress(index, item)}> + Edit +
+
+
{item.address2}
+
{item.city}
+
{item.state} - {item.zipcode}
+
+ ))} +
+
+
+ + {/* Pickup Address Section */} +
+
+
+ Pickup Address +
+ {!showPickupAddressInputs ? ( +
+ New +
+ ) : ( +
+ Cancel +
+ )} +
+
+
+ {pickupAddress.map((item, index) => ( +
+
+

{item.address1}

+
handleEditPickupAddress(index, item)}> + Edit +
+
+
{item.address2}
+
{item.city}
+
{item.state} - {item.zipcode}
+
+ ))} +
+
+
+ + {/* User Address Input Fields */} +
+
+ {showAddressInputs && ( +
+
+ + + + + { + let value = e.target.value; + value = value.replace(/\D/g, ''); // Remove non-numeric characters + setNewAddress((prevAddress) => ({ + ...prevAddress, + zipcode: value + })); + }} + placeholder="Zip Code" + className="AddinputZipcode" + pattern="[0-9]*" + inputMode="numeric" + maxLength="7" + /> +
+
+ {isEditing ? "Update" : "Submit"} +
+
+
+
+ )} +
+
+ + {/* Pickup Address Input Fields */} +
+
+ {showPickupAddressInputs && ( +
+
+ + + + + { + let value = e.target.value; + value = value.replace(/\D/g, ''); // Remove non-numeric characters + setNewPickupAddress((prevAddress) => ({ + ...prevAddress, + zipcode: value + })); + }} + placeholder="Pickup Zip Code" + className="AddinputZipcode" + pattern="[0-9]*" + inputMode="numeric" + maxLength="7" + /> +
+
+ {isEditing ? "Update" : "Submit"} +
+
+
+
+ )} +
+
+
+ +
+ +
+
COMPLETE
+
+ + + + + +
+ + + + +
+ +
Add New Product
+
Add Products using product available on pozo
+
+ +
+ +
Create your listing
+
+
+ Single Product
+
+ Bulk Product
+
+ +
+ +
+
+
Learn product listing
+
+ +
+
Learn More
+
+
+
Learn product listing
+
+ +
+
Learn More
+
+
+
+
+
+ + ) +} + +export default PozoPublicSellerRegister; \ No newline at end of file diff --git a/src/Components/Arc/Arc.jsx b/src/Components/Arc/Arc.jsx new file mode 100644 index 0000000..1799a84 --- /dev/null +++ b/src/Components/Arc/Arc.jsx @@ -0,0 +1,18 @@ +import React from 'react'; +import "../Arc/Arc.scss" + +const Arc = ({ value, maxValue }) => { + + const percentage = (value / maxValue) * 100; + + return ( +
+
+
+
+
₹{value}
+
+ ) +} + +export default Arc; \ No newline at end of file diff --git a/src/Components/Arc/Arc.scss b/src/Components/Arc/Arc.scss new file mode 100644 index 0000000..541f8fd --- /dev/null +++ b/src/Components/Arc/Arc.scss @@ -0,0 +1,35 @@ +// .progress-bar { +// display: flex; +// flex-direction: column; +// align-items: center; +// justify-content: center; +// position: relative; +// width: 200px; +// height: 100px; + +// &__circle { +// width: 100%; +// height: 100%; +// border-radius: 100px 100px 0 0; +// background: conic-gradient(purple 0%, +// purple calc(var(--percentage) * 1%), +// lightgray calc(var(--percentage) * 1%), +// lightgray 100%); +// position: relative; +// overflow: hidden; + +// &-inner { +// width: 100%; +// height: 100%; +// background: inherit; +// transform-origin: bottom center; +// } +// } + +// &__text { +// position: absolute; +// bottom: 10px; +// font-size: 1.5rem; +// font-weight: bold; +// } +// } \ No newline at end of file diff --git a/src/Components/Button/PozoPublicButton.jsx b/src/Components/Button/PozoPublicButton.jsx new file mode 100644 index 0000000..f070e7a --- /dev/null +++ b/src/Components/Button/PozoPublicButton.jsx @@ -0,0 +1,31 @@ +import React from 'react'; +import "../Button/PozoPublicButton.scss" + +const PozoPublicButton = ({ type, buttonText, handleSubmit, suffix, disabled, htmlType, prefix }) => { + const classNames = { + primary: 'primary_Button', + secondary: '', + tertiary: 'tertiary_Button', + disabled: 'disabled_Button', + danger: 'danger_Button', + }; + + const buttonClassName = classNames[type] || 'default_Button'; + + return ( +
+ +
+ ); +} + +export default PozoPublicButton; diff --git a/src/Components/Button/PozoPublicButton.scss b/src/Components/Button/PozoPublicButton.scss new file mode 100644 index 0000000..8b1c69c --- /dev/null +++ b/src/Components/Button/PozoPublicButton.scss @@ -0,0 +1,80 @@ +/* Base button styles */ +.primary_Button, +.secondary_Button, +.tertiary_Button, +.disabled_Button, +.danger_Button { + border: none; + cursor: pointer; + padding: 8px 18px; + width: max-content; + border-radius: 6px; + font-size: 12px; + font-family: 'Poppins', sans-serif; // Ensure the font is applied + display: flex; + align-items: center; + column-gap: 0.5rem; // Adjust column-gap for better spacing + transition: background-color 0.3s ease, transform 0.3s ease; + position: relative; + font-weight: 400; + letter-spacing: 0.2px; + text-transform: capitalize; + font-family: "GIlroy"; + font-weight: 500; + letter-spacing: 0.3px; +} + +/* Primary button styles */ +.primary_Button { + background-color: #1C1C1C; + color: #ffffff; +} + +.primary_Button:hover { + background-color: #000000; +} + +/* Secondary button styles */ +.secondary_Button { + background-color: #fff; + color: var(--secondayBTN-color); + border: 1px solid var(--secondayBTN-color); +} + +.secondary_Button:hover { + background-color: #ffffffc5; +} + +/* Tertiary button styles */ +.tertiary_Button { + background-color: var(--dark-red-color); + color: white; +} + +.tertiary_Button:hover { + background-color: #ce2929; +} + +/* Disabled button styles */ +.disabled_Button { + background-color: lightgray; + color: whitesmoke; + cursor: not-allowed; +} + +.disabled_Button:hover, +.disabled_Button:focus { + background-color: lightgray; + color: whitesmoke; +} + +/* Danger button styles */ +.danger_Button { + background-color: #F8CCCC80; + color: #e33333; + font-weight: 550; +} + +.danger_Button:hover { + background-color: #f8ccccb7; +} \ No newline at end of file diff --git a/src/Components/Charts/.bar-chart {.txt b/src/Components/Charts/.bar-chart {.txt new file mode 100644 index 0000000..7448f3b --- /dev/null +++ b/src/Components/Charts/.bar-chart {.txt @@ -0,0 +1,49 @@ +import React, { useRef, useEffect } from 'react'; + +const HalfCircleTubeChart = ({ data }) => { + const canvasRef = useRef(null); + + useEffect(() => { + const canvas = canvasRef.current; + const ctx = canvas.getContext('2d'); + const total = data.reduce((acc, value) => acc + value, 0); + const width = canvas.width; + const height = canvas.height; + const centerX = width / 2; + const centerY = height; + const outerRadius = Math.min(width, height) / 2 - 10; // Outer radius + const innerRadius = outerRadius - 20; // Inner radius + const gap = 2; // Space between arcs in degrees + + ctx.clearRect(0, 0, width, height); // Clear the canvas + + let startAngle = Math.PI; // Start from the leftmost point (180 degrees) + + data.forEach((value, index) => { + const sliceAngle = (value / total) * Math.PI; // Calculate the angle for each slice + const gapAngle = (gap / 180) * Math.PI; // Convert gap from degrees to radians + + // Draw outer arc (tube) + ctx.beginPath(); + ctx.moveTo(centerX, centerY); // Move to the center + ctx.arc(centerX, centerY, outerRadius, startAngle, startAngle + sliceAngle, false); // Draw outer arc + ctx.lineTo(centerX + innerRadius * Math.cos(startAngle + sliceAngle), centerY + innerRadius * Math.sin(startAngle + sliceAngle)); // Draw line to inner arc + ctx.arc(centerX, centerY, innerRadius, startAngle + sliceAngle, startAngle, true); // Draw inner arc + ctx.closePath(); + ctx.fillStyle = getColor(index); // Get a color for each slice + ctx.fill(); + + // Update the starting angle for the next slice, including the gap + startAngle += sliceAngle + gapAngle; + }); + }, [data]); + + const getColor = (index) => { + const colors = ['#FF6384', '#36A2EB', '#FFCE56', '#4BC0C0', '#9966FF', '#FF9F40']; + return colors[index % colors.length]; // Cycle through colors + }; + + return ; +}; + +export default HalfCircleTubeChart; diff --git a/src/Components/Charts/ArcChart.jsx b/src/Components/Charts/ArcChart.jsx new file mode 100644 index 0000000..dece9a6 --- /dev/null +++ b/src/Components/Charts/ArcChart.jsx @@ -0,0 +1,99 @@ +import React, { useState } from "react"; +// import './ArcChart.scss'; + +const HalfArcChart = ({ + values, + radius = 30, + strokeWidth = 10, + colors = ["green", "#EE89DF", "#F6CF7D", "#2196f3"], + gap = 5, // Gap between arcs +}) => { + const total = values.reduce((acc, val) => acc + val, 0); // Sum of all values + const normalizedRadius = radius - strokeWidth * 0.5; + const circumference = normalizedRadius * Math.PI; // Circumference for half-circle (πr) + + const calculateDashArray = (value) => (value / total) * circumference; + + const [hoveredIndex, setHoveredIndex] = useState(null); // State to track the hovered arc + + let cumulativeOffset = 0; + + return ( +
+ + {/* Background Path */} + + + {/* Arcs for each value */} + {values.map((value, index) => { + const dashArray = calculateDashArray(value); + const dashOffset = circumference - cumulativeOffset; + cumulativeOffset += dashArray + gap; // Update cumulative offset for next segment, including gap + + // Calculate the arc start point (always starting from the left side) + const startX = strokeWidth / 2; + const startY = radius; + + return ( + + setHoveredIndex(index)} // Set hovered index on mouse enter + onMouseLeave={() => setHoveredIndex(null)} // Clear hovered index on mouse leave + /> + + ); + })} + + {/* Display percentages */} + + {values.map((val) => `${Math.round((val / total) * 100)}%`).join(" / ")} + + + + {/* Tooltip */} + {hoveredIndex !== null && ( +
+ {`Value: ${values[hoveredIndex]}`} +
+ )} +
+ ); +}; + +export default HalfArcChart; diff --git a/src/Components/Charts/CircleChart.scss b/src/Components/Charts/CircleChart.scss new file mode 100644 index 0000000..12a1d8e --- /dev/null +++ b/src/Components/Charts/CircleChart.scss @@ -0,0 +1,8 @@ +@keyframes sliceIn { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} diff --git a/src/Components/Charts/GraphChart.jsx b/src/Components/Charts/GraphChart.jsx new file mode 100644 index 0000000..60d4b94 --- /dev/null +++ b/src/Components/Charts/GraphChart.jsx @@ -0,0 +1,361 @@ +import React, { useState, useEffect } from 'react'; +import './GraphChart.scss'; // For styling + +const GraphChart = ({ datasets }) => { + const [valueFormat, setValueFormat] = useState('inr'); + const [animate, setAnimate] = useState(false); + const [selectedDataset, setSelectedDataset] = useState(0); + const [tooltip, setTooltip] = useState({ show: false, x: 0, y: 0, label: '', value: '', date: '' }); + console.log(datasets,"datasets") + useEffect(() => { + setAnimate(true); + getYBenchmarks() + }, [selectedDataset]); + + console.log(selectedDataset,"selectedDataset") + + const formatToINR = (value) => { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 0, + }).format(value); + }; + + const formatToKValues = (value) => { + return value >= 1000 ? `${(value / 1000).toFixed(1)}K` : value; + }; + + const formatValue = (value) => { + return valueFormat === 'inr' ? formatToINR(value) : formatToKValues(value); + }; + + const handleMouseOver = (e, point) => { + setTooltip({ + show: true, + x: e.clientX, + y: e.clientY, + label: point.label, + value: formatValue(point.value), + date: point.date, + }); + }; + + const handleMouseOut = () => { + setTooltip({ ...tooltip, show: false }); + }; + + const getCurvePath = (data) => { + const maxValue = Math.max(...data.map(item => item.value)); + const svgHeight = 200; + const svgWidth = 400; + const gap = svgWidth / (data.length - 1); + + return data.map((point, index) => { + const x = index * gap; + const y = svgHeight - (point.value / maxValue) * svgHeight; + + if (index === 0) return `M ${x},${y}`; + + const prevX = (index - 1) * gap; + const prevY = svgHeight - (data[index - 1].value / maxValue) * svgHeight; + const controlPointX = (prevX + x) / 2; + + return `C ${controlPointX},${prevY} ${controlPointX},${y} ${x},${y}`; + }).join(' '); + }; + + // const renderDots = (data, color) => { + // const maxValue = Math.max(...data.map(item => item.value)); + // const svgHeight = 200; + // const svgWidth = 400; + // const gap = svgWidth / (data.length - 1); + + // return data.map((point, index) => { + // const x = index * gap; + // const y = svgHeight - (point.value / maxValue) * svgHeight; + + // return ( + // + // handleMouseOver(e, point)} + // onMouseOut={handleMouseOut} + // /> + // + // {formatValue(point.value)} ({item.date}) + // + // + // ); + // }); + // }; + + + const renderDots = (data, color) => { + const maxValue = Math.max(...data.map(item => item.value)); + const svgHeight = 200; + const svgWidth = 400; + const gap = svgWidth / (data.length - 1); + + return data.map((point, index) => { + const x = index * gap; + const y = svgHeight - (point.value / maxValue) * svgHeight; + + return ( + + handleMouseOver(e, point)} + onMouseOut={handleMouseOut} + /> + + {formatValue(point.value)} + {/* ({point.date}) */} + + + ); + }); +}; + + + + const renderArea = (data, color) => { + const maxValue = Math.max(...data.map(item => item.value)); + const svgHeight = 200; + const svgWidth = 400; + const gap = svgWidth / (data.length - 1); + + const points = data.map((point, index) => { + const x = index * gap; + const y = svgHeight - (point.value / maxValue) * svgHeight; + return `${x},${animate ? y : svgHeight}`; + }); + + return `M 0,${svgHeight} L ${points.join(' L ')} L ${svgWidth},${svgHeight} Z`; + }; + + const getYBenchmarks = () => { + // Index of the dataset you want to access + const maxValue = Math.max(...datasets[selectedDataset]?.data.map(item => item.value) || []); const step = maxValue / 5; + return Array.from({ length: 6 }, (_, i) => Math.round(i * step)).reverse(); + }; + + + const calculateOverallAmount = () => { + return datasets.reduce((total, dataset) => { + return total + dataset.data.reduce((subTotal, item) => subTotal + item.value, 0); + }, 0); + }; + + const isAllValuesSelected = selectedDataset === datasets.length; + + + const findHighest = () => { + const allValuesWithIndex = datasets.flatMap((dataset, datasetIndex) => + dataset.data.map((item, index) => ({ + value: item.value, + datasetIndex, + index // index within the dataset + })) + ); + + // Find the highest value + const highestValueEntry = allValuesWithIndex.reduce((max, entry) => + entry.value > max.value ? entry : max, + allValuesWithIndex[0] // initial max value entry + ); + + // Get the index of the highest value + const highestValueIndex = { + datasetIndex: highestValueEntry.datasetIndex, + dataIndex: highestValueEntry.index + }; + +setSelectedDataset(highestValueEntry.datasetIndex) + + + } + + + return ( +
+
+ + +
+ + +
+
+ +
+
{tooltip.label}
+
{tooltip.value}
+
{tooltip.date}
+
+ +
+
+
+
+ {getYBenchmarks().map((value, index) => ( +
{formatValue(value)}
+ ))} +
+ +
+ + + {isAllValuesSelected ? ( + datasets.map((dataset, index) => ( + + + + {renderDots(dataset.data, dataset.color)} + + )) + ) : ( + + + + {renderDots(datasets[selectedDataset].data, datasets[selectedDataset].color)} + + )} + + + +
+ {isAllValuesSelected ? ( + datasets[0].data.map((item, index) => ( + {item.label} + )) + ) : ( + datasets[selectedDataset].data.map((item, index) => ( + {item.label} + )) + )} +
+
+
+
+ +
+ + + {datasets.map((dataset, index) => ( + + ))} +
+ +
+
+ ); +}; + +export default GraphChart; diff --git a/src/Components/Charts/GraphChart.scss b/src/Components/Charts/GraphChart.scss new file mode 100644 index 0000000..8e1e23e --- /dev/null +++ b/src/Components/Charts/GraphChart.scss @@ -0,0 +1,223 @@ +.curve-graph-container { + display: flex; + flex-direction: column; + align-items: center; + // width: 100vh; + margin: 1px 0rem; + font-family: "Gilroy" !important; + + + .grtooltip { + background-color: #E33333; + } + + + .benchmark-labels { + display: flex; + flex-direction: column; + justify-content: space-between; + height: inherit; + font-size: 11px; + text-align: right; + margin-right: 10px; + + + } + + .ttlAmntMas { + display: flex; + flex-direction: column; + font-size: 10px; + } + + .ttlAmnt { + font-size: 35px; + font-family: "Gilroy"; + color: #242424; + font-weight: 600; + } + + + .benchmark-label { + color: #333; + } + + .curve-graph-container svg { + // background: repeating-linear-gradient( + // 90deg, + // rgb(255, 255, 255), + // rgb(255, 255, 255) 10px, + // #ecb7b7 1px, + // #f8e3e3 11px + // ); + // background-image: linear-gradient(90deg, #f8e3e3 20%, #ffffff 20%, #ffffff 50%, #f8e3e3 50%, #f8e3e3 70%, #ffffff 70%, #ffffff 100%); + // background-size: 10.00px 10.00px; + + background-image: linear-gradient(90deg, #ebebeb 20%, #ffffff 20%, #ffffff 50%, #ebebeb 50%, #ebebeb 70%, #ffffff 70%, #ffffff 100%); + background-size: 10.00px 10.00px; + + // border: 1px solid #ccc; + position: relative; + } + + .labels { + display: flex; + justify-content: space-between; + width: inherit; + margin-top: 10px; + } + + .label { + font-size: 11px; + color: #333; + } + + + + .tabs { + display: flex; + margin-bottom: 20px; + flex-direction: column; + row-gap: 0.5rem; + width: max-content; + + button { + + + .valperamt { + display: flex; + align-items: start; + flex-direction: column; + + a { + font-size: 10.5px; + text-wrap: nowrap; + } + + span { + font-size: 19px; + font-weight: 600; + + } + } + + } + } + + .tab { + display: flex; + align-items: center; + // margin-right: 15px; + padding: 5px 10px; + cursor: pointer; + border: none; + font-family: "Gilroy"; + background: none; + font-size: 16px; + + &.active { + // font-weight: bold; + color: #E33333; + // border-bottom: 2px solid #333; // Example of active tab styling + } + + &:hover { + opacity: 0.8; // Add some hover effect + } + } + + + + .inrKtabMaster { + display: flex; + + } + + .inrKtab { + display: flex; + align-items: center; + margin-right: 15px; + padding: 5px 10px; + height: 30px; + cursor: pointer; + background-color: #ffffff3f; + border-radius: 6px; + border: none; + font-family: "Gilroy"; + font-size: 16px; + + &.active { + // font-weight: bold; + color: #E33333; + background-color: #e333331c; + + // border-bottom: 2px solid #333; // Example of active tab styling + } + + &:hover { + opacity: 0.8; // Add some hover effect + } + } + + + + text { + font-size: 13px; + } + + + .area { + animation: rise 1s forwards; + /* Animate background fill */ + } + + +} + +@keyframes rise { + from { + transform: translateY(100%); + /* Start from the bottom */ + } + + to { + transform: translateY(0); + /* Rise to the final position */ + } +} + +.curve { + animation: draw 3s forwards; + /* Animate curved line drawing */ +} + +@keyframes draw { + from { + stroke-dashoffset: 1000; + /* Start from the right */ + } + + to { + stroke-dashoffset: 0; + /* Complete the drawing */ + } +} + + + +@media (max-width:768px) { + + .curve-grp-head { + justify-content: unset !important; + gap: 5rem; + } + + .cruvGrphSwitchtabs { + flex-wrap: wrap; + row-gap: 1rem; + + .tabs { + flex-direction: row !important; + } + } +} \ No newline at end of file diff --git a/src/Components/Charts/HorBar2CHart.scss b/src/Components/Charts/HorBar2CHart.scss new file mode 100644 index 0000000..f99b703 --- /dev/null +++ b/src/Components/Charts/HorBar2CHart.scss @@ -0,0 +1,47 @@ + .HorBarHead2 { + display: flex; + flex-direction: column; + font-family: "Gilroy" !important; + } + + + .HBDiv2 { + display: flex; + flex-direction: row; + align-items: center; + animation: shutter-in-lefte 3s ease 0s 1 normal none; + + } + + .HBLabel2 { + font-weight: 500 !important; + width: 40px !important; + } + + .HBContainer2 { + display: flex; + align-items: center; + flex: 1; + // animation: shutter-in-lefte 3s ease 0s 1 normal none; + + } + + .animationHB { + animation: shutter-in-left 0.5s ease-in 0s 1 normal forwards; + width: 100%; + } + + @keyframes shutter-in-left { + + 0% { + transform: rotateY(100deg); + transform-origin: left; + opacity: 0; + } + + 100% { + transform: rotateY(0); + transform-origin: left; + opacity: 1; + } + } \ No newline at end of file diff --git a/src/Components/Charts/HorBar2Chart.jsx b/src/Components/Charts/HorBar2Chart.jsx new file mode 100644 index 0000000..8a730ed --- /dev/null +++ b/src/Components/Charts/HorBar2Chart.jsx @@ -0,0 +1,24 @@ +import React from 'react'; +import "./HorBar2Chart.scss" +const HorizontalBarChart = ({ data, maxValue }) => { + return ( +
+
+ {data.map((item, index) => ( +
+
{item?.label}
+ +
+
+
₹{item?.value1}
+
₹{item?.value2}
+
+
+
+ ))} +
+
+ ); +}; + +export default HorizontalBarChart; diff --git a/src/Components/Charts/HorBarChart.jsx b/src/Components/Charts/HorBarChart.jsx new file mode 100644 index 0000000..0a3775e --- /dev/null +++ b/src/Components/Charts/HorBarChart.jsx @@ -0,0 +1,43 @@ +import React from 'react'; +import './HorBarChart.scss'; // Import the CSS file for styling + +const BarChart = ({ data }) => { + const maxValue = Math.max(...data.map(item => item.value)); // Find the maximum value for scaling + + return ( +
+
+
+ + {data.map((item, index) => ( + <> +
+ +
{item.label}
+
+ + {/*
{item.label}
*/} + +
+ +
+ +
+ +
{item.value}
+ +
+
+ + + ))} + +
+ +
+ +
+ ); +}; + +export default BarChart; diff --git a/src/Components/Charts/HorBarChart.scss b/src/Components/Charts/HorBarChart.scss new file mode 100644 index 0000000..2fab40d --- /dev/null +++ b/src/Components/Charts/HorBarChart.scss @@ -0,0 +1,38 @@ +.HorBarHead { + margin: 1rem 0rem; + font-family: "Gilroy" !important; + + .HBDiv { + margin: 0.5rem 0rem; + } + + .HBLabel { + font-size: 11px; + font-family: "Gilroy"; + color: #464646; + } + + .HBContainer { + display: flex; + justify-content: space-between; + align-items: center; + row-gap: 1rem; + animation: shutter-in-left 2.5s ease 0s 1 normal none; + } + + @keyframes shutter-in-left { + 0% { + transform: rotateY(100deg); + transform-origin: left; + opacity: 0; + width: 0; + } + + 100% { + transform: rotateY(0); + transform-origin: left; + opacity: 1; + width: 100%; + } + } +} diff --git a/src/Components/Charts/HorBarChart3.jsx b/src/Components/Charts/HorBarChart3.jsx new file mode 100644 index 0000000..e062c45 --- /dev/null +++ b/src/Components/Charts/HorBarChart3.jsx @@ -0,0 +1,37 @@ +import React from 'react'; +import './HorBarChart3.scss'; + +const BarChart3 = ({ data }) => { + const sortedData = [...data].sort((a, b) => b.value - a.value); + const maxValue = Math.max(...sortedData.map(item => item.value)); + + return ( +
+
+
+ {sortedData.map((item, index) => ( +
+
+
{item.label}
+
+
+
+ ₹{item.value} +
+
+
+ ))} +
+
+
+ ); +}; + +export default BarChart3; diff --git a/src/Components/Charts/HorBarChart3.scss b/src/Components/Charts/HorBarChart3.scss new file mode 100644 index 0000000..fba7239 --- /dev/null +++ b/src/Components/Charts/HorBarChart3.scss @@ -0,0 +1,67 @@ +.Horbarchart3 { + font-family: "Gilroy" !important; + + .HorBarHead3 { + .HBDiv3 { + margin-bottom: 10px; + } + + .HBContainer3 { + display: flex; + align-items: center; + padding: 0.1rem 0rem; + justify-content: space-between; + } + + .HBLabel3 { + margin-right: 10px; + font-size: 10px; + width: 70px; + text-align: right; + } + + .HBBarContainer3 { + position: relative; + flex-grow: 1; + height: 20px; + } + + .HBBar3 { + position: relative; + display: flex; + align-items: center; + } + + .HBValue3 { + + color: #464646; + font-size: 11px; + padding: 0rem 4px; + font-weight: 600; + display: flex; + align-items: center; + } + } + + .HBBarContainer3 { + animation: shutter-in-left 2s linear 0s 1 normal forwards; + width: 100%; + + } + + @keyframes shutter-in-left { + + 0% { + transform: rotateY(-100deg); + transform-origin: left; + opacity: 0; + } + + 100% { + transform: rotateY(0); + transform-origin: left; + opacity: 1; + } + + } +} \ No newline at end of file diff --git a/src/Components/Charts/PozoGraphchart.jsx b/src/Components/Charts/PozoGraphchart.jsx new file mode 100644 index 0000000..555d652 --- /dev/null +++ b/src/Components/Charts/PozoGraphchart.jsx @@ -0,0 +1,80 @@ +// PozoGraphchart.jsx +import React from 'react'; +import PozoPublicBarchart from "../../Components/Charts/PozoPublicBarchart.jsx"; // Adjust path as needed +import HalfArcChart from './ArcChart.jsx'; +import HorBarChart from './HorBarChart.jsx'; +import HorizontalBarChart from './HorBar2Chart.jsx'; +import PozoPublicPieChart from "./PozoPublicPieChart.jsx" +const PozoGraphchart = () => { + const chartData = [ + { month: "Jan", value1: 30, value2: 30, value3: 20 }, + { month: "Feb", value1: 70, value2: 10, value3: 40 }, + { month: "Mar", value1: 40, value2: 20, value3: 60 }, + { month: "Apr", value1: 60, value2: 50, value3: 30 }, + { month: "May", value1: 80, value2: 60, value3: 20 }, + { month: "Jun", value1: 90, value2: 70, value3: 50 }, + { month: "Jul", value1: 70, value2: 80, value3: 30 }, + { month: "Aug", value1: 60, value2: 90, value3: 40 }, + { month: "Sep", value1: 100, value2: 20, value3:70 }, + { month: "Oct", value1: 80, value2: 60, value3: 50 }, + { month: "Nov", value1: 90, value2: 30, value3: 40 }, + { month: "Dec", value1:90, value2: 90, value3: 0 }, + ]; + + const data = [ + { label: 'INDIA', value: 100 }, + { label: 'SINGAPORE', value: 200 }, + { label: 'DUBAI', value: 300 }, + { label: 'DUBAI', value: 400 }, + ]; + + const data2 = [ + { label: "Jan", value1: 40, value2: 60 }, + { label: "Feb", value1: 30, value2: 70 }, + { label: "Mar", value1: 50, value2: 50 }, + { label: "Apr", value1: 20, value2: 80 }, + ]; + const data4 = [30, 70,50, 60,40,150,250]; + const maxValue = 100; + const values = [25, 35, 20, 20]; + const staticStrokeValues = [0, 25, 50, 75, 100]; + + const data6 = [ + { value: 300, color: '#EE89DF', name:"Pozo Cart", date: "2024-09-01" }, + { value: 180, color: '#A29BF2' , name:"Grocery", date: "2024-09-02" }, + { value: 120, color: '#F6CF7D', name:"Food Delivery", date: "2024-09-03" }, + { value: 300, color: '#EE89DF', name:"Pozo Cart", date: "2024-09-01" }, + { value: 180, color: '#A29BF2' , name:"Grocery", date: "2024-09-02" }, + { value: 120, color: '#F6CF7D', name:"Food Delivery", date: "2024-09-03"}, + + ]; + + return ( + + <> +
+ +
+ + + + + {/* */} + + +
+ {/* */} + + +
+ + + ); +}; + +export default PozoGraphchart; diff --git a/src/Components/Charts/PozoPublicBarchart.jsx b/src/Components/Charts/PozoPublicBarchart.jsx new file mode 100644 index 0000000..2625208 --- /dev/null +++ b/src/Components/Charts/PozoPublicBarchart.jsx @@ -0,0 +1,92 @@ +import React from 'react'; +import './PozoPublicBarchart.scss'; // Adjust path based on your folder structure + +const PozoPublicBarchart = ({ data }) => { + const numberOfLines = 8; // Set how many vertical lines you want per bar + const maxValue = Math.max(...data.flatMap(bar => [bar.value1, bar.value2, bar.value3])); // Calculate the max value across all segments + const maxHeight = 200; // Define a maximum height for the bars (in pixels) + // const scaleFactor = maxHeight / maxValue; // Calculate scale factor to scale bar heights + const scaleFactor = maxHeight / maxValue; + console.log(scaleFactor, "scaleFactorscaleFactor") + + return ( +
+ {/* Benchmark Scale */} +
+ {Array.from({ length: 6 }, (_, idx) => { + + console.log(idx, _, "idxidx") + console.log(maxValue - (maxValue / 5) * idx, "idxidx2222222") + + const scaleValue = maxValue - (maxValue / 5) * idx; // Calculate the scale value + return ( +
+ {scaleValue} +
+ ); + })} +
+ +
+ {data.map((bar, index) => { + return ( +
+
+ {/* Render multiple vertical lines */} + {[...Array(numberOfLines)].map((_, lineIndex) => ( +
+ ))} + +
+ {/*
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
*/} + +
+
+ {/*
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
*/} +
+
+
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
+
+
+
{bar.month}
{/* Display month label */} +
+ ); + })} +
+
+ ); +}; + +export default PozoPublicBarchart; diff --git a/src/Components/Charts/PozoPublicBarchart.scss b/src/Components/Charts/PozoPublicBarchart.scss new file mode 100644 index 0000000..3e46333 --- /dev/null +++ b/src/Components/Charts/PozoPublicBarchart.scss @@ -0,0 +1,138 @@ +.bar-chart-container { + display: flex; + height: inherit; + // overflow: scroll; + align-items: flex-end; + font-family: "Gilroy" !important; + /* Align bars to the bottom */ +} + +.benchmark-scale { + display: flex; + height: inherit; + flex-direction: column; + justify-content: space-between; + padding-right: 10px; + /* Space between scale and bars */ +} + +.scale-value { + width: 30px; + /* Width of the scale */ + position: relative; + display: flex; + align-items: flex-end; + /* Align text to bottom */ + color: #555; + font-size: 14px; + font-weight: 600; + /* Color of scale text */ +} + +/* Adjust the bar-chart styles */ +.bar-chart { + height: 103%; + display: flex; + justify-content: space-around; + align-items: flex-end; + // height: max-content; /* Set a fixed height for the chart */ + width: calc(100% - 50px); + /* Reduce width for the scale */ +} + +.bar-container { + background-color: #EAEAEA; + text-align: center; + height: 100%; + width: 25px; + position: relative; + /* Needed for tooltip positioning */ +} + +.bar1 { + width: 25px; + background-color: #EAEAEA; + display: flex; + height: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + flex-direction: column-reverse; + position: relative; + top: 0; + /* Needed for tooltip */ +} + +/* Vertical Line Overlay Styling */ +.vr-line { + position: absolute; + width: 2px; + /* Width of each vertical line */ + background-color: rgba(255, 255, 255, 0.377); + border-top-left-radius: 8px; + border-top-right-radius: 8px; + height: 100%; + /* Span the full height of the bar */ + z-index: 1; + /* Ensure it appears on top of the segments */ +} + +/* Styling for each bar segment */ +.bar-segment { + width: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + position: relative; + /* For tooltip positioning */ + transition: background-color 0.3s, transform 0.3s; + /* For hover effect */ +} + +/* Colors for each segment */ +.segment1 { + background-color: #F6CF7D; +} + +.segment2 { + background-color: #EE89DF; +} + +.segment3 { + background-color: #978FED; +} + +/* Tooltip Styling */ +.tooltip { + position: absolute; + left: 50%; + bottom: 100%; + transform: translateX(-50%); + padding: 5px 8px; + background-color: black; + color: white; + font-size: 12px; + border-radius: 4px; + opacity: 0; + pointer-events: none; + transition: opacity 0.3s; + white-space: nowrap; + z-index: 260 !important; + text-align: left; + height: max-content; + /* Make sure tooltip appears above everything */ +} + +/* Hover Effect: Show tooltip */ +.bar-container:hover .tooltip { + opacity: 1; +} + +.bar-container:hover { + transform: translateY(-5px); + /* Slightly move the segment on hover */ +} + +.bar-label { + margin-top: 5px; + font-size: 12px; + /* Space between label and bar */ +} \ No newline at end of file diff --git a/src/Components/Charts/PozoPublicBarchart2.jsx b/src/Components/Charts/PozoPublicBarchart2.jsx new file mode 100644 index 0000000..f7072f3 --- /dev/null +++ b/src/Components/Charts/PozoPublicBarchart2.jsx @@ -0,0 +1,115 @@ +import React from 'react'; +import "./PozoPublicBarchart2.scss"; // Adjust path based on your folder structure + +const PozoPublicBarchart = ({ data }) => { + const numberOfLines = 8; // Set how many vertical lines you want per bar + const maxValue = Math.max(...data.flatMap(bar => [bar.value1, bar.value2, bar.value3])); + + const maxHeight = 200; // Define a maximum height for the bars (in pixels) + const scaleFactor = maxHeight / maxValue; // Calculate scale factor to scale bar heights + + return ( +
+ {/* Benchmark Scale */} +
+ {Array.from({ length: 6 }, (_, idx) => { + const scaleValue = Math.round((maxValue / 5) * (5 - idx)); // Ensure the benchmark aligns with the max value + return ( +
+ {scaleValue} +
+ ); + })} +
+ +
+ {data.map((bar, index) => { + + const value1Height = bar.value1 * scaleFactor; + const value2Height = bar.value2 * scaleFactor; + const value3Height = bar.value3 * scaleFactor; + + console.log(value1Height, 'value1Height111111') + console.log(value2Height, 'value1Height222222') + console.log(value3Height, 'value1Height3333333') + + return ( +
+
+ {/* Render multiple vertical lines */} + {[...Array(numberOfLines)].map((_, lineIndex) => ( +
+ ))} + + {/* Independent Bar segments starting from 0 */} +
+
+ + {/*
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
*/} +
+
+ {/*
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
*/} +
+
+
+
Value 1: {bar.value1}
+
Value 2: {bar.value2}
+
Value 3: {bar.value3}
+
+
+
+
{bar.month}
{/* Display month label */} +
+ ); + })} +
+
+ ); +}; + +export default PozoPublicBarchart; diff --git a/src/Components/Charts/PozoPublicBarchart2.scss b/src/Components/Charts/PozoPublicBarchart2.scss new file mode 100644 index 0000000..83cfc14 --- /dev/null +++ b/src/Components/Charts/PozoPublicBarchart2.scss @@ -0,0 +1,295 @@ +.bar-chart-container { + display: flex; + height: inherit; + // overflow: scroll; + align-items: flex-end; + /* Align bars to the bottom */ + font-family: "Gilroy" !important; +} + +.benchmark-scale { + display: flex; + height: inherit; + flex-direction: column; + justify-content: space-between; + padding-right: 10px; + /* Space between scale and bars */ +} + +.scale-value { + width: 30px; + /* Width of the scale */ + position: relative; + display: flex; + align-items: flex-end; + /* Align text to bottom */ + color: #555; + font-size: 14px; + font-weight: 600; + /* Color of scale text */ +} + +/* Adjust the bar-chart styles */ +.bar-chart { + height: 103%; + display: flex; + justify-content: space-around; + align-items: flex-end; + // height: max-content; /* Set a fixed height for the chart */ + width: calc(100% - 50px); + /* Reduce width for the scale */ +} + +.bar-container { + background-color: #EAEAEA; + text-align: center; + height: inherit; + width: 25px; + position: relative; + /* Needed for tooltip positioning */ +} + +.bar { + width: 25px; + background-color: #EAEAEA; + display: flex; + height: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + flex-direction: column-reverse; + position: relative; + top: 0; + /* Needed for tooltip */ +} + +/* Vertical Line Overlay Styling */ +.vr-line { + position: absolute; + width: 2px; + /* Width of each vertical line */ + background-color: rgba(255, 255, 255, 0.377); + border-top-left-radius: 8px; + border-top-right-radius: 8px; + height: 100%; + /* Span the full height of the bar */ + z-index: 1; + /* Ensure it appears on top of the segments */ +} + +/* Styling for each bar segment */ +.bar-segment { + width: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + position: relative; + /* For tooltip positioning */ + transition: background-color 0.3s, transform 0.3s; + /* For hover effect */ +} + +/* Colors for each segment */ +.segment1 { + background-color: #F6CF7D; +} + +.segment2 { + background-color: #EE89DF; +} + +.segment3 { + background-color: #978FED; +} + +/* Tooltip Styling */ +.tooltip { + position: absolute; + left: 50%; + bottom: 100%; + transform: translateX(-50%); + padding: 5px 8px; + background-color: black; + color: white; + font-size: 12px; + border-radius: 4px; + opacity: 0; + pointer-events: none; + transition: opacity 0.3s; + white-space: nowrap; + z-index: 260 !important; + text-align: left; + height: max-content; + /* Make sure tooltip appears above everything */ +} + +/* Hover Effect: Show tooltip */ +.bar-container:hover .tooltip { + opacity: 1; +} + +.bar-container:hover { + transform: translateY(-5px); + /* Slightly move the segment on hover */ +} + +.bar-label { + margin-top: 15px; + font-size: 12px; + /* Space between label and bar */ +} + +.bar-container { + height: 100%; + animation: shutter-in-bottom 2.5s ease 0s 1 alternate forwards; +} + +@keyframes shutter-in-bottom { + + 0% { + transform: rotateX(100deg); + transform-origin: bottom; + opacity: 0; + } + + 100% { + transform: rotateX(0); + transform-origin: bottom; + opacity: 1; + } +} + + +// .bar-chart-container { +// display: flex; +// height: 100vh; +// overflow: scroll; +// align-items: flex-end; +// /* Align bars to the bottom */ +// } + +// .benchmark-scale { +// display: flex; +// flex-direction: column; +// justify-content: space-between; +// padding-right: 10px; +// /* Space between scale and bars */ +// } + +// .scale-value { +// width: 30px; +// /* Width of the scale */ +// position: relative; +// display: flex; +// align-items: flex-end; +// /* Align text to bottom */ +// color: #555; +// /* Color of scale text */ +// } + +// /* Adjust the bar-chart styles */ +// .bar-chart { +// display: flex; +// justify-content: space-around; +// align-items: flex-end; +// height: max-content; +// /* Set a fixed height for the chart */ +// width: calc(100% - 50px); +// /* Reduce width for the scale */ +// } + +// .bar-container { +// background-color: #EAEAEA; +// text-align: center; +// position: relative; +// /* Needed for tooltip positioning */ +// } + +// .bar { +// width: 25px; +// background-color: #EAEAEA; +// display: flex; +// height: 100%; +// border-top-left-radius: 8px; +// border-top-right-radius: 8px; +// flex-direction: column-reverse; +// position: relative; +// top: 0px; +// /* Needed for tooltip */ +// } + +// /* Vertical Line Overlay Styling */ +// .vr-line { +// position: absolute; +// width: 2px; +// /* Width of each vertical line */ +// background-color: rgba(255, 255, 255, 0.377); +// border-top-left-radius: 8px; +// border-top-right-radius: 8px; +// height: 100%; +// /* Span the full height of the bar */ +// z-index: 1; +// /* Ensure it appears on top of the segments */ +// } + +// /* Styling for each bar segment */ +// .bar-segment { +// width: 100%; +// border-top-left-radius: 8px; +// border-top-right-radius: 8px; +// position: relative; +// /* For tooltip positioning */ +// transition: background-color 0.3s, transform 0.3s; +// /* For hover effect */ +// } + +// /* Colors for each segment */ +// .segment1 { +// background-color: #F6CF7D; +// } + +// .segment2 { +// background-color: #EE89DF; +// } + +// .segment3 { +// background-color: #978FED; +// } + +// /* Tooltip Styling */ +// .tooltip { +// position: absolute; +// left: 50%; +// bottom: 100%; +// transform: translateX(-50%); +// padding: 5px; +// background-color: black; +// color: white; +// font-size: 12px; +// border-radius: 4px; +// opacity: 0; +// pointer-events: none; +// transition: opacity 0.3s; +// white-space: nowrap; +// z-index: 26; +// /* Make sure tooltip appears above everything */ +// } + +// /* Hover Effect: Show tooltip */ +// .bar-segment:hover .tooltip { +// opacity: 1; +// } + +// .bar-segment:hover { +// transform: translateY(-5px); +// /* Slightly move the segment on hover */ +// } + +// .bar-label { +// margin-top: 40px; +// /* Space between label and bar */ +// } + +// .hrLineforHighestValue { +// position: absolute; +// right: 0; +// width: 95vw; +// } \ No newline at end of file diff --git a/src/Components/Charts/PozoPublicPieChart.jsx b/src/Components/Charts/PozoPublicPieChart.jsx new file mode 100644 index 0000000..7cdaafe --- /dev/null +++ b/src/Components/Charts/PozoPublicPieChart.jsx @@ -0,0 +1,196 @@ + import React, { useState, useEffect } from "react"; + import "./PozoPublicPiechart.scss" + + // Helper function to calculate the arcs for the donut chart + const calculateArcs = (data) => { + const total = data.reduce((acc, item) => acc + item.value, 0); + let cumulativePercentage = 0; + + return data.map((item) => { + const percentage = (item.value / total) * 100; + const startAngle = cumulativePercentage; + const endAngle = cumulativePercentage + percentage; + cumulativePercentage = endAngle; + + const largeArcFlag = percentage > 50 ? 1 : 0; + + const outerRadius = 1; // Outer radius for the arc + const innerRadius = 0.7; // Inner radius for the hollow part + + // Calculate the outer arc points + const startXOuter = outerRadius * Math.cos((2 * Math.PI * startAngle) / 100); + const startYOuter = outerRadius * Math.sin((2 * Math.PI * startAngle) / 100); + const endXOuter = outerRadius * Math.cos((2 * Math.PI * endAngle) / 100); + const endYOuter = outerRadius * Math.sin((2 * Math.PI * endAngle) / 100); + + // Calculate the inner arc points + const startXInner = innerRadius * Math.cos((2 * Math.PI * startAngle) / 100); + const startYInner = innerRadius * Math.sin((2 * Math.PI * startAngle) / 100); + const endXInner = innerRadius * Math.cos((2 * Math.PI * endAngle) / 100); + const endYInner = innerRadius * Math.sin((2 * Math.PI * endAngle) / 100); + + // Create the path for the arc (outer and inner) + const pathData = [ + `M ${startXOuter} ${startYOuter}`, // Move to start of outer arc + `A ${outerRadius} ${outerRadius} 0 ${largeArcFlag} 1 ${endXOuter} ${endYOuter}`, // Outer arc + `L ${endXInner} ${endYInner}`, // Line to inner arc + `A ${innerRadius} ${innerRadius} 0 ${largeArcFlag} 0 ${startXInner} ${startYInner}`, // Inner arc + `Z`, // Close the path + ].join(" "); + + return { + pathData, + color: item.color, + value: item.value, + percentage: percentage.toFixed(2), + name: item.name, + date: item.date, // Add date to return object + }; + + + }); + }; + + const PieChart = ({ data }) => { + const [tooltip, setTooltip] = useState({ x: 0, y: 0, content: '', visible: false }); + const [filter, setFilter] = useState(""); // State to hold the filter criteria + const [dateFilter, setDateFilter] = useState(""); // State to hold the date filter + const [animatedValues, setAnimatedValues] = useState(data.map(item => ({ ...item, animatedValue: 0 }))); // State for animated values + + // Function to filter data + const filteredData = animatedValues.filter(item => + item.name.toLowerCase().includes(filter.toLowerCase()) && + (!dateFilter || item.date.includes(dateFilter)) // Filter by date + ); + + const handleMouseOver = (event, arc) => { + setTooltip({ + x: event.clientX + 10, + y: event.clientY - 20, + content: `${arc.name}: ₹${arc.value} (${arc.percentage}%) on ${arc.date}`, + visible: true, + }); + }; + + const handleMouseOut = () => { + setTooltip((prev) => ({ ...prev, visible: false })); + }; + + const arcs = calculateArcs(filteredData); + console.log(arcs, "yusgd"); + // Animate values from 0 to actual value + useEffect(() => { + const animationDuration = 2000; // Animation duration in ms + const interval = 50; // Interval for the animation + const step = Math.floor(animationDuration / interval); + + console.log("Animated Values:", animatedValues); + + const newValues = animatedValues.map(item => ({ + ...item, + animatedValue: 0, // Start from 0 + })); + + let animationFrame = 0; + const intervalId = setInterval(() => { + if (animationFrame < step) { + setAnimatedValues(newValues.map(item => ({ + ...item, + animatedValue: Math.round((item.value / step) * (animationFrame + 0)), // Increment the value + }))); + animationFrame++; + } else { + clearInterval(intervalId); // Stop the animation when complete + setAnimatedValues(newValues.map(item => ({ ...item, animatedValue: item.value }))); // Set to final value + } + }, interval); + + return () => clearInterval(intervalId); // Cleanup interval on unmount + }, []); + + return ( +
+
+ {/* setFilter(e.target.value)} + style={{ marginBottom: '1rem', padding: '8px', borderRadius: '4px', border: '1px solid #ccc' }} + /> + setDateFilter(e.target.value)} + style={{ marginBottom: '1rem', padding: '8px', borderRadius: '4px', border: '1px solid #ccc' }} + /> */} + + + {arcs.map((arc, index) => ( + handleMouseOver(e, arc)} + onMouseOut={handleMouseOut} + /> + ))} + +
+ +
+ {arcs.map((arc, index) => ( +

+

+ {arc.name} +

₹{animatedValues[index]?.animatedValue}

+

({arc.percentage}%)

+

+ ))} +
+ + {tooltip.visible && ( +
+
+ {tooltip.content} +
+ )} +
+ ); + }; + + export default PieChart; diff --git a/src/Components/Charts/PozoPublicPiechart.scss b/src/Components/Charts/PozoPublicPiechart.scss new file mode 100644 index 0000000..9891314 --- /dev/null +++ b/src/Components/Charts/PozoPublicPiechart.scss @@ -0,0 +1,3 @@ +.piechartsize { + width: 100px; +} \ No newline at end of file diff --git a/src/Components/Charts/import React from 'react';.txt b/src/Components/Charts/import React from 'react';.txt new file mode 100644 index 0000000..a6b7234 --- /dev/null +++ b/src/Components/Charts/import React from 'react';.txt @@ -0,0 +1,73 @@ +import React from 'react'; +import './PozoPublicBarchart.scss'; // Adjust path based on your folder structure + +const PozoPublicBarchart = ({ data }) => { + const numberOfLines = 8; // Set how many vertical lines you want per bar + const maxValue = Math.max(...data.flatMap(bar => [bar.value1, bar.value2, bar.value3])); // Calculate the max value across all segments + const desiredMaxHeight = 100; // Define the desired maximum height for the bars (in pixels) + const scaleFactor = desiredMaxHeight / maxValue; // Calculate scale factor to scale bar heights + + return ( +
+ {/* Benchmark Scale */} +
+ {Array.from({ length: 6 }, (_, idx) => { + const scaleValue = Math.round(maxValue - (maxValue / 5) * idx); // Calculate the scale value + return ( +
+ {scaleValue} +
+ ); + })} +
+ +
+ {data.map((bar, index) => { + return ( +
+
+ {/* Render multiple vertical lines */} + {[...Array(numberOfLines)].map((_, lineIndex) => ( +
+ ))} + +
+
Value 1: {bar.value1}
+
+
+
Value 2: {bar.value2}
+
+
+
Value 3: {bar.value3}
+
+
+
{bar.month}
{/* Display month label */} +
+ ); + })} +
+
+ ); +}; + +export default PozoPublicBarchart; diff --git a/src/Components/Collapse/PozoPublicCollapse.jsx b/src/Components/Collapse/PozoPublicCollapse.jsx new file mode 100644 index 0000000..36e3637 --- /dev/null +++ b/src/Components/Collapse/PozoPublicCollapse.jsx @@ -0,0 +1,89 @@ +import { IoIosArrowDropup, IoIosArrowDropdown } from "react-icons/io"; +import React, { useState, useRef, useEffect } from 'react'; +import "../Collapse/PozoPublicCollapse.scss"; +import { PiPencilSimpleLight } from "react-icons/pi"; + +const PozoPublicCollapse = ({ + title = "Item description", + children, + children2, + isOpenInitially = false, + width = "100%", + className = "", + title2 = "", + isEdit, +}) => { + const [isOpen, setIsOpen] = useState(isOpenInitially); // Use false by default + const contentRef = useRef(null); + const collapseRef = useRef(null); + const [contentHeight, setContentHeight] = useState("0px"); + + const toggleCollapse = () => { + // Explicitly set the state based on current value + if (!isOpen) { + setIsOpen(true); // Open the collapse + } else { + setIsOpen(false); // Close the collapse + } + }; + + useEffect(() => { + setContentHeight(isOpen ? `${contentRef.current.scrollHeight}px` : "0px"); + }, [isOpen]); + + const handleClickOutside = (event) => { + if (collapseRef.current && !collapseRef.current.contains(event.target)) { + setIsOpen(false); // Close the collapse if clicked outside + } + }; + + // Uncomment this block if you want to close the collapse when clicking outside of it + // useEffect(() => { + // document.addEventListener('mousedown', handleClickOutside); + // return () => { + // document.removeEventListener('mousedown', handleClickOutside); + // }; + // }, []); + + return ( +
+
+
+
{title}   + {title2} +   {isEdit && } + +
+
+ {isOpen ? : } +
+
+ + {isOpen && ( +
+
+
+ {children} +
+
+ {children2} +
+
+
+ )} +
+
+ ); +}; + +export default PozoPublicCollapse; diff --git a/src/Components/Collapse/PozoPublicCollapse.scss b/src/Components/Collapse/PozoPublicCollapse.scss new file mode 100644 index 0000000..8e6e67d --- /dev/null +++ b/src/Components/Collapse/PozoPublicCollapse.scss @@ -0,0 +1,74 @@ +.PozoPublicCollapse-Master { + width: 100%; + font-family: var(--Pozo-Fontfamily); + height: 100%; + max-height: auto; + + .PozoPublicCollapseMain { + display: flex; + flex-direction: column; + position: relative; + width: 100%; + border: 1px solid var(--input-BorderColor); // Default border color + border-radius: 6px; + transition: border-color 0.3s ease; // Smooth transition for border color + + &.open { + border-color: #0071E3; // Border color when open + } + + &:hover { + border-color: #0071E3; // Border color on hover + } + + &:focus-within { + border-color: #0071E3; // Border color on focus + } + + .PozoPublicCollapse-Header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 20px; + border-radius: 6px; + background-color: #F5F5F5; + cursor: pointer; + width: 100%; + text-transform: capitalize; + color: #0909099d; + font-size: 15px; + + div { + font-weight: 550; + font-family: "Gilroy"; + } + } + + .PozoPublicCollapse-Content { + // overflow: hidden; + transition: height 0.3s ease, opacity 0.3s ease; + padding: 0px 10px; + background-color: #FFF; + border-radius: 6px; + width: 100%; + height: max-content; + font-size: 14px !important; + font-weight: 400 !important; + + p div { + font-size: 14px !important; + font-weight: 400 !important; + } + } + } + + .title2Collapse { + font-size: 14px; + color: #7D7D7D; + text-align: center; + + svg { + margin-bottom: -2px; + } + } +} \ No newline at end of file diff --git a/src/Components/CollapseAuto/PozoPublicCollapseAuto.jsx b/src/Components/CollapseAuto/PozoPublicCollapseAuto.jsx new file mode 100644 index 0000000..a76e99e --- /dev/null +++ b/src/Components/CollapseAuto/PozoPublicCollapseAuto.jsx @@ -0,0 +1,103 @@ +import { RiDeleteBin6Line } from "react-icons/ri"; +import React, { useEffect, useRef, useState } from 'react'; +import "../CollapseAuto/PozoPublicCollapseAuto.scss"; +import { PiCaretCircleDownLight, PiCaretCircleUpLight, PiPencilSimpleLight } from "react-icons/pi"; + +const PozoPublicCollapseAuto = ({ + title = "Item description", + children, + isOpenInitially = false, + width = "100%", + className = "", + isEdit = false, + isDelete = false, + isToogle = false, + isChecked, + title2 = "", +}) => { + const [isOpen, setIsOpen] = useState(isOpenInitially); + const contentRef = useRef(null); + const collapseRef = useRef(null); + const [checked, setChecked] = useState(isChecked); + + const toggleCollapsePozo = () => { + setIsOpen(prev => !prev); + }; + + useEffect(() => { + const handleClickOutside = (event) => { + if (collapseRef.current && !collapseRef.current.contains(event.target)) { + setIsOpen(false); + } + }; + + document.addEventListener('mousedown', handleClickOutside); + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, []); + + const handleChange = () => { + setChecked(prev => !prev); + }; + + return ( +
+
+
+
+
{title}   {title2}
+
+
event.stopPropagation()}> + {isEdit && } + {isDelete && ( + + )} + {isToogle && +
+ +
+ } +
+ {isOpen ? : + } +
+
+
+
+ {children} +
+
+
+
+
+ ); +} + +export default PozoPublicCollapseAuto; diff --git a/src/Components/CollapseAuto/PozoPublicCollapseAuto.scss b/src/Components/CollapseAuto/PozoPublicCollapseAuto.scss new file mode 100644 index 0000000..21a8214 --- /dev/null +++ b/src/Components/CollapseAuto/PozoPublicCollapseAuto.scss @@ -0,0 +1,123 @@ +.PozoPublicCollapseAuto-Master { + width: 100%; + font-family: var(--Pozo-Fontfamily); + position: relative; + height: 100%; + max-height: max-content; + + .PozoPublicCollapseMain { + display: flex; + flex-direction: column; + position: relative; + width: 100%; + border: 1px solid var(--input-BorderColor); + border-radius: 6px; + transition: border-color 0.3s ease; + position: relative; + + &.open { + border-color: #0071E3; + } + + &:hover { + border-color: #0071E3 !important; + } + + &:focus-within { + border-color: #0071E3; + } + + .PozoPublicCollapseAuto-Header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px; + border-radius: 6px; + background-color: var(--lightBlue-color); + cursor: pointer; + width: 100%; + text-transform: capitalize; + color: #090909; + font-size: 18px; + position: relative; + z-index: 0; + + div { + font-weight: 600; + } + + .svgs { + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + column-gap: 8px; + cursor: pointer; + position: absolute; + z-index: 15; + right: 7rem; + } + } + + .PozoPublicCollapseAuto-Content { + overflow: hidden; + transition: max-height 0.3s ease, opacity 0.3s ease; + padding: 0px 10px; + background-color: #FFF; + border-radius: 6px; + width: 100%; + opacity: 1; + height: max-content !important; + max-height: 0; + font-size: 14px !important; + font-weight: 400 !important; + + p div { + font-size: 14px !important; + font-weight: 400 !important; + padding: 1rem 0.5rem; + } + } + } + + .switch-container { + position: absolute; + top: 50%; + left: 70px; + transform: translate(-50%, -50%); + } + + input[type="checkbox"].switch { + position: absolute; + opacity: 0; + width: 0; + height: 0; + } + + .slider { + width: 32px; + height: 16.5px; + border-radius: 999px; + background-color: #d7d7d7; + cursor: pointer; + transition: background-color 0.4s, box-shadow 0.4s; + padding: 1px; + + .handle { + width: 12px; + height: 12px; + border-radius: inherit; + background: #ffffff; + transition: transform 0.4s cubic-bezier(1, 0, 0, 1); + margin: 1px; + } + } + + input[type="checkbox"].switch:checked+.slider { + background-color: #0FA958; + } + + input[type="checkbox"].switch:checked+.slider .handle { + transform: translateX(15px); + } +} \ No newline at end of file diff --git a/src/Components/CustomModal/CustomModals.jsx b/src/Components/CustomModal/CustomModals.jsx new file mode 100644 index 0000000..a096cc7 --- /dev/null +++ b/src/Components/CustomModal/CustomModals.jsx @@ -0,0 +1,53 @@ +import React, { useState } from 'react'; +import './customModal.css'; // Import your CSS file + +const CustomModal = () => { + const [isOpen, setIsOpen] = useState(false); + const [animationClass, setAnimationClass] = useState(''); + + const openModal = (animation) => { + setAnimationClass(animation); + setIsOpen(true); + document.body.classList.add('modal-active'); + }; + + const closeModal = () => { + setAnimationClass(animationClass + ' out'); + setTimeout(() => { + setIsOpen(false); + document.body.classList.remove('modal-active'); + setAnimationClass(''); // Reset animation class after close + }, 500); // Duration should match the animation duration + }; + + return ( +
+
+

Modal Animations

+
+ {['one', 'two', 'three', 'four', 'five', 'six', 'seven'].map((id) => ( +
openModal(id)}> + {id.charAt(0).toUpperCase() + id.slice(1)} +
+ ))} +
+
+ + {isOpen && ( + + )} +
+ ); +}; + +export default CustomModal; diff --git a/src/Components/CustomModal/customModal.css b/src/Components/CustomModal/customModal.css new file mode 100644 index 0000000..2112ba2 --- /dev/null +++ b/src/Components/CustomModal/customModal.css @@ -0,0 +1,616 @@ +/* * { + box-sizing:border-box; + } + + html,body { + min-height:100%; + height:100%; + background-image:url(http://theartmad.com/wp-content/uploads/Dark-Grey-Texture-Wallpaper-5.jpg); + background-size:cover; + background-position:top center; + font-family:helvetica neue, helvetica, arial, sans-serif; + font-weight:200; + &.modal-active { + overflow: hidden; + } + } + + #modal-container { + position:fixed; + display:table; + height:10%; + width:100%; + top:0; + left:0; + transform:scale(0); + z-index:1; + &.one { + transform:scaleY(.01) scaleX(0); + animation:unfoldIn 1s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal-background { + .modal { + transform:scale(0); + animation: zoomIn .5s .8s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + &.out { + transform:scale(1); + animation:unfoldOut 1s .3s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal-background { + .modal { + animation: zoomOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + } + &.two { + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.0); + animation: fadeIn .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + opacity:0; + animation: scaleUp .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + animation: scaleBack .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + &.out { + animation: quickScaleDown 0s .5s linear forwards; + .modal-background { + animation: fadeOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + animation: scaleDown .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + animation: scaleForward .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + &.three { + z-index:0; + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.6); + .modal { + animation: moveUp .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + z-index:1; + animation: slideUpLarge .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + &.out { + .modal-background { + .modal { + animation: moveDown .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + animation: slideDownLarge .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + &.four { + z-index:0; + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.7); + .modal { + animation: blowUpModal .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + z-index:1; + animation:blowUpContent .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + &.out { + .modal-background { + .modal { + animation: blowUpModalTwo .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + + .content { + animation: blowUpContentTwo .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + &.five { + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.0); + animation: fadeIn .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + transform:translateX(-1500px); + animation: roadRunnerIn .3s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + &.out { + animation: quickScaleDown 0s .5s linear forwards; + .modal-background { + animation: fadeOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + animation: roadRunnerOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + } + &.six { + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.0); + animation: fadeIn .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + background-color:transparent; + animation: modalFadeIn .5s .8s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + h2,p { + opacity:0; + position:relative; + animation: modalContentFadeIn .5s 1s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + .modal-svg { + rect { + animation: sketchIn .5s .3s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + } + &.out { + animation: quickScaleDown 0s .5s linear forwards; + .modal-background { + animation: fadeOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + animation: modalFadeOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + h2,p { + animation: modalContentFadeOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + .modal-svg { + rect { + animation: sketchOut .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + } + } + } + &.seven { + transform:scale(1); + .modal-background { + background:rgba(0,0,0,.0); + animation: fadeIn .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + height:75px; + width:75px; + border-radius:75px; + overflow:hidden; + animation: bondJamesBond 1.5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + h2,p { + opacity:0; + position:relative; + animation: modalContentFadeIn .5s 1.4s linear forwards; + } + } + } + &.out { + animation: slowFade .5s 1.5s linear forwards; + .modal-background { + background-color:rgba(0,0,0,.7); + animation: fadeToRed 2s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + .modal { + border-radius:3px; + height:162px; + width:227px; + animation: killShot 1s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + h2,p { + animation:modalContentFadeOut .5s .5 cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards; + } + } + } + } + } + .modal-background { + display:table-cell; + background:rgba(0,0,0,.8); + text-align:center; + vertical-align:middle; + .modal { + background:white; + padding:50px; + display:inline-block; + border-radius:3px; + font-weight:300; + position:relative; + h2 { + font-size:25px; + line-height:25px; + margin-bottom:15px; + } + p { + font-size:18px; + line-height:22px; + } + .modal-svg { + position:absolute; + top:0; + left:0; + height:100%; + width:100%; + border-radius:3px; + rect { + stroke: #fff; + stroke-width: 2px; + stroke-dasharray: 778; + stroke-dashoffset: 778; + } + } + } + } + } + + .content { + min-height:100%; + height:100%; + background:white; + position:relative; + z-index:0; + h1 { + padding:75px 0 30px 0; + text-align:center; + font-size:30px; + line-height:30px; + } + .buttons { + max-width:800px; + margin:0 auto; + padding:0; + text-align:center; + .button { + display:inline-block; + text-align:center; + padding:10px 15px; + margin:10px; + background:red; + font-size:18px; + background-color:#efefef; + border-radius:3px; + box-shadow:0 1px 2px rgba(0,0,0,.3); + cursor:pointer; + &:hover { + color:white; + background:#009bd5; + } + } + } + } + + @keyframes unfoldIn { + 0% { + transform:scaleY(.005) scaleX(0); + } + 50% { + transform:scaleY(.005) scaleX(1); + } + 100% { + transform:scaleY(1) scaleX(1); + } + } + + @keyframes unfoldOut { + 0% { + transform:scaleY(1) scaleX(1); + } + 50% { + transform:scaleY(.005) scaleX(1); + } + 100% { + transform:scaleY(.005) scaleX(0); + } + } + + @keyframes zoomIn { + 0% { + transform:scale(0); + } + 100% { + transform:scale(1); + } + } + + @keyframes zoomOut { + 0% { + transform:scale(1); + } + 100% { + transform:scale(0); + } + } + + @keyframes fadeIn { + 0% { + background:rgba(0,0,0,.0); + } + 100% { + background:rgba(0,0,0,.7); + } + } + + @keyframes fadeOut { + 0% { + background:rgba(0,0,0,.7); + } + 100% { + background:rgba(0,0,0,.0); + } + } + + @keyframes scaleUp { + 0% { + transform:scale(.8) translateY(1000px); + opacity:0; + } + 100% { + transform:scale(1) translateY(0px); + opacity:1; + } + } + + @keyframes scaleDown { + 0% { + transform:scale(1) translateY(0px); + opacity:1; + } + 100% { + transform:scale(.8) translateY(1000px); + opacity:0; + } + } + + @keyframes scaleBack { + 0% { + transform:scale(1); + } + 100% { + transform:scale(.85); + } + } + + @keyframes scaleForward { + 0% { + transform:scale(.85); + } + 100% { + transform:scale(1); + } + } + + @keyframes quickScaleDown { + 0% { + transform:scale(1); + } + 99.9% { + transform:scale(1); + } + 100% { + transform:scale(0); + } + } + + @keyframes slideUpLarge { + 0% { + transform:translateY(0%); + } + 100% { + transform:translateY(-100%); + } + } + + @keyframes slideDownLarge { + 0% { + transform:translateY(-100%); + } + 100% { + transform:translateY(0%); + } + } + + @keyframes moveUp { + 0% { + transform:translateY(150px); + } + 100% { + transform:translateY(0); + } + } + + @keyframes moveDown { + 0% { + transform:translateY(0px); + } + 100% { + transform:translateY(150px); + } + } + + @keyframes blowUpContent { + 0% { + transform:scale(1); + opacity:1; + } + 99.9% { + transform:scale(2); + opacity:0; + } + 100% { + transform:scale(0); + } + } + + @keyframes blowUpContentTwo { + 0% { + transform:scale(2); + opacity:0; + } + 100% { + transform:scale(1); + opacity:1; + } + } + + @keyframes blowUpModal { + 0% { + transform:scale(0); + } + 100% { + transform:scale(1); + } + } + + @keyframes blowUpModalTwo { + 0% { + transform:scale(1); + opacity:1; + } + 100% { + transform:scale(0); + opacity:0; + } + } + + @keyframes roadRunnerIn { + 0% { + transform:translateX(-1500px) skewX(30deg) scaleX(1.3); + } + 70% { + transform:translateX(30px) skewX(0deg) scaleX(.9); + } + 100% { + transform:translateX(0px) skewX(0deg) scaleX(1); + } + } + + @keyframes roadRunnerOut { + 0% { + transform:translateX(0px) skewX(0deg) scaleX(1); + } + 30% { + transform:translateX(-30px) skewX(-5deg) scaleX(.9); + } + 100% { + transform:translateX(1500px) skewX(30deg) scaleX(1.3); + } + } + + @keyframes sketchIn { + 0% { + stroke-dashoffset: 778; + } + 100% { + stroke-dashoffset: 0; + } + } + + @keyframes sketchOut { + 0% { + stroke-dashoffset: 0; + } + 100% { + stroke-dashoffset: 778; + } + } + + @keyframes modalFadeIn { + 0% { + background-color:transparent; + } + 100% { + background-color:white; + } + } + + @keyframes modalFadeOut { + 0% { + background-color:white; + } + 100% { + background-color:transparent; + } + } + + @keyframes modalContentFadeIn { + 0% { + opacity:0; + top:-20px; + } + 100% { + opacity:1; + top:0; + } + } + + @keyframes modalContentFadeOut { + 0% { + opacity:1; + top:0px; + } + 100% { + opacity:0; + top:-20px; + } + } + + @keyframes bondJamesBond { + 0% { + transform:translateX(1000px); + } + 80% { + transform:translateX(0px); + border-radius:75px; + height:75px; + width:75px; + } + 90% { + border-radius:3px; + height:182px; + width:247px; + } + 100% { + border-radius:3px; + height:162px; + width:227px; + } + } + + @keyframes killShot { + 0% { + transform:translateY(0) rotate(0deg); + opacity:1; + } + 100% { + transform:translateY(300px) rotate(45deg); + opacity:0; + } + } + + @keyframes fadeToRed { + 0% { + background-color:rgba(black,.6); + } + 100% { + background-color:rgba(red,.8); + } + } + + @keyframes slowFade { + 0% { + opacity:1; + } + 99.9% { + opacity:0; + transform:scale(1); + } + 100% { + transform:scale(0); + } + } */ \ No newline at end of file diff --git a/src/Components/DatePicker/PozoPublicDatePicker.jsx b/src/Components/DatePicker/PozoPublicDatePicker.jsx new file mode 100644 index 0000000..9695dc2 --- /dev/null +++ b/src/Components/DatePicker/PozoPublicDatePicker.jsx @@ -0,0 +1,122 @@ +import { BiCalendar } from "react-icons/bi"; +import React, { useState, useRef, useEffect } from 'react'; +import './PozoPublicDatePicker.scss'; + +const PozoPublicDatePicker = ({ + onDateChange, + calendarStyle, + width = '250px', + height = '40px', + placeholder = 'Select a date', + // borderColor = '#A5A5A5' +}) => { + const [isOpen, setIsOpen] = useState(false); + const [selectedDate, setSelectedDate] = useState(null); + const [currentDate, setCurrentDate] = useState(new Date()); + const [isFocused, setIsFocused] = useState(false); + const pickerRef = useRef(null); + + const handleClickOutside = (event) => { + if (pickerRef.current && !pickerRef.current.contains(event.target)) { + setIsOpen(false); + } + }; + + useEffect(() => { + document.addEventListener('mousedown', handleClickOutside); + return () => document.removeEventListener('mousedown', handleClickOutside); + }, []); + + const handleDateClick = (date) => { + setSelectedDate(date); + if (onDateChange) onDateChange(date); + setIsOpen(false); + }; + + const handleMonthChange = (direction) => { + const newDate = new Date(currentDate); + newDate.setMonth(currentDate.getMonth() + direction); + setCurrentDate(newDate); + }; + + const handleYearChange = (direction) => { + const newDate = new Date(currentDate); + newDate.setFullYear(currentDate.getFullYear() + direction); + setCurrentDate(newDate); + }; + + const getDaysInMonth = (year, month) => { + const date = new Date(year, month + 1, 0); + return Array.from({ length: date.getDate() }, (_, i) => new Date(year, month, i + 1)); + }; + + const getDayHeaders = () => { + const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; + return ( +
+ {days.map(day => ( +
+ {day} +
+ ))} +
+ ); + }; + // console.log(getDaysInMonth(currentDate.getFullYear(), currentDate.getMonth()),"bvyuct7") + const renderCalendar = () => { + const days = getDaysInMonth(currentDate.getFullYear(), currentDate.getMonth()); + const startOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1).getDay(); + const blankDays = Array.from({ length: startOfMonth }, (_, i) => i); + + return ( +
+
+ + + {currentDate.toLocaleString('default', { month: 'long' })} {currentDate.getFullYear()} + + +
+ {getDayHeaders()} +
+ {blankDays.map((_, i) => ( +
+ ))} + {days.map(date => ( +
handleDateClick(date)} + > + {date.getDate()} +
+ ))} +
+
+ ); + }; + + return ( +
+
setIsOpen(!isOpen)} + > + setIsOpen(!isOpen)} + onFocus={() => setIsFocused(true)} + onBlur={() => setIsFocused(false)} + className={`date-picker-input ${isFocused || selectedDate ? 'focused' : ''}`} + /> + +
+ {isOpen && renderCalendar()} +
+ ); +}; + +export default PozoPublicDatePicker; diff --git a/src/Components/DatePicker/PozoPublicDatePicker.scss b/src/Components/DatePicker/PozoPublicDatePicker.scss new file mode 100644 index 0000000..ffb15c4 --- /dev/null +++ b/src/Components/DatePicker/PozoPublicDatePicker.scss @@ -0,0 +1,106 @@ +.date-picker { + position: relative; + display: inline-block; + + input { + border: none; + outline: none; + font-size: 14px; + color: #818181; + } + + .pickermain { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 10px; + border: 1px solid var(--input-BorderColor); + border-radius: 6px; + cursor: pointer; + color: #818181; + + &:hover { + border-color: #007bff; + } + + &:focus-within { + border-color: #007bff; + } + } +} + +.calendar { + position: absolute; + top: 100%; + left: 0; + border: 1px solid #ccc; + background: #fff; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + z-index: 650; +} + +.calendar-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px; + border-bottom: 1px solid #ccc; +} + +.calendar-header button { + background: #f0f0f0; + border: none; + padding: 4px; + cursor: pointer; +} + +.calendar-header button:hover { + background: #e0e0e0; +} + +.calendar-header span { + flex: 1; + text-align: center; + font-weight: bold; +} + +.calendar-headers { + display: grid; + grid-template-columns: repeat(7, 1fr); + background: #f0f0f0; + border-bottom: 1px solid #ccc; +} + +.calendar-header-day { + text-align: center; + padding: 8px; + font-weight: 700; + font-size: 12px; +} + +.calendar-body { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 4px; + padding: 8px 0px; +} + +.calendar-day { + text-align: center; + cursor: pointer; + padding: 4px; + border-radius: 4px; +} + +.calendar-day:hover { + background: #f0f0f0; +} + +.calendar-day.selected { + background: #007bff; + color: #fff; +} + +.calendar-day.blank { + background: #fff; +} \ No newline at end of file diff --git a/src/Components/DropDown/PozoPublicDropDown.jsx b/src/Components/DropDown/PozoPublicDropDown.jsx new file mode 100644 index 0000000..b5bd712 --- /dev/null +++ b/src/Components/DropDown/PozoPublicDropDown.jsx @@ -0,0 +1,163 @@ +import { BsPlusSquare } from "react-icons/bs"; +import { IoIosArrowDown } from "react-icons/io"; +import { useState, useEffect, useRef } from 'react'; +import "../DropDown/PozoPublicDropDown.scss"; +import PublicPozoModal from "../PublicPozoModal/PublicPozoModal"; +import PropTypes from 'prop-types'; + +const PozoPublicDropDown = ({ + placeholder = "Select an option", + placeholder2, + options, + width = "100%", + height = "2.5rem", + onOptionSelect, + className = "", + AddModal = false, +}) => { + const [isOpen, setIsOpen] = useState(false); + const [searchTerm, setSearchTerm] = useState(""); // State to hold the search term + const [filteredOptions, setFilteredOptions] = useState(options); // State to hold the filtered options + const dropdownRef = useRef(null); + const [isModalOpen, setIsModalOpen] = useState(false); + const toggleDropdown = () => setIsOpen(!isOpen); + + const DropDownModalOpen = () => setIsModalOpen(true); + const DropDownModalClose = () => setIsModalOpen(false); + + const handleOptionClick = (option) => { + setSearchTerm(option); + setIsOpen(false); + if (onOptionSelect) { + onOptionSelect(option); + } + }; + const handleActionClick = () => { + console.log('Action button clicked'); + + }; + + const handleInputChange = (event) => { + const searchValue = event.target.value; + setSearchTerm(searchValue); + + // Filter options based on the search term + const filtered = options.filter(option => + option.toLowerCase().includes(searchValue.toLowerCase()) + ); + setFilteredOptions(filtered); + setIsOpen(true); // Keep the dropdown open while typing + }; + + const handleClickOutside = (event) => { + if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { + setIsOpen(false); + } + }; + + useEffect(() => { + document.addEventListener('mousedown', handleClickOutside); + + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, []); + + // // Update filtered options when the original options change + // useEffect(() => { + // setFilteredOptions(options); + // }, []); + + return ( +
+
+ {placeholder && ( + + + )} + {placeholder2 && ( + + + )} + +
+ + {AddModal && +
+ +
+ } + {isModalOpen && ( + +

Search also Ad in this Function

+
+ )} +
+ + {isOpen && ( +
+ {Array.isArray(filteredOptions) && filteredOptions.length > 0 ? ( + filteredOptions.map((option, index) => ( +
handleOptionClick(option)} + > + {option} +
+ )) + ) : ( +
+ No options available +
+ )} +
+ )} +
+ ); +}; + +PozoPublicDropDown.propTypes = { + placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + placeholder2: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + options: PropTypes.arrayOf(PropTypes.string), + width: PropTypes.string, + height: PropTypes.string, + onOptionSelect: PropTypes.func, + className: PropTypes.string, + AddModal: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), +}; + +PozoPublicDropDown.defaultProps = { + placeholder: "Select an option", + placeholder2: "", + options: [], + width: "100%", + height: "2.5rem", + AddModal: false, +}; + + +export default PozoPublicDropDown; diff --git a/src/Components/DropDown/PozoPublicDropDown.scss b/src/Components/DropDown/PozoPublicDropDown.scss new file mode 100644 index 0000000..4ff35fe --- /dev/null +++ b/src/Components/DropDown/PozoPublicDropDown.scss @@ -0,0 +1,145 @@ +.PozoPublicDropDown-Master { + position: relative; + width: 100%; + + .PozoPublicDropDownMain { + display: flex; + align-items: center; + justify-content: space-between; + border: 1px solid var(--input-BorderColor); + border-radius: 6px; + padding: 12px 16px; + cursor: pointer; + position: relative; + transition: border-color 0.3s ease; + + &.error { + border-color: #e33333; + } + + input { + border: none; + outline: none; + font-family: var(--Pozo-Fontfamily); + width: 100%; + cursor: pointer; + padding-top: 0; + background: transparent; + + &::placeholder { + color: transparent; + } + } + + .PozoPublicDropDown-Label { + position: absolute; + left: 16px; + top: 50%; + transform: translateY(-50%); + transition: all 0.3s ease; + pointer-events: none; + color: var(--input-textColor); + font-size: 13px; + background-color: #fff; + padding: 0 4px; + } + + .PozoPublicDropDown-Label2 { + position: absolute; + left: 14px; + top: 50%; + transform: translateY(-50%); + transition: all 0.3s ease; + pointer-events: none; + color: var(--input-textColor); + font-size: 12px; + // background-color: #fff; + padding: 0 4px; + } + + .PozoPublicDropDown-Label.float, + input:focus+.PozoPublicDropDown-Label, + .PozoPublicDropDownMain:focus-within .PozoPublicDropDown-Label { + top: -10px; + transform: translateY(0); + font-size: 12px; + color: var(--blue-color); + + } + + .PozoPublicDropDown-Label2.float2, + input:focus+.PozoPublicDropDown-Label2, + .PozoPublicDropDownMain:focus-within .PozoPublicDropDown-Label2 { + top: -16px; + transform: translateY(0); + transform: translateX(-17px); + font-size: 11px; + color: var(--blue-color); + + } + + // Styles for focus state + &:focus-within { + border-color: var(--input-FocusColor); // Change border color on focus + } + + // Styles for hover state + &:hover { + border-color: #0071e3; + color: #0071e3; // Change border color on hover + + .PozoPublicDropDown-Label { + color: var(--input-HoverColor); // Change label color on hover + } + + .PozoPublicDropDown-Label2 { + color: var(--input-HoverColor); // Change label color on hover + } + } + } + + .PozoPublicDropDownOptions { + position: absolute; + width: 100%; + background-color: #fff; + // border: 1px solid var(--input-BorderColor); + border-radius: 6px; + margin-top: 4px; + z-index: 900; + height: max-content; + max-height: 21vh; + // box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px; + overflow-x: scroll; + font-size: 14px; + padding: 5px 5px; + } + + .PozoPublicDropDownOption { + padding: 10px; + cursor: pointer; + + &:hover { + background-color: rgba(0, 0, 0, 0.04); + border-color: var(--input-HoverColor); // Border color on option hover + } + } + + .PozoPublicDropDownNoOptions { + padding: 10px; + color: var(--input-textColor); + text-align: center; + display: flex; + align-items: center; + justify-content: center; + } + + .addBTN { + display: flex; + margin-left: 1rem; + font-size: 20px; + color: #1c1c1c; + cursor: pointer; + z-index: 10; + } +} \ No newline at end of file diff --git a/src/Components/DropDownWithAdd/PozoPublicDropdownAdd.jsx b/src/Components/DropDownWithAdd/PozoPublicDropdownAdd.jsx new file mode 100644 index 0000000..0d48c29 --- /dev/null +++ b/src/Components/DropDownWithAdd/PozoPublicDropdownAdd.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +const PozoPublicDropdownAdd = () => { + return ( +
PozoPublicDropdownAdd
+ ) +} + +export default PozoPublicDropdownAdd \ No newline at end of file diff --git a/src/Components/DropDownWithAdd/PozoPublicDropdownAdd.scss b/src/Components/DropDownWithAdd/PozoPublicDropdownAdd.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/Components/ImagePicker/ImageUploader.jsx b/src/Components/ImagePicker/ImageUploader.jsx new file mode 100644 index 0000000..1c09703 --- /dev/null +++ b/src/Components/ImagePicker/ImageUploader.jsx @@ -0,0 +1,88 @@ +import { MdFileDownloadDone } from "react-icons/md"; +import { AiOutlineCloseCircle } from "react-icons/ai"; +import { TbCameraPlus } from "react-icons/tb"; +import { TbUpload } from "react-icons/tb"; +import React, { useState } from 'react'; +import "../ImagePicker/PozoPublicImagePicker.scss"; +import PublicPozoModal from "../PublicPozoModal/PublicPozoModal"; +import PozoPublicButton from "../Button/PozoPublicButton"; + +const ImageUploader = ({ width = "100%", height = "100%" }) => { + const [isModalOpen, setIsModalOpen] = useState(false); + const [selectedImage, setSelectedImage] = useState(null); + const defaultImage = "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRtcNX3yxOkc3xIA9tHMsxR_DRuThONLIbPFoeXihVU0XQt1Fxt"; + + const handleOpenModal = () => { + setIsModalOpen(true); + }; + + const handleCloseModal = () => { + handleImageUpload + setIsModalOpen(false); + setSelectedImage(null); // Reset selected image when modal closes + + }; + + const handleImageUpload = (event) => { + if (event.target.files && event.target.files[0]) { + const imageFile = event.target.files[0]; + setSelectedImage(URL.createObjectURL(imageFile)); + } else { + setSelectedImage(null); // If upload fails, reset to null + } + }; + + return ( +
+
+ + Image +
+ {isModalOpen && ( + +
+
+
+
+ uploaded preview +
+
+
+ + +
+
+ {/*

Upload Your Product Image

*/} +
+ + +
+ +
+
+ } + > + + )} +
+ ); +} + +export default ImageUploader; diff --git a/src/Components/ImagePicker/PozoPublicImagePicker.jsx b/src/Components/ImagePicker/PozoPublicImagePicker.jsx new file mode 100644 index 0000000..da9ae6a --- /dev/null +++ b/src/Components/ImagePicker/PozoPublicImagePicker.jsx @@ -0,0 +1,140 @@ +import { MdFileDownloadDone } from "react-icons/md"; +import { AiOutlineCloseCircle } from "react-icons/ai"; +import { TbCameraPlus } from "react-icons/tb"; +import { TbUpload } from "react-icons/tb"; +import React, { useState } from 'react'; +import "../ImagePicker/PozoPublicImagePicker.scss"; +import PublicPozoModal from "../PublicPozoModal/PublicPozoModal"; +import PozoPublicButton from "../Button/PozoPublicButton"; + +const PozoPublicImagePicker = ({ width = "100%", height = "100%" }) => { + const [isModalOpen, setIsModalOpen] = useState(false); + const [selectedImages, setSelectedImages] = useState([null, null, null, null, null]); + const defaultImage = "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRtcNX3yxOkc3xIA9tHMsxR_DRuThONLIbPFoeXihVU0XQt1Fxt"; + + const handleOpenModal = () => { + setIsModalOpen(true); + }; + + const handleCloseModal = () => { + setIsModalOpen(false); + }; + + const handleImageUpload = (event, index) => { + if (event.target.files && event.target.files[0]) { + const imageFile = event.target.files[0]; + const updatedImages = [...selectedImages]; + updatedImages[index] = URL.createObjectURL(imageFile); + setSelectedImages(updatedImages); + } else { + const updatedImages = [...selectedImages]; + updatedImages[index] = null; // If upload fails, reset to null + setSelectedImages(updatedImages); + } + }; + + return ( +
+
+ + Image +
+ {isModalOpen && ( + +
+ + {[...Array(5)].map((_, index) => ( +
+
+
+ uploaded preview +
+
+ +
+ handleImageUpload(event, index)} + style={{ display: 'none' }} + id={`imageUploadInput-${index}`} + /> + +
+
+ ))} +

Upload Your Product Image

+
+ + {/* iframe of video */} +
+

Guidline For Image Upload

+ +
+ + {/* guideline for image upload */} +
+
+
+
+

Dimensions:

+
1024 x 768px
+
+
+

Format:

+
JPF , PNG , SVG
+
+
+

File size:

+
Below 5MB
+
+
+
+ + + + + +
+
+ + + + +
+
+
+
+
+ +
+
+ } + > + + )} +
+ ); +} + +export default PozoPublicImagePicker; diff --git a/src/Components/ImagePicker/PozoPublicImagePicker.scss b/src/Components/ImagePicker/PozoPublicImagePicker.scss new file mode 100644 index 0000000..94a4f66 --- /dev/null +++ b/src/Components/ImagePicker/PozoPublicImagePicker.scss @@ -0,0 +1,212 @@ +.PozoPublicImagePicker-Master { + .PozoPublicImagePickerMain { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border: 1px solid var(--input-BorderColor); + width: max-content; + column-gap: 1rem; + row-gap: 12px; + padding: 20px 20px; + border-radius: 6px; + color: var(--input-textColor); + cursor: pointer; + font-size: 16px; + } + + .ImageUploadMain { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 0rem; + column-gap: 10px; + width: 100%; + position: relative; + } + + .uploadImage { + display: flex; + flex-direction: column; + // width: 35%; + justify-content: space-around; + column-gap: 1rem; + row-gap: 2rem; + } + + .imagerUploadsection { + display: flex; + align-items: center; + column-gap: 1rem; + row-gap: 1rem; + flex-wrap: wrap; + width: 100%; + } + + .imageViwer { + display: flex; + flex-wrap: wrap; + width: 35%; + align-items: center; + column-gap: 16px; + row-gap: 16px; + position: relative; + top: 25px; + } + + .title1 { + position: absolute; + top: -36px; + font-size: 20px; + } + + .uploadBTN { + border: 1px solid var(--input-BorderColor); + width: max-content; + padding: 26px 38px; + display: flex; + align-items: center; + column-gap: 5px; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + margin-top: -7rem; + opacity: 0; + } + + .imagerViewer { + width: 100px; + height: 85px; + border: 2px solid #1292EE; + border-radius: 6px; + + img { + width: 100%; + height: 100%; + border-radius: 6px; + + } + } + + .uploadVideo { + display: flex; + align-items: center; + justify-content: center; + width: 350px; + position: relative; + top: 25px; + height: 250px; + } + + .title2 { + position: absolute; + top: -33px; + text-align: left; + width: 100%; + font-size: 20px; + } + + .guidlineImage { + display: flex; + flex-direction: column; + width: 30%; + } + + .formats { + display: flex; + flex-direction: column; + text-transform: capitalize; + + div { + font-size: 14px; + color: #818181; + + } + } + + .imagembFormat { + display: flex; + align-items: flex-start; + justify-content: space-between; + flex-direction: column; + } + + .picGuide { + // border: 1px dashed var(--input-BorderColor); + width: 100%; + display: flex; + column-gap: 5px; + row-gap: 5px; + flex-wrap: wrap; + + img { + width: 90px; + font-size: 2.5rem; + } + } + + .blurimages { + display: flex; + align-items: center; + column-gap: 10px; + row-gap: 10px; + padding: 1rem 0rem; + position: relative; + + img { + width: 100px; + height: 100px; + } + + .wrong { + position: absolute; + position: absolute; + font-size: 3rem; + color: red; + top: 40px; + left: 25px; + } + + .blur { + filter: blur(1px); + } + + .correct { + position: absolute; + top: 10px; + font-size: 3rem; + color: limegreen; + left: 167px; + } + } +} + +@media (max-width:768px) { + .PozoPublicImagePicker-Master .ImageUploadMain { + flex-direction: column; + row-gap: 3rem; + overflow: scroll; + height: 75vh; + overflow-x: hidden; + } + + .PozoPublicImagePicker-Master .imageViwer, + .PozoPublicImagePicker-Master .guidlineImage { + width: 100%; + } + + .PublicPozoModal-Master .PublicPozoModalMain { + height: 85vh !important; + width: 100% !important; + } + + .PozoPublicImagePicker-Master .imagerViewer { + width: 95px; + } + + .PozoPublicImagePicker-Master .picGuide img { + width: 100px; + padding-top: 1rem; + } + +} \ No newline at end of file diff --git a/src/Components/Input/PozoPublicInput.jsx b/src/Components/Input/PozoPublicInput.jsx new file mode 100644 index 0000000..d717ce0 --- /dev/null +++ b/src/Components/Input/PozoPublicInput.jsx @@ -0,0 +1,51 @@ +import React, { useState } from 'react'; +import "../Input/PozoPublicInput.scss"; + +const PozoPublicInput = ({ + label, + type = "text", + width = "100%", + height = "auto", + placeholder, + name, + value, + onChange, + onClick, + maxLength = 100, + disabled = false, + className = "", + pattern, + inputMode, +}) => { + const [inputValue, setInputValue] = useState(value); + + const handleChange = (e) => { + const newValue = e.target.value; + if (newValue.length <= maxLength) { + setInputValue(newValue); + onChange(e); + } + }; + // const testcode = ["pozopublic"] + + return ( +
+
+ + {label && } +
+
+ ); +}; + +export default PozoPublicInput; diff --git a/src/Components/Input/PozoPublicInput.scss b/src/Components/Input/PozoPublicInput.scss new file mode 100644 index 0000000..51c176f --- /dev/null +++ b/src/Components/Input/PozoPublicInput.scss @@ -0,0 +1,83 @@ +.PozoPublicInputMain { + position: relative; + width: 100%; + height: auto; + + input { + padding: 12px 16px; + outline: none; + border: 1px solid red; + border-radius: 6px; + font-family: var(--Pozo-Fontfamily); + width: 100%; + height: 100%; + font-size: 14px; + box-sizing: border-box; + background: transparent; + position: relative; + transition: border-color 0.2s ease; + background-color: #ffffff; + + &::placeholder { + color: var(--input-textColor); + opacity: 1; + transition: opacity 0.2s ease; + + } + + &:hover { + border-color: #0071e3; + } + } + + input[type=number]::-webkit-inner-spin-button, + input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; + } + + .PozoPublicInput-Label { + position: absolute; + top: 10px; + left: 10px !important; + font-family: var(--Pozo-Fontfamily); + font-size: 12px; + color: #818181; + /* Default label color */ + transition: all 0.2s ease; + pointer-events: none; + background: white; + padding: 0 4px; + transform-origin: top left; + transform: scale(1); + text-wrap: nowrap; + } + + input:focus+.PozoPublicInput-Label, + input:not(:placeholder-shown)+.PozoPublicInput-Label { + top: -10px; + left: 12px; + font-size: 12px; + color: #0071e3; + font-weight: 500; + } + + input:focus { + border-color: #0071e3; + } + + input:focus::placeholder, + input:not(:placeholder-shown)::placeholder { + opacity: 0; + } + + .error { + border-color: var(--red-color); + } + + .success { + border-color: var(--green-color); + } +} \ No newline at end of file diff --git a/src/Components/InputDropDown/PozoPublicInputDropdown.jsx b/src/Components/InputDropDown/PozoPublicInputDropdown.jsx new file mode 100644 index 0000000..c99bcc5 --- /dev/null +++ b/src/Components/InputDropDown/PozoPublicInputDropdown.jsx @@ -0,0 +1,112 @@ +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; +import { BiChevronDown } from 'react-icons/bi'; // Import a custom icon from React Icons +import "../InputDropDown/PozoPublicInputDropdown.scss"; + +const PozoPublicInputDropdown = ({ + width = '100%', + height = 'auto', + onClick, + label, + dropdown1Options = [], + dropdown2Options = [], + select1 = false, + select2 = false, + select3 = false, +}) => { + const [dropdown1Value, setDropdown1Value] = useState(''); + const [dropdown2Value, setDropdown2Value] = useState(''); + + const handleDropdown1Change = (e) => { + setDropdown1Value(e.target.value); + }; + + const handleDropdown2Change = (e) => { + setDropdown2Value(e.target.value); + }; + + return ( +
+
+ + {label} + + {select1 && +
+ + +
+ } + + {select2 && +
+ + +
+ } + + {select3 && +
+ + +
+ } + +
+
+ ); +} + +PozoPublicInputDropdown.propTypes = { + width: PropTypes.string, + height: PropTypes.string, + onClick: PropTypes.func, + dropdown1Options: PropTypes.array, + dropdown2Options: PropTypes.array +}; + +export default PozoPublicInputDropdown; diff --git a/src/Components/InputDropDown/PozoPublicInputDropdown.scss b/src/Components/InputDropDown/PozoPublicInputDropdown.scss new file mode 100644 index 0000000..c64e7d0 --- /dev/null +++ b/src/Components/InputDropDown/PozoPublicInputDropdown.scss @@ -0,0 +1,113 @@ +.PozoPublicInputDropdown-Master { + display: flex; + align-items: center; + border: 1px solid #ccc; + border-radius: 4px; + padding: 5px 10px; + + &:hover { + border-color: var(--secondayBTN-color); + } + + &:focus { + border-color: var(--secondayBTN-color); + } +} + +.PozoPublicInputDropdown-Wrapper { + display: flex; + align-items: center; + width: 100%; + position: relative; + column-gap: 3px; +} + +.PozoPublicInputDropdown-Input { + flex: 1; + padding: 12px 5px 5px 5px; + /* Extra padding-top for placeholder space */ + border: none; + outline: none; + position: relative; + z-index: 1; + background: transparent; + + &::placeholder { + color: transparent; + font-size: 10px !important; + } + + &:focus+.PozoPublicInputDropdown-Placeholder, + &:not(:placeholder-shown)+.PozoPublicInputDropdown-Placeholder { + top: -5px; + left: 5px; + font-size: 12px; + color: var(--secondayBTN-color); + background-color: #fff; + padding: 1px 5px; + } +} + +.PozoPublicInputDropdown-Placeholder { + position: absolute; + top: 50%; + left: 5px; + transform: translateY(-50%); + color: #aaa; + transition: 0.3s ease all; + pointer-events: none; + font-size: 14px; + +} + + +.PozoPublicInputDropdown-Select { + position: relative; + width: 100%; + padding: 5px 6px; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #fff; + color: #000000; + font-size: 13px; + appearance: none; + /* Hides the default arrow */ + cursor: pointer; + transition: border-color 0.3s ease; + // padding-right: 30px; + opacity: 0.6; + + &:hover { + border-color: var(--secondayBTN-color); + } + + &:focus { + border-color: var(--secondayBTN-color); + outline: none; + } + + &:focus-within { + border-color: var(--secondayBTN-color); + outline: none; + } +} + +.PozoPublicInputDropdown-Icon { + position: absolute; + right: 5px; + top: 50%; + transform: translateY(-50%); + pointer-events: none; + opacity: 1 !important; +} + + +.PozoPublicInputDropdown-Select option { + padding: 10px 12px; + background-color: #fff; + color: #e33333; + font-size: 14px; + border-bottom: 1px solid #eee; + transition: background-color 0.2s ease, color 0.2s ease; +} + diff --git a/src/Components/InputSearch/PozoPublicInputSearch.jsx b/src/Components/InputSearch/PozoPublicInputSearch.jsx new file mode 100644 index 0000000..aaf1d58 --- /dev/null +++ b/src/Components/InputSearch/PozoPublicInputSearch.jsx @@ -0,0 +1,88 @@ +import React, { useState, useEffect, useRef } from 'react'; +import "../InputSearch/PozoPublicInputSearch.scss"; + +const PozoPublicInputSearch = ({ + label, + type = "text", + width = "100%", + height = "auto", + placeholder, + name, + value, + onChange, + onClick, + disabled = false, + className = "", + searchResults = [], +}) => { + const [data, setData] = useState([]); + const [Text, setText] = useState([]); + const [showSuggestions, setShowSuggestions] = useState(false); + const inputRef = useRef(null); + + const OnSearch = (e) => { + onChange(e.target.value) + const newValue = e.target.value; + setText(newValue) + const filteredItems = searchResults.filter(item => + item.toLowerCase().includes(newValue.toLowerCase()) + ); + setData(filteredItems); + setShowSuggestions(newValue.length !== 0); + // onChange(e); // Continue to call the passed onChange handler + }; + + const handleClickOutside = (event) => { + if (inputRef.current && !inputRef.current.contains(event.target)) { + setShowSuggestions(false); + } + }; + + useEffect(() => { + document.addEventListener('mousedown', handleClickOutside); + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, []); + + const handleSuggestionClick = (item) => { + setText(item); + setShowSuggestions(false); + // onChange({ target: { name, value: item } }); // Update the input value + }; + + return ( +
+
+
+ + {label && } + + {showSuggestions && data.length > 0 && ( +
+ {data.map((result, index) => ( +
handleSuggestionClick(result)} + > + {result} +
+ ))} +
+ )} +
+
+
+ ); +} + +export default PozoPublicInputSearch; diff --git a/src/Components/InputSearch/PozoPublicInputSearch.scss b/src/Components/InputSearch/PozoPublicInputSearch.scss new file mode 100644 index 0000000..94faaf8 --- /dev/null +++ b/src/Components/InputSearch/PozoPublicInputSearch.scss @@ -0,0 +1,98 @@ +.PozoPublicInputMain { + position: relative; + width: 100%; + height: auto; + + input { + padding: 12px 16px; + outline: none; + border: 1px solid var(--input-BorderColor); + /* Default border color */ + border-radius: 6px; + font-family: var(--Pozo-Fontfamily); + width: 100%; + height: 100%; + font-size: 14px; + box-sizing: border-box; + background: transparent; + position: relative; + transition: border-color 0.2s ease; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + width: 100%; + + &::placeholder { + color: var(--input-textColor); + opacity: 1; + transition: opacity 0.2s ease; + + } + + &:hover { + border-color: #0071e3; + } + } + + .PozoPublicInput-Label { + position: absolute; + top: 12px; + left: 16px; + font-family: var(--Pozo-Fontfamily); + font-size: 14px; + color: #818181; + /* Default label color */ + transition: all 0.2s ease; + pointer-events: none; + background: white; + padding: 0 4px; + transform-origin: top left; + transform: scale(1); + } + + input:focus+.PozoPublicInput-Label, + input:not(:placeholder-shown)+.PozoPublicInput-Label { + top: -10px; + left: 12px; + font-size: 12px; + color: #0071e3; + font-weight: 600; + /* Floating label color */ + } + + input:focus { + border-color: #0071e3; + } + + input:focus::placeholder, + input:not(:placeholder-shown)::placeholder { + opacity: 0; + } + + .PozoPublicSearchResults { + position: absolute; + width: 100%; + background-color: #FFF; + border-radius: 6px; + padding: 5px 5px; + box-shadow: rgba(0, 0, 0, 0.12) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px; + z-index: 99; + max-height: 145px; + overflow-y: auto; + } + + .PozoPublicSearchResultItem { + font-size: 14px; + padding: 6px 10px; + cursor: pointer; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + width: 100%; + + &:hover { + background-color: var(--light-gray); + } + } + +} \ No newline at end of file diff --git a/src/Components/InputWithSearch/InputWithAction.jsx b/src/Components/InputWithSearch/InputWithAction.jsx new file mode 100644 index 0000000..c629e53 --- /dev/null +++ b/src/Components/InputWithSearch/InputWithAction.jsx @@ -0,0 +1,36 @@ +import React from 'react'; +import "../InputWithSearch/InputWithAction.scss" + +const InputWithAction = ({ + onChange, + onClick, + value, + label, + placeholder, + icon, + suffix +}) => { + return ( +
+ + + {suffix && ( +
+ {suffix} +
+ )} +
+ ) +} + +export default InputWithAction \ No newline at end of file diff --git a/src/Components/InputWithSearch/InputWithAction.scss b/src/Components/InputWithSearch/InputWithAction.scss new file mode 100644 index 0000000..77746a5 --- /dev/null +++ b/src/Components/InputWithSearch/InputWithAction.scss @@ -0,0 +1,64 @@ +.dropdown-container { + position: relative; + width: 300px; + margin: 2rem; +} + +.dropdown-input { + padding: 5px !important; +} + +.dropdown-container input { + width: calc(100% - 3rem); + padding: 0.7rem; + border: 1px solid gray; + border-radius: 6px; + outline: none; + color: rgba(0, 0, 0, 0.7); + font-size: 1em; +} + +.dropdown-container label { + position: absolute; + left: 5px; + padding: 8px; + color: gray; + pointer-events: none; + font-size: 1em; + text-transform: uppercase; + font-family: 'poppins'; + transition: 0.4s; +} + +.dropdown-container input:valid~label, +.dropdown-container input:focus~label { + color: #007bff; + transform: translate(10px, -11px); + font-family: 'poppins'; + font-size: 0.75em; + padding: 0 10px; + background: white; + letter-spacing: 0.1rem; +} + +.dropdown-container input:focus { + border-color: #007bff; + box-shadow: 0 0 3px #007bff; +} + +.dropdown-container input:focus+label { + color: #007bff; +} + +.dropdown-container .suffix { + position: relative; + right: -11.5rem; + top: 0; + display: flex; + padding: -3rem; + width: 100px; + height: 73px; + flex-direction: column; + transform: translateY(-50%); + +} \ No newline at end of file diff --git a/src/Components/Loader/PozoPublicLoader.jsx b/src/Components/Loader/PozoPublicLoader.jsx new file mode 100644 index 0000000..842a68f --- /dev/null +++ b/src/Components/Loader/PozoPublicLoader.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import '../../Styles/Components/PozoPublicLoader.scss'; + +const FullPageLoader = () => { + return ( +
+
+
+ ); +}; + +export default FullPageLoader; diff --git a/src/Components/Modal/PozoPublicModal.jsx b/src/Components/Modal/PozoPublicModal.jsx new file mode 100644 index 0000000..17c011a --- /dev/null +++ b/src/Components/Modal/PozoPublicModal.jsx @@ -0,0 +1,47 @@ +import { CgClose } from "react-icons/cg"; +import React, { useEffect } from 'react'; +import "../Modal/PozoPublicModal.scss"; + +const PozoPublicModal = ({ isOpen, onClose, children }) => { + const handleClose = () => { + onClose(); + }; + + useEffect(() => { + const handleEscKey = (event) => { + if (event.key === "Escape") { + handleClose(); + } + }; + + if (isOpen) { + window.addEventListener("keydown", handleEscKey); + } + return () => { + window.removeEventListener("keydown", handleEscKey); + }; + }, [isOpen]); + + return ( +
+
+
+ +
+ + + {children} +
+
+
+ ); +}; + +export default PozoPublicModal; diff --git a/src/Components/Modal/PozoPublicModal.scss b/src/Components/Modal/PozoPublicModal.scss new file mode 100644 index 0000000..cc8ea14 --- /dev/null +++ b/src/Components/Modal/PozoPublicModal.scss @@ -0,0 +1,48 @@ +.modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgb(0 0 0 / 53%); + justify-content: center; + align-items: center; + backdrop-filter: blur(5px); +} + +.modal.open { + display: flex; + z-index: 999; +} + +.modal-overlay-pozo { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.modal-content-pozo { + min-width: 350px; + max-width: 400px; + max-height: 76vh; + background-color: #fff; + padding: 20px; + border-radius: 16px; + overflow-y: scroll; + position: relative; + box-shadow: 0px 37px 80px rgba(24, 52, 47, 0.028); +} + +.close-button-pozo { + font-size: 15px; + color: #092b247a; + background-color: transparent; + border: none; + position: absolute; + top: 10px; + right: 10px; + cursor: pointer; +} diff --git a/src/Components/Popconfirm/Popconfirm.jsx b/src/Components/Popconfirm/Popconfirm.jsx new file mode 100644 index 0000000..850cd62 --- /dev/null +++ b/src/Components/Popconfirm/Popconfirm.jsx @@ -0,0 +1,68 @@ +import { IoMdArrowDropdown } from "react-icons/io"; +import React, { useState, useEffect, useRef } from 'react'; +import PropTypes from 'prop-types'; +import { BsFillExclamationCircleFill } from 'react-icons/bs'; +import './Popconfirm.scss'; // Ensure the path is correct + +const Popconfirm = ({ title, onConfirm, onCancel, isVisible, onClose }) => { + const [isAnimating, setIsAnimating] = useState(isVisible); + const popconfirmRef = useRef(null); + + useEffect(() => { + if (isVisible) { + setIsAnimating(true); + } else { + setIsAnimating(false); + } + }, [isVisible]); + + useEffect(() => { + if (!isVisible && !isAnimating) { + onClose(); + } + }, [isAnimating, isVisible, onClose]); + + useEffect(() => { + const handleClickOutside = (event) => { + if (popconfirmRef.current && !popconfirmRef.current.contains(event.target)) { + onCancel(); // Trigger cancel when clicking outside + } + }; + + if (isVisible) { + document.addEventListener('mousedown', handleClickOutside); + } + + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, [isVisible, onCancel]); + + const animationClass = isAnimating ? 'fade-in' : 'fade-out'; + + return ( +
+ +
+
+ + {title} +
+
+
No
+
Yes
+
+
+
+ ); +}; + +Popconfirm.propTypes = { + title: PropTypes.string.isRequired, + onConfirm: PropTypes.func.isRequired, + onCancel: PropTypes.func.isRequired, + isVisible: PropTypes.bool.isRequired, + onClose: PropTypes.func.isRequired, +}; + +export default Popconfirm; diff --git a/src/Components/Popconfirm/Popconfirm.scss b/src/Components/Popconfirm/Popconfirm.scss new file mode 100644 index 0000000..4f4ed4e --- /dev/null +++ b/src/Components/Popconfirm/Popconfirm.scss @@ -0,0 +1,93 @@ +.Popconfirm-Master { + position: absolute; + z-index: 1000; + background: white; + border-radius: 8px; + box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px; + opacity: 0; + visibility: hidden; + transform: scale(0.8); + transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, visibility 0.3s ease-in-out; + top: -80px; + // left: 74px; + right: 0; + width: 12rem; + + .arrowicons { + position: absolute; + color: #fff; + font-size: 16px !important; + right: 17px; + bottom: -10px; + box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px; + + } + +} + + + +.Popconfirm-Master.fade-in { + opacity: 1; + visibility: visible; + transform: scale(1); +} + +.Popconfirm-Master.fade-out { + opacity: 0; + visibility: hidden; + transform: scale(0.8); +} + +.popconfirm-main { + padding: 16px; + display: flex; + flex-direction: column; + align-items: center; +} + +.header { + font-weight: 500; + margin-bottom: 12px; + display: flex; + align-items: center; + column-gap: 10px; + font-family: 'Gilroy', sans-serif; + /* Ensure the font is available */ +} + +.button { + display: flex; + gap: 8px; +} + +.cancel-button, +.confirm-button { + padding: 2px 8px; + border: 1px solid transparent; + border-radius: 4px; + cursor: pointer; + transition: background-color 0.2s ease; +} + +.cancel-button { + background-color: #f0f0f0b7; +} + +.confirm-button { + background-color: rgb(255, 240, 240); + color: #000; + + &:hover { + background-color: rgb(255, 220, 220); + /* Slightly different hover color */ + } +} + +@media (max-width:499px) { + .Popconfirm-Master { + top: -80px; + // left: 130px; + } + +} \ No newline at end of file diff --git a/src/Components/Popover/PopOver.jsx b/src/Components/Popover/PopOver.jsx new file mode 100644 index 0000000..36685b0 --- /dev/null +++ b/src/Components/Popover/PopOver.jsx @@ -0,0 +1,63 @@ +import { IoMdArrowDropdown } from "react-icons/io"; +import React, { useState, useRef, useEffect } from 'react'; +import "../Popover/PopOver.scss"; + +const PopOver = ({ children, content, placement = 'bottom', trigger = 'click', openDelay = 300, closeDelay = 300 }) => { + const [visible, setVisible] = useState(false); + const [timeoutId, setTimeoutId] = useState(null); + const popoverRef = useRef(null); + const targetRef = useRef(null); + + const handleToggle = () => { + if (trigger === 'click') { + setVisible(prevVisible => !prevVisible); + } + }; + + const handleMouseEnter = () => { + if (trigger === 'hover') { + clearTimeout(timeoutId); + setTimeoutId(setTimeout(() => setVisible(true), openDelay)); + } + }; + + const handleMouseLeave = () => { + if (trigger === 'hover') { + clearTimeout(timeoutId); + setTimeoutId(setTimeout(() => setVisible(false), closeDelay)); + } + }; + + const handleClickOutside = (e) => { + if (popoverRef.current && !popoverRef.current.contains(e.target) && + targetRef.current && !targetRef.current.contains(e.target)) { + setVisible(false); + } + }; + + useEffect(() => { + document.addEventListener('mousedown', handleClickOutside); + return () => document.removeEventListener('mousedown', handleClickOutside); + }, []); + + useEffect(() => { + return () => clearTimeout(timeoutId); + }, [timeoutId]); + + return ( +
+ + {children} +
+ {content} + +
+
+ ); +}; + +export default PopOver; diff --git a/src/Components/Popover/PopOver.scss b/src/Components/Popover/PopOver.scss new file mode 100644 index 0000000..c6778d4 --- /dev/null +++ b/src/Components/Popover/PopOver.scss @@ -0,0 +1,75 @@ +.popover-container { + position: relative; + display: inline-block; +} + +.popover-content { + position: absolute; + z-index: 9999; + background-color: white; + border-radius: 8px; + padding: 12px 10px; + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; + opacity: 0; + transform: scale(0.9); + transition: opacity 0.3s ease, transform 0.3s ease; + white-space: nowrap; + max-width: 700px; + text-align: center; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px !important; + left: 50%; + transform: translateX(-50%) scale(0.9); + margin-bottom: 5px; +} + +.iconarrow { + position: absolute; + bottom: -12px; + left: calc(50% - 16px); + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; +} + + +.popover-content.visible { + opacity: 1; + transform: translateX(-50%) scale(1); +} + +.popover-content.hidden { + opacity: 0; + transform: translateX(-50%) scale(0.9); +} + +// Media queries for responsiveness +@media (max-width: 768px) { + .popover-content { + max-width: 400px; + width: max-content; + font-size: 12px !important; + margin-left: 8rem; + white-space: wrap; + } + + .iconarrow { + left: 4rem; + } + +} + +@media (max-width: 480px) { + .popover-content { + max-width: 300px; + width: max-content; + font-size: 12px !important; + margin-left: 4.5rem; + white-space: wrap; + } + + .iconarrow { + left: 2rem; + } + +} \ No newline at end of file diff --git a/src/Components/PozoCarousel/PozoCarousel.jsx b/src/Components/PozoCarousel/PozoCarousel.jsx new file mode 100644 index 0000000..520e4ab --- /dev/null +++ b/src/Components/PozoCarousel/PozoCarousel.jsx @@ -0,0 +1,88 @@ +import { useEffect, useState, useCallback } from 'react'; +import "../../Styles/Components/PozoCarousel.scss"; +import Slide from "../../Images/slide.png"; + +const PozoCarousel = () => { + const [currentIndex, setCurrentIndex] = useState(0); + const [images, setImages] = useState([Slide]); + + const loadDynamicImages = useCallback(() => { + try { + const customCarousel = JSON.parse(localStorage.getItem('carouselImages')); + + if (customCarousel && Array.isArray(customCarousel) && customCarousel.length > 0) { + const dynamicImages = customCarousel + .map(item => (typeof item === 'string' ? item : item.image)) + .filter(Boolean); + if (dynamicImages.length > 0) { + setImages(dynamicImages); + return; + } + } + + // Default: only slide.png + setImages([Slide]); + } catch (err) { + console.error("Error reading carousel images from localStorage:", err); + setImages([Slide]); + } + }, []); + + useEffect(() => { + loadDynamicImages(); + window.addEventListener("storage", loadDynamicImages); + window.addEventListener("carouselImagesUpdated", loadDynamicImages); + return () => { + window.removeEventListener("storage", loadDynamicImages); + window.removeEventListener("carouselImagesUpdated", loadDynamicImages); + }; + }, [loadDynamicImages]); + + const nextSlide = useCallback(() => { + setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length); + }, [images.length]); + + const prevSlide = () => { + setCurrentIndex((prevIndex) => (prevIndex - 1 + images.length) % images.length); + }; + + const goToSlide = (index) => { + setCurrentIndex(index); + }; + + useEffect(() => { + if (images.length === 0) return; + const interval = setInterval(nextSlide, 6000); + return () => clearInterval(interval); + }, [nextSlide, images.length]); + + return ( +
+ +
+ {images.map((image, index) => ( +
+ {`Slide +
+ ))} +
+ +
+
+ {images.map((_, index) => ( +
goToSlide(index)} + >
+ ))} +
+
+
+ ); +}; + +export default PozoCarousel; \ No newline at end of file diff --git a/src/Components/PozoPublicBreadCrumb/PozoPublicBreadCrumb.jsx b/src/Components/PozoPublicBreadCrumb/PozoPublicBreadCrumb.jsx new file mode 100644 index 0000000..b4cf027 --- /dev/null +++ b/src/Components/PozoPublicBreadCrumb/PozoPublicBreadCrumb.jsx @@ -0,0 +1,60 @@ +import React, { useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { useDispatch, useSelector } from "react-redux"; +import { + breadCrumbSelector, + changeBreadCrumb, + emptyBreadCrumb, +} from "../../Features/LandingPage/landingPage.js"; +import FullPageLoader from "../../Components/Loader/PozoPublicLoader.jsx"; +import "../../Styles/Components/PozoPublicBreadCrumb.scss"; +const subDirectory = import.meta.env.BASE_URL; + +const Breadcrumbs = () => { + + const breadCrumb = useSelector(breadCrumbSelector); + const dispatch = useDispatch(); + const navigate = useNavigate(); + const [loading, setLoading] = useState(false); + + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + ]; + const handleBreadcrumbClick = (url) => { + setLoading(true); + setTimeout(() => { + dispatch(emptyBreadCrumb()); + dispatch(changeBreadCrumb({ items: items })); + navigate(url); + }, 1000); + + setLoading(false); + }; + + return ( +
+ {loading && } + +
+ ); +}; + +export default Breadcrumbs; diff --git a/src/Components/PozoPublicCard/ModalPozoPublic.jsx b/src/Components/PozoPublicCard/ModalPozoPublic.jsx new file mode 100644 index 0000000..7d94b1c --- /dev/null +++ b/src/Components/PozoPublicCard/ModalPozoPublic.jsx @@ -0,0 +1,92 @@ +import React, { useEffect, useRef } from 'react'; +import { IoCloseSharp } from 'react-icons/io5'; +// import Button from '../PozoForm/ButtonPozo'; +import { PiArrowRightBold } from 'react-icons/pi'; +import "../../Styles/Components/ModalPozoPublic.scss" + +const ModalPozoPublic = ({ + isOpen, + onClose, + width, + height, + button, + maxWidth, + maxHeight, + top, + right, + left, + bottom, + closeIcon, + title, + children, +}) => { + const modalRef = useRef(null); + + useEffect(() => { + const handleKeyDown = (event) => { + if (event.keyCode === 27) { + onClose(); + } + }; + + const handleClickOutside = (event) => { + if (modalRef.current && !modalRef.current.contains(event.target)) { + // onClose(); + } + }; + + if (isOpen) { + document.addEventListener('keydown', handleKeyDown); + document.addEventListener('mousedown', handleClickOutside); + } + + return () => { + document.removeEventListener('keydown', handleKeyDown); + document.removeEventListener('mousedown', handleClickOutside); + }; + }, [isOpen, onClose]); + + if (closeIcon === undefined) { + closeIcon = true; + } + + if (!isOpen) return null; + + const modalStyle = { + width: width, + height: height, + maxWidth: maxWidth, + maxHeight: maxHeight, + top: top, + right: right, + left: left, + bottom: bottom, + }; + + return ( +
+
+
+ {title && ( +
+

{title}

+ {closeIcon && ( + + )} +
+ )} +
{children}
+ {button && ( +
+ +
+ )} +
+
+
+ ); +}; + +export default ModalPozoPublic; \ No newline at end of file diff --git a/src/Components/PozoPublicCard/ShopCard.jsx b/src/Components/PozoPublicCard/ShopCard.jsx new file mode 100644 index 0000000..49752ca --- /dev/null +++ b/src/Components/PozoPublicCard/ShopCard.jsx @@ -0,0 +1,942 @@ +import { HiLocationMarker, HiOutlineBadgeCheck } from "react-icons/hi"; +import { TbTruckDelivery } from "react-icons/tb"; +import { BsLightningChargeFill } from "react-icons/bs"; +import { TbShare3 } from "react-icons/tb"; +import { RiDeleteBinLine } from "react-icons/ri"; +import { BiBookmark } from "react-icons/bi"; +import React, { useEffect, useState } from "react"; +import PropTypes from "prop-types"; +import { RiArrowDownSFill } from "react-icons/ri"; +import { BiRupee, BiStopwatch } from "react-icons/bi"; +import { AiOutlineHeart, AiFillStar } from "react-icons/ai"; +import { CiShop } from "react-icons/ci"; +import { GiScooter } from "react-icons/gi"; +import { IoCloseSharp } from "react-icons/io5"; +import ModalPozoPublic from "./ModalPozoPublic.jsx"; +// import ShopCardQuantity from "./ShopCardQuantity"; +import HeartSvg from "../../Images/Assets/HeartSvg"; +import "../../Styles/Components/ShopCard.scss"; +import pozologoimg from "../../Images/PozoStore.svg"; +import { useNavigate } from "react-router-dom"; +import FullPageLoader from "../../Components/Loader/PozoPublicLoader.jsx"; +import { useDispatch } from "react-redux"; +import { changeCartShow } from "../../Features/Cart/GlobalPublicBooking.js"; +const subDirectory = import.meta.env.BASE_URL; +const ShopCard = ({ + id, + shopName, + dishName, + imageUrl, + price, + deliveryTime, + deliveryDistance, + offer, + isVeg, + isNonVeg, + isFavorite, + addToCartBtn, + showCartShopName, + showQuantityModal, + showChangeQuantity, + offerValue, + deliveryAvailable, + MRP, + Buy, + QuantityPrice, + Review, + buyNow, + direction, + cartSDS, + deliveryStatus, + Cartoffer, + shopNameShow, + CartMRP, + Color, + Size, + Accredited, + showSize, + showColor, + youSave, + SDSIcon, + multiQty, + HomePrice, + ShowPinCodecheck, + ProductDescription, + InfoReview, + SingleImage, + ImageForwad, + Imagebackward, + imageChangeButtons, + imgwidth, + imgheight, + ShopCardDetailswidth, + Type, + favchecked, + data +}) => { + const navigate = useNavigate(); + const dispatch = useDispatch(); + + const [fillColor, setFillColor] = useState(isFavorite ? "white" : "#D42527"); + const [quantity, setQuantity] = useState(0); + const [isVisible, setIsVisible] = useState(false); + const [isModalOpen, setIsModalOpen] = useState(false); + const [loading, setLoading] = useState(false); + + + + const [isOpen, setIsOpen] = useState(false); + const [isCartVisible, setIsCartVisible] = useState(false); + + useEffect(() => { + if (favchecked == "Y") { + setFillColor('#D42527') + } + }, []) + + const openModal2 = () => setIsOpen(true); + const closeModal2 = () => setIsOpen(false); + const handleHeartClick = () => { + setFillColor((prevColor) => (prevColor === "white" ? "#D42527" : "white")); + }; + + const handleAddToCartClick = () => { + setIsVisible(true); + setIsCartVisible(true); + setQuantity((prevQuantity) => prevQuantity + 1); + dispatch(changeCartShow(true)); + }; + + const handleQuantityChange = (change) => { + setQuantity((prevQuantity) => { + const newQuantity = Math.max(prevQuantity + change, 0); + if (newQuantity === 0) { + setIsVisible(false); + dispatch(changeCartShow(false)); + } + return newQuantity; + }); + }; + + const openModal = () => { + setIsModalOpen(true); + }; + + const closeModal = () => { + setIsModalOpen(false); + }; + + const PageNavigate = () => { + setLoading(true); + + setTimeout(() => { + navigate(`${subDirectory}app-page/store`); + }, 700); + }; + + const PageIndividualNavigate = () => { + setLoading(true); + + setTimeout(() => { + navigate(`${subDirectory}app-page/IndividualCard`); + }, 700); + }; + + const [currentImage, setCurrentImage] = useState(imageUrl); + const [fade, setFade] = useState(true); + + useEffect(() => { + changeImage(imageUrl); + }, [imageUrl]); + const changeImage = (newImage) => { + setFade(false); + setTimeout(() => { + setCurrentImage(newImage); + setFade(true); + }, 300); // Duration of the fade-out effect + }; + + const navigateToCheckout = () => { + setLoading(true); + + setTimeout(() => { + navigate(`${subDirectory}app-page/checkout`); + setLoading(false); + }, 700); + } + + + return ( + <> + {loading && } + {isOpen && ( +
+
e.stopPropagation()}> + + large + + +
+
+ )} + +
+
+
+ {Type == "individualCard" ? ( +
+
+ {imageChangeButtons && ( +
+ +
+ )} + + {dishName} + + {imageChangeButtons && ( +
+ +
+ )} + + {isFavorite == "Y" && ( +

+ +

+ )} + {offer == "Y" && ( + {offerValue ? `${offerValue} % OFF` : ""} + )} + {isVeg == "veg" && ( +
+
+ ● +
+
+ )} + {isNonVeg == "Y" && ( +
+
+ ● +
+
+ )} +
+
+ ) : ( +
+ {imageChangeButtons && ( +
+ +
+ )} + + {dishName} + + {imageChangeButtons && ( +
+ +
+ )} + + {isFavorite == "Y" && ( +

+ +

+ )} + {offer == "Y" && ( + {offerValue ? `${offerValue} % OFF` : ""} + )} + {isVeg == "veg" && ( +
+
+ ● +
+
+ )} + {isNonVeg == "Y" && ( +
+
+ ● +
+
+ )} +
+ )} + +
+ {showQuantityModal == "Y" && ( +
+
+
+ 400 g +
+ {QuantityPrice && ( +

+ + {QuantityPrice} +

+ )} +
+ +
+

+ 4.5 +

+
(1 Review)
+
+
+ )} + + {shopNameShow == "Y" && ( +
+ {Type == "PozoCart" ? "From" : "Visit"} + {shopName} +
+ )} + +
+
+

+ {dishName} +

+ {deliveryAvailable == "Y" && ( +
+ {" "} + Delivery Available +
+ )} + {ProductDescription == "Y" && ( +
+

+ Bluetooth Soundbar w/ 500W RMS Signature Sound,5.1 + Channel Surround Sound,BTv5.3, Wall Mountable + Design,Bass&Treble Controls&Master Remote + Control(Premium Black) +

+
+ )} + {showCartShopName == "Y" && ( +
+ From + {shopName} +
+ )} + {Accredited == "Y" && ( +
+ pozologoimg + + {" "} + + Accredited + +
+ )} + {InfoReview == "Y" && ( +
+
+

+ {" "} + 4.5 +

+
(1 Review)
+ + Lorem ipsum dolor sit amet consectetur adipisicing + elit. At quas eius quaerat rerum, accusantium quis + maxime reiciendis + +
+
+ )} +
+ {Type == "individualCard" && ( +
+
+ {price && ( +

+ + {price} +

+ )} + {HomePrice && ( +

+ From{" "} + {" "} + {HomePrice} /- +

+ )} + + {CartMRP == "Y" && ( + + M.R.P.: ₹1,0099.00 + + )} + + {Cartoffer == "Y" && ( + + {offerValue ? `${offerValue} % OFF` : ""} + + )} + {youSave && ( +
You Save ₹{youSave}
+ )} +
+ + {deliveryTime && ( +
+ {deliveryTime}{" "} + {deliveryDistance && " • " + deliveryDistance} +
+ )} +
+ )} +
+ + {ShowPinCodecheck == "Y" && ( +
+
+ + { + if (e.target.value.length > 6) { + e.target.value = e.target.value.slice(0, 6); + } + }} + /> +
+

+ Check Delivery +

+
+ )} + +
+ {showSize == "Y" && ( +
+ Size :
 {Size} + +
+
+ )} + + {showColor == "Y" && ( +
+ Color :
  {Color}
+
+ )} +
+
+ {Review == "Y" && ( +
+

+ 4.5 +

+
(1 Review)
+ + Lorem ipsum dolor sit amet consectetur adipisicing elit. + At quas eius quaerat rerum, accusantium quis maxime + reiciendis + +
+ )} + {cartSDS == "Y" && ( +
+

+ {" "} + Save for later +

+

+ {" "} + delete +

+

+ {" "} + share +

+
+ )} + + {SDSIcon == "Y" && ( +
+

+ {Type !== "individualCard" && } + {Type !== "individualCard" && } + {" "} +

+
+ )} +
+
+ {MRP && M.R.P.:₹{MRP}} + {Buy == "Y" &&

BUY

} +
+ +
+ {Type !== "individualCard" && ( +
+
+ {price && ( +

+ {price} +

+ )} + {HomePrice && ( +

+ From {HomePrice} /- +

+ )} + + {/*================== cart MRP ============= */} + {CartMRP == "Y" && ( + M.R.P.: ₹1,0099.00 + )} + + {Cartoffer == "Y" && ( + + {offerValue ? `${offerValue} % OFF` : ""} + )} + {youSave && ( +
+ You Save ₹{youSave} +
+ )} +
+ + {deliveryTime && ( +
+ {deliveryTime} {deliveryDistance && " • " + deliveryDistance} +
+ )} + +
+ )} + + +
+ + {deliveryStatus == "Y" && ( +
+ + DELIVERY   Free •{" "} + 6 | Jul | Saturday +  {" "} + + Fast • Today +
+ )} + +
+ {showChangeQuantity == "Y" && ( +
+ 400 g +
+ )} + {buyNow == "Y" &&

BUY NOW

} + {isVisible ? ( +
+ handleQuantityChange(-1)}>- +

+ {quantity} +

+ handleQuantityChange(1)}>+ +
+ ) + : ( + addToCartBtn == "Y" && ( + <> +
+ Add to Cart +
+ + ) + )} +
+
+ } + title="Select your Quantity" + isOpen={isModalOpen} + > +
+ {multiQty?.map((data) => ( + + ))} +
+
+
+
+
+
+
+ + ); +}; +// console.log(ShopCard.propTypes, "ShopCardShopCard"); +ShopCard.propTypes = { + id: PropTypes.number.isRequired, + shopName: PropTypes.string.isRequired, + dishName: PropTypes.string.isRequired, + imageUrl: PropTypes.string.isRequired, + price: PropTypes.string.isRequired, + deliveryTime: PropTypes.string.isRequired, + deliveryDistance: PropTypes.string.isRequired, + direction: PropTypes.string.isRequired, + QuantityPrice: PropTypes.string.isRequired, + Color: PropTypes.string.isRequired, + Size: PropTypes.string.isRequired, + youSave: PropTypes.string.isRequired, + HomePrice: PropTypes.string.isRequired, + + offer: PropTypes.bool, + isVeg: PropTypes.bool, + isNonVeg: PropTypes.bool, + isFavorite: PropTypes.bool, + addToCartBtn: PropTypes.bool, + showCartShopName: PropTypes.bool, + showQuantityModal: PropTypes.bool, + showChangeQuantity: PropTypes.bool, + deliveryAvailable: PropTypes.bool, + Buy: PropTypes.bool, + Review: PropTypes.bool, + buyNow: PropTypes.bool, + cartSDS: PropTypes.bool, + deliveryStatus: PropTypes.bool, + Cartoffer: PropTypes.bool, + shopNameShow: PropTypes.bool, + CartMRP: PropTypes.bool, + Accredited: PropTypes.bool, + showSize: PropTypes.bool, + showColor: PropTypes.bool, + youSave: PropTypes.bool, + SDSIcon: PropTypes.bool, +}; + +ShopCard.defaultProps = { + offer: true, + isVeg: false, + isNonVeg: false, + isFavorite: true, + addToCartBtn: true, + showCartShopName: true, + showQuantityModal: true, + showChangeQuantity: true, + deliveryAvailable: true, + Buy: true, + Review: true, + buyNow: true, + cartSDS: true, + deliveryStatus: true, + Cartoffer: true, + shopNameShow: true, + CartMRP: true, + Accredited: true, + showSize: true, + showColor: true, + SDSIcon: false, +}; + +export default ShopCard; diff --git a/src/Components/PozoPublicCard/check.jsx b/src/Components/PozoPublicCard/check.jsx new file mode 100644 index 0000000..49495a4 --- /dev/null +++ b/src/Components/PozoPublicCard/check.jsx @@ -0,0 +1,902 @@ +import { HiLocationMarker, HiOutlineBadgeCheck } from "react-icons/hi"; +import { TbTruckDelivery } from "react-icons/tb"; +import { BsLightningChargeFill } from "react-icons/bs"; +import { TbShare3 } from "react-icons/tb"; +import { RiDeleteBinLine } from "react-icons/ri"; +import { BiBookmark } from "react-icons/bi"; +import React, { useEffect, useState } from "react"; +import PropTypes from "prop-types"; +import { RiArrowDownSFill } from "react-icons/ri"; +import { BiRupee, BiStopwatch } from "react-icons/bi"; +import { AiOutlineHeart, AiFillStar } from "react-icons/ai"; +import { CiShop } from "react-icons/ci"; +import { GiScooter } from "react-icons/gi"; +import { IoCloseSharp } from "react-icons/io5"; +import ModalPozoPublic from "../../Components/PozoPublicCard/ModalPozoPublic.jsx"; +// import ShopCardQuantity from "./ShopCardQuantity"; +import HeartSvg from "../../Images/Assets/HeartSvg"; +import "../../Styles/Components/ShopCard.scss"; +import pozologoimg from "../../Images/PozoStore.svg"; +import { useNavigate } from "react-router-dom"; +import FullPageLoader from "../../Components/Loader/PozoPublicLoader.jsx"; +import { useDispatch } from "react-redux"; +import { changeCartShow } from "../../Features/Cart/GlobalPublicBooking.js"; + +const ShopCard = ({ + id, + shopName, + dishName, + imageUrl, + price, + deliveryTime, + deliveryDistance, + offer, + isVeg, + isNonVeg, + isFavorite, + addToCartBtn, + showCartShopName, + showQuantityModal, + showChangeQuantity, + offerValue, + deliveryAvailable, + MRP, + Buy, + QuantityPrice, + Review, + buyNow, + direction, + cartSDS, + deliveryStatus, + Cartoffer, + shopNameShow, + CartMRP, + Color, + Size, + Accredited, + showSize, + showColor, + youSave, + SDSIcon, + multiQty, + HomePrice, + ShowPinCodecheck, + ProductDescription, + InfoReview, + SingleImage, + ImageForwad, + Imagebackward, + imageChangeButtons, + imgwidth, + imgheight, + ShopCardDetailswidth, + Type, +}) => { + const navigate = useNavigate(); + const dispatch = useDispatch(); + + const [fillColor, setFillColor] = useState(isFavorite ? "white" : "#D42527"); + const [quantity, setQuantity] = useState(0); + const [isVisible, setIsVisible] = useState(false); + const [isModalOpen, setIsModalOpen] = useState(false); + const [loading, setLoading] = useState(false); + + + + const [isOpen, setIsOpen] = useState(false); + const [isCartVisible, setIsCartVisible] = useState(false); + + const openModal2 = () => setIsOpen(true); + const closeModal2 = () => setIsOpen(false); + const handleHeartClick = () => { + setFillColor((prevColor) => (prevColor === "white" ? "#D42527" : "white")); + }; + + const handleAddToCartClick = () => { + setIsVisible(true); + setIsCartVisible(true); + setQuantity((prevQuantity) => prevQuantity + 1); + dispatch(changeCartShow(true)); + }; + + const handleQuantityChange = (change) => { + setQuantity((prevQuantity) => { + const newQuantity = Math.max(prevQuantity + change, 0); + if (newQuantity === 0) { + setIsVisible(false); + dispatch(changeCartShow(false)); + } + return newQuantity; + }); + }; + + const openModal = () => { + setIsModalOpen(true); + }; + + const closeModal = () => { + setIsModalOpen(false); + }; + + const PageNavigate = () => { + setLoading(true); + + setTimeout(() => { + navigate("/Store"); + }, 700); + }; + + const PageIndividualNavigate = () => { + setLoading(true); + + setTimeout(() => { + navigate("/IndividualCard"); + }, 700); + }; + + const [currentImage, setCurrentImage] = useState(imageUrl); + const [fade, setFade] = useState(true); + + useEffect(() => { + changeImage(imageUrl); + }, [imageUrl]); + const changeImage = (newImage) => { + setFade(false); + setTimeout(() => { + setCurrentImage(newImage); + setFade(true); + }, 300); // Duration of the fade-out effect + }; + return ( + <> + {loading && } + {isOpen && ( +
+
e.stopPropagation()}> + + large + + +
+
+ )} + +
+
+
+ {Type == "individualCard" ? ( +
+
+ {imageChangeButtons && ( +
+ +
+ )} + + {dishName} + + {imageChangeButtons && ( +
+ +
+ )} + + {isFavorite == "Y" && ( +

+ +

+ )} + {offer == "Y" && ( + {offerValue ? `${offerValue} % OFF` : ""} + )} + {isVeg == "veg" && ( +
+
+ ● +
+
+ )} + {isNonVeg == "Y" && ( +
+
+ ● +
+
+ )} +
+
+ ) : ( +
+ {imageChangeButtons && ( +
+ +
+ )} + + {dishName} + + {imageChangeButtons && ( +
+ +
+ )} + + {isFavorite == "Y" && ( +

+ +

+ )} + {offer == "Y" && ( + {offerValue ? `${offerValue} % OFF` : ""} + )} + {isVeg == "veg" && ( +
+
+ ● +
+
+ )} + {isNonVeg == "Y" && ( +
+
+ ● +
+
+ )} +
+ )} + +
+ {showQuantityModal == "Y" && ( +
+
+
+ 400 g +
+ {QuantityPrice && ( +

+ + {QuantityPrice} +

+ )} +
+ +
+

+ 4.5 +

+
(1 Review)
+
+
+ )} + + {shopNameShow == "Y" && ( +
+ {Type == "PozoCart" ? "From" : "Visit"} + {shopName} +
+ )} + +
+
+

+ {dishName} +

+ {deliveryAvailable == "Y" && ( +
+ {" "} + Delivery Available +
+ )} + {ProductDescription == "Y" && ( +
+

+ Bluetooth Soundbar w/ 500W RMS Signature Sound,5.1 + Channel Surround Sound,BTv5.3, Wall Mountable + Design,Bass&Treble Controls&Master Remote + Control(Premium Black) +

+
+ )} + {showCartShopName == "Y" && ( +
+ From + {shopName} +
+ )} + {Accredited == "Y" && ( +
+ pozologoimg + + {" "} + + Accredited + +
+ )} + {InfoReview == "Y" && ( +
+
+

+ {" "} + 4.5 +

+
(1 Review)
+ + Lorem ipsum dolor sit amet consectetur adipisicing + elit. At quas eius quaerat rerum, accusantium quis + maxime reiciendis + +
+
+ )} +
+ {Type == "individualCard" && ( +
+
+ {price && ( +

+ + {price} +

+ )} + {HomePrice && ( +

+ From{" "} + {" "} + {HomePrice} /- +

+ )} + + {CartMRP == "Y" && ( + + M.R.P.: ₹1,0099.00 + + )} + + {Cartoffer == "Y" && ( + + {offerValue ? `${offerValue} % OFF` : ""} + + )} + {youSave && ( +
You Save ₹{youSave}
+ )} +
+ + {deliveryTime && ( +
+ {deliveryTime}{" "} + {deliveryDistance && " • " + deliveryDistance} +
+ )} +
+ )} +
+ + {ShowPinCodecheck == "Y" && ( +
+
+ + { + if (e.target.value.length > 6) { + e.target.value = e.target.value.slice(0, 6); + } + }} + /> +
+

+ Check Delivery +

+
+ )} + +
+ {showSize == "Y" && ( +
+ Size :
 {Size}
+
+ )} + + {showColor == "Y" && ( +
+ Color :
  {Color}
+
+ )} +
+
+ {Review == "Y" && ( +
+

+ 4.5 +

+
(1 Review)
+ + Lorem ipsum dolor sit amet consectetur adipisicing elit. + At quas eius quaerat rerum, accusantium quis maxime + reiciendis + +
+ )} + {cartSDS == "Y" && ( +
+

+ {" "} + Save for later +

+

+ {" "} + delete +

+

+ {" "} + share +

+
+ )} + + {SDSIcon == "Y" && ( +
+

+ + + {" "} +

+
+ )} +
+
+ {MRP && M.R.P.:₹{MRP}} + {Buy == "Y" &&

BUY

} +
+ +
+ {Type !== "individualCard" && ( +
+
+ {price && ( +

+ {price} +

+ )} + {HomePrice && ( +

+ From {HomePrice} /- +

+ )} + + {/*================== cart MRP ============= */} + {CartMRP == "Y" && ( + M.R.P.: ₹1,0099.00 + )} + + {Cartoffer == "Y" && ( + + {offerValue ? `${offerValue} % OFF` : ""} + )} + {youSave && ( +
+ You Save ₹{youSave} +
+ )} +
+ + {deliveryTime && ( +
+ {deliveryTime} {deliveryDistance && " • " + deliveryDistance} +
+ )} + +
+ )} + + +
+ + {deliveryStatus == "Y" && ( +
+ + DELIVERY   Free •{" "} + 6 | Jul | Saturday +  {" "} + + Fast • Today +
+ )} + +
+ {showChangeQuantity == "Y" && ( +
+ 400 g +
+ )} + {buyNow == "Y" &&

BUY NOW

} + {isVisible ? ( +
+ handleQuantityChange(-1)}>- +

+ {quantity} +

+ handleQuantityChange(1)}>+ +
+ ) + : ( + addToCartBtn == "Y" && ( + <> +
+ Add to Cart +
+ + ) + )} +
+
+ } + title="Select your Quantity" + isOpen={isModalOpen} + > +
+ {multiQty?.map((data) => ( + + ))} +
+
+
+
+
+
+
+ + ); +}; +// console.log(ShopCard.propTypes, "ShopCardShopCard"); +ShopCard.propTypes = { + id: PropTypes.number.isRequired, + shopName: PropTypes.string.isRequired, + dishName: PropTypes.string.isRequired, + imageUrl: PropTypes.string.isRequired, + price: PropTypes.string.isRequired, + deliveryTime: PropTypes.string.isRequired, + deliveryDistance: PropTypes.string.isRequired, + direction: PropTypes.string.isRequired, + QuantityPrice: PropTypes.string.isRequired, + Color: PropTypes.string.isRequired, + Size: PropTypes.string.isRequired, + youSave: PropTypes.string.isRequired, + HomePrice: PropTypes.string.isRequired, + + offer: PropTypes.bool, + isVeg: PropTypes.bool, + isNonVeg: PropTypes.bool, + isFavorite: PropTypes.bool, + addToCartBtn: PropTypes.bool, + showCartShopName: PropTypes.bool, + showQuantityModal: PropTypes.bool, + showChangeQuantity: PropTypes.bool, + deliveryAvailable: PropTypes.bool, + Buy: PropTypes.bool, + Review: PropTypes.bool, + buyNow: PropTypes.bool, + cartSDS: PropTypes.bool, + deliveryStatus: PropTypes.bool, + Cartoffer: PropTypes.bool, + shopNameShow: PropTypes.bool, + CartMRP: PropTypes.bool, + Accredited: PropTypes.bool, + showSize: PropTypes.bool, + showColor: PropTypes.bool, + youSave: PropTypes.bool, + SDSIcon: PropTypes.bool, +}; + +ShopCard.defaultProps = { + offer: true, + isVeg: false, + isNonVeg: false, + isFavorite: true, + addToCartBtn: true, + showCartShopName: true, + showQuantityModal: true, + showChangeQuantity: true, + deliveryAvailable: true, + Buy: true, + Review: true, + buyNow: true, + cartSDS: true, + deliveryStatus: true, + Cartoffer: true, + shopNameShow: true, + CartMRP: true, + Accredited: true, + showSize: true, + showColor: true, + SDSIcon: false, +}; + +export default ShopCard; diff --git a/src/Components/PozoPublicCatergory/PozoCategory.jsx b/src/Components/PozoPublicCatergory/PozoCategory.jsx new file mode 100644 index 0000000..2a38d6d --- /dev/null +++ b/src/Components/PozoPublicCatergory/PozoCategory.jsx @@ -0,0 +1,683 @@ +import { useEffect, useRef, useState } from "react"; +import "../../Styles/Components/PozoCategory.scss"; +import MobilePng from "../../Images/mobilepng.png"; + +const PozoCategory = () => { + const categories = [ + { + "category": "Mobile & Accessories", + "subcategories": [ + { + "name": "Mobile Phones", + "types": [ + { + "typesName": "Smartphones", + "products": ["iPhone 12", "Samsung Galaxy S21", "OnePlus 9"] + }, + { + "typesName": "Feature Phones", + "products": ["Nokia 3310", "Samsung Guru", "Micromax Joy"] + }, + { + "typesName": "Rugged Phones", + "products": ["CAT S62 Pro", "Ulefone Armor 9", "Doogee S96 Pro"] + }, + { + "typesName": "Foldable Phones", + "products": ["Samsung Galaxy Z Fold 2", "Huawei Mate Xs", "Motorola Razr"] + } + ] + }, + { + "name": "Mobile Accessories", + "types": [ + { + "typesName": "Chargers", + "products": ["Anker Charger", "Belkin Charger", "Apple MagSafe"] + }, + { + "typesName": "Cables", + "products": ["Anker Cable", "Belkin Cable", "Amazon Basics Cable"] + }, + { + "typesName": "Power Banks", + "products": ["Anker PowerCore", "Mi Power Bank", "RavPower Power Bank"] + }, + { + "typesName": "Headphones & Earphones", + "products": ["Sony WH-1000XM4", "Bose QC35", "Apple AirPods"] + }, + { + "typesName": "Cases & Covers", + "products": ["Spigen Case", "OtterBox Case", "Caseology Cover"] + }, + + ] + } + ] + }, + { + "category": "Furniture", + "subcategories": [ + { + "name": "Living Room", + "types": [ + { + "typesName": "Sofas", + "products": ["Ikea Sofa", "Ashley Sofa", "West Elm Sofa"] + }, + { + "typesName": "Coffee Tables", + "products": ["Ikea Coffee Table", "West Elm Coffee Table", "Ashley Coffee Table"] + }, + { + "typesName": "TV Stands", + "products": ["Ikea TV Stand", "Ashley TV Stand", "West Elm TV Stand"] + }, + { + "typesName": "Bookshelves", + "products": ["Ikea Bookshelf", "West Elm Bookshelf", "Ashley Bookshelf"] + } + ] + }, + { + "name": "Bedroom", + "types": [ + { + "typesName": "Beds", + "products": ["Ikea Bed", "Ashley Bed", "West Elm Bed"] + }, + { + "typesName": "Wardrobes", + "products": ["Ikea Wardrobe", "Ashley Wardrobe", "West Elm Wardrobe"] + }, + { + "typesName": "Dressers", + "products": ["Ikea Dresser", "Ashley Dresser", "West Elm Dresser"] + }, + { + "typesName": "Nightstands", + "products": ["Ikea Nightstand", "Ashley Nightstand", "West Elm Nightstand"] + } + ] + }, + { + "name": "Dining Room", + "types": [ + { + "typesName": "Dining Tables", + "products": ["Ikea Dining Table", "Ashley Dining Table", "West Elm Dining Table"] + }, + { + "typesName": "Dining Chairs", + "products": ["Ikea Dining Chair", "Ashley Dining Chair", "West Elm Dining Chair"] + }, + { + "typesName": "Sideboards", + "products": ["Ikea Sideboard", "Ashley Sideboard", "West Elm Sideboard"] + }, + { + "typesName": "Bar Stools", + "products": ["Ikea Bar Stool", "Ashley Bar Stool", "West Elm Bar Stool"] + } + ] + }, + { + "name": "Office", + "types": [ + { + "typesName": "Desks", + "products": ["Ikea Desk", "Ashley Desk", "West Elm Desk"] + }, + { + "typesName": "Office Chairs", + "products": ["Ikea Office Chair", "Ashley Office Chair", "West Elm Office Chair"] + }, + { + "typesName": "File Cabinets", + "products": ["Ikea File Cabinet", "Ashley File Cabinet", "West Elm File Cabinet"] + }, + { + "typesName": "Bookcases", + "products": ["Ikea Bookcase", "West Elm Bookcase", "Ashley Bookcase"] + } + ] + }, + { + "name": "Outdoor", + "types": [ + { + "typesName": "Patio Furniture", + "products": ["Ikea Patio Furniture", "Ashley Patio Furniture", "West Elm Patio Furniture"] + }, + { + "typesName": "Garden Chairs", + "products": ["Ikea Garden Chair", "Ashley Garden Chair", "West Elm Garden Chair"] + }, + { + "typesName": "Outdoor Tables", + "products": ["Ikea Outdoor Table", "Ashley Outdoor Table", "West Elm Outdoor Table"] + }, + { + "typesName": "Hammocks", + "products": ["Ikea Hammock", "Ashley Hammock", "West Elm Hammock"] + } + ] + } + ] + }, + { + "category": "Healthcare & Pharma", + "subcategories": [ + { + "name": "Medicines", + "types": [ + { + "typesName": "Prescription Medicines", + "products": ["Medicine A", "Medicine B", "Medicine C"] + }, + { + "typesName": "Over-the-Counter Medicines", + "products": ["Medicine D", "Medicine E", "Medicine F"] + } + ] + }, + { + "name": "Supplements", + "types": [ + { + "typesName": "Vitamins", + "products": ["Vitamin A", "Vitamin B", "Vitamin C"] + }, + { + "typesName": "Minerals", + "products": ["Mineral A", "Mineral B", "Mineral C"] + }, + { + "typesName": "Herbal Supplements", + "products": ["Herb A", "Herb B", "Herb C"] + } + ] + }, + { + "name": "Personal Care", + "types": [ + { + "typesName": "Skincare", + "products": ["Skincare Product A", "Skincare Product B", "Skincare Product C"] + }, + { + "typesName": "Haircare", + "products": ["Haircare Product A", "Haircare Product B", "Haircare Product C"] + }, + { + "typesName": "Oral Care", + "products": ["Oral Care Product A", "Oral Care Product B", "Oral Care Product C"] + } + ] + }, + { + "name": "Medical Devices", + "types": [ + { + "typesName": "Thermometers", + "products": ["Thermometer A", "Thermometer B", "Thermometer C"] + }, + { + "typesName": "Blood Pressure Monitors", + "products": ["BP Monitor A", "BP Monitor B", "BP Monitor C"] + }, + { + "typesName": "Glucose Monitors", + "products": ["Glucose Monitor A", "Glucose Monitor B", "Glucose Monitor C"] + } + ] + } + ] + }, + { + "category": "Life Style & Fashion", + "subcategories": [ + { + "name": "Clothing", + "types": [ + { + "typesName": "Men's Clothing", + "products": ["Men's Shirt A", "Men's Pants B", "Men's Jacket C"] + }, + { + "typesName": "Women's Clothing", + "products": ["Women's Dress A", "Women's Top B", "Women's Skirt C"] + }, + { + "typesName": "Children's Clothing", + "products": ["Children's Shirt A", "Children's Pants B", "Children's Jacket C"] + } + ] + }, + { + "name": "Footwear", + "types": [ + { + "typesName": "Men's Footwear", + "products": ["Men's Shoes A", "Men's Boots B", "Men's Sandals C"] + }, + { + "typesName": "Women's Footwear", + "products": ["Women's Shoes A", "Women's Boots B", "Women's Sandals C"] + }, + { + "typesName": "Children's Footwear", + "products": ["Children's Shoes A", "Children's Boots B", "Children's Sandals C"] + } + ] + }, + { + "name": "Accessories", + "types": [ + { + "typesName": "Watches", + "products": ["Watch A", "Watch B", "Watch C"] + }, + { + "typesName": "Bags", + "products": ["Bag A", "Bag B", "Bag C"] + }, + { + "typesName": "Jewelry", + "products": ["Jewelry A", "Jewelry B", "Jewelry C"] + }, + { + "typesName": "Hats", + "products": ["Hat A", "Hat B", "Hat C"] + } + ] + } + ] + }, + { + "category": "Restaurant", + "subcategories": [ + { + "name": "Cuisine Type", + "types": [ + { + "typesName": "Italian", + "products": ["Dish A", "Dish B", "Dish C"] + }, + { + "typesName": "Chinese", + "products": ["Dish D", "Dish E", "Dish F"] + }, + { + "typesName": "Indian", + "products": ["Dish G", "Dish H", "Dish I"] + }, + { + "typesName": "Mexican", + "products": ["Dish J", "Dish K", "Dish L"] + } + ] + }, + { + "name": "Dining Experience", + "types": [ + { + "typesName": "Fine Dining", + "products": ["Restaurant A", "Restaurant B", "Restaurant C"] + }, + { + "typesName": "Casual Dining", + "products": ["Restaurant D", "Restaurant E", "Restaurant F"] + }, + { + "typesName": "Fast Food", + "products": ["Restaurant G", "Restaurant H", "Restaurant I"] + }, + { + "typesName": "Cafes", + "products": ["Cafe A", "Cafe B", "Cafe C"] + } + ] + }, + { + "name": "Special Services", + "types": [ + { + "typesName": "Takeout", + "products": ["Takeout Service A", "Takeout Service B", "Takeout Service C"] + }, + { + "typesName": "Delivery", + "products": ["Delivery Service A", "Delivery Service B", "Delivery Service C"] + }, + { + "typesName": "Catering", + "products": ["Catering Service A", "Catering Service B", "Catering Service C"] + } + ] + } + ] + }, + { + "category": "Bakery", + "subcategories": [ + { + "name": "Bakery Products", + "types": [ + { + "typesName": "Bread", + "products": ["Bread A", "Bread B", "Bread C"] + }, + { + "typesName": "Cakes", + "products": ["Cake A", "Cake B", "Cake C"] + }, + { + "typesName": "Cookies", + "products": ["Cookie A", "Cookie B", "Cookie C"] + }, + { + "typesName": "Pastries", + "products": ["Pastry A", "Pastry B", "Pastry C"] + } + ] + }, + { + "name": "Specialty Items", + "types": [ + { + "typesName": "Gluten-Free", + "products": ["Gluten-Free Item A", "Gluten-Free Item B", "Gluten-Free Item C"] + }, + { + "typesName": "Vegan", + "products": ["Vegan Item A", "Vegan Item B", "Vegan Item C"] + }, + { + "typesName": "Sugar-Free", + "products": ["Sugar-Free Item A", "Sugar-Free Item B", "Sugar-Free Item C"] + } + ] + }, + { + "name": "Beverages", + "types": [ + { + "typesName": "Coffee", + "products": ["Coffee A", "Coffee B", "Coffee C"] + }, + { + "typesName": "Tea", + "products": ["Tea A", "Tea B", "Tea C"] + }, + { + "typesName": "Juices", + "products": ["Juice A", "Juice B", "Juice C"] + } + ] + } + ] + }, + { + "category": "Toys & Gifts", + "subcategories": [ + { + "name": "Toys", + "types": [ + { + "typesName": "Educational Toys", + "products": ["Toy A", "Toy B", "Toy C"] + }, + { + "typesName": "Action Figures", + "products": ["Action Figure A", "Action Figure B", "Action Figure C"] + }, + { + "typesName": "Dolls", + "products": ["Doll A", "Doll B", "Doll C"] + }, + { + "typesName": "Board Games", + "products": ["Board Game A", "Board Game B", "Board Game C"] + } + ] + }, + { + "name": "Gifts", + "types": [ + { + "typesName": "Gift Cards", + "products": ["Gift Card A", "Gift Card B", "Gift Card C"] + }, + { + "typesName": "Personalized Gifts", + "products": ["Personalized Gift A", "Personalized Gift B", "Personalized Gift C"] + }, + { + "typesName": "Gift Baskets", + "products": ["Gift Basket A", "Gift Basket B", "Gift Basket C"] + }, + { + "typesName": "Flowers", + "products": ["Flower A", "Flower B", "Flower C"] + } + ] + } + ] + }, + { + "category": "HARDWARES", + "subcategories": [ + { + "name": "Tools", + "types": [ + { + "typesName": "Hand Tools", + "products": ["Hand Tool A", "Hand Tool B", "Hand Tool C"] + }, + { + "typesName": "Power Tools", + "products": ["Power Tool A", "Power Tool B", "Power Tool C"] + }, + { + "typesName": "Garden Tools", + "products": ["Garden Tool A", "Garden Tool B", "Garden Tool C"] + } + ] + }, + { + "name": "Building Materials", + "types": [ + { + "typesName": "Lumber", + "products": ["Lumber A", "Lumber B", "Lumber C"] + }, + { + "typesName": "Concrete", + "products": ["Concrete A", "Concrete B", "Concrete C"] + }, + { + "typesName": "Roofing", + "products": ["Roofing A", "Roofing B", "Roofing C"] + } + ] + }, + { + "name": "Paint", + "types": [ + { + "typesName": "Interior Paint", + "products": ["Interior Paint A", "Interior Paint B", "Interior Paint C"] + }, + { + "typesName": "Exterior Paint", + "products": ["Exterior Paint A", "Exterior Paint B", "Exterior Paint C"] + }, + { + "typesName": "Primers", + "products": ["Primer A", "Primer B", "Primer C"] + }, + { + "typesName": "Spray Paint", + "products": ["Spray Paint A", "Spray Paint B", "Spray Paint C"] + } + ] + } + ] + } + ]; + + + const scrollContainerRef = useRef(null); + const isDownRef = useRef(false); + const startXRef = useRef(0); + const scrollLeftRef = useRef(0); + const [hovered, setHovered] = useState(false); + const [selectedCategory, setSelectedCategory] = useState(null); + const [clientWidth, setClientWidth] = useState(0); + const category = categories.find(c => c.category === selectedCategory); + const subcategories = category?.subcategories || []; + + + useEffect(() => { + const updateClientWidth = () => { + if (scrollContainerRef.current) { + setClientWidth(scrollContainerRef.current.clientWidth); + } + }; + + updateClientWidth(); + + const resizeObserver = new ResizeObserver(() => { + updateClientWidth(); + }); + + if (scrollContainerRef.current) { + resizeObserver.observe(scrollContainerRef.current); + } + + return () => { + if (scrollContainerRef.current) { + resizeObserver.unobserve(scrollContainerRef.current); + } + }; + }, []); + + + const handleMouseDown = (event) => { + isDownRef.current = true; + startXRef.current = event.pageX - scrollContainerRef.current.offsetLeft; + scrollLeftRef.current = scrollContainerRef.current.scrollLeft; + scrollContainerRef.current.style.cursor = "grabbing"; + }; + + + const handleMouseLeave = () => { + isDownRef.current = false; + scrollContainerRef.current.style.cursor = "grab"; + }; + + const handleMouseUp = () => { + isDownRef.current = false; + scrollContainerRef.current.style.cursor = "grab"; + }; + + const handleMouseMove = (event) => { + if (!isDownRef.current) return; + event.preventDefault(); + const x = event.pageX - scrollContainerRef.current.offsetLeft; + const walk = (x - startXRef.current) * 1; // Scroll-fast + scrollContainerRef.current.scrollLeft = scrollLeftRef.current - walk; + }; + + + const OnchangeCategoryHover = (event) => { + setHovered(event) + } + + const handleCategoryClick = (categoryName) => { + + if (clientWidth >= 768) { + setSelectedCategory(categoryName); + } else { + // Based On categoryName API Call For Mobile Screen and redirection for the page + } + }; + + + const categoryimages = [ + MobilePng, + "https://img.freepik.com/premium-photo/retro-vinyl-club-chair-vibrant-yellow-color-isolated-solid-white-background_943617-35916.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/premium-photo/brown-medical-bottles-pills-isolated-white-background_185193-8416.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/free-photo/top-view-clothing_1203-8177.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/free-photo/view-building-with-cartoon-style-architecture_23-2151154879.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/premium-photo/basket-full-baked-delights-generative-ai_356545-457.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/premium-photo/toy-bear-present-box-red-bow-isolated-white-birthday-christmas-holiday-party-celebration_474717-7138.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + "https://img.freepik.com/premium-photo/heap-computer-hardware-isolated-white_266732-23923.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_user", + + + ] + + + return ( +
+ + + {clientWidth >= 768 && < div + className="Cascading-Div" + onMouseEnter={() => { OnchangeCategoryHover(true) }} + onMouseLeave={() => { OnchangeCategoryHover(false) }} + style={hovered ? { display: "flex" } : { display: "none" }} + > + {subcategories?.map((item, idx) => ( +
+
{item.name}
+ {item.types?.map((sub, sIdx) => (
{sub.typesName}
))} +
+ ))} +
} + + +
+
+ {categories.map((cat, index) => ( +
{ OnchangeCategoryHover(true), handleCategoryClick(cat.category) }} + onMouseLeave={() => { OnchangeCategoryHover(false) }} + + > +
+
+ {clientWidth < 768 && + +
+ +
} +
{cat.category}
+
+
+
+ ))} + +
+
+
+ ); +}; + +export default PozoCategory; diff --git a/src/Components/PozoPublicFooter/PozoPublicFooter.jsx b/src/Components/PozoPublicFooter/PozoPublicFooter.jsx new file mode 100644 index 0000000..9655a0e --- /dev/null +++ b/src/Components/PozoPublicFooter/PozoPublicFooter.jsx @@ -0,0 +1,92 @@ +import React from 'react' +import "./PozoPublicFooter.scss" +import pozologo from "../../Images/PozoStore.svg" +import playstoreIcon from "../../Images/playstore.png" +import applestoreIcon from "../../Images/applestore.png" +import { IoIosHelpCircleOutline, IoLogoLinkedin } from 'react-icons/io' +import { FaInstagramSquare } from 'react-icons/fa' +import { FaFacebook, FaXTwitter, FaYoutube } from 'react-icons/fa6' +import { PiShootingStar, PiStorefront } from 'react-icons/pi' +import { GoGift } from 'react-icons/go' + +const PozoPublicFooter = () => { + return ( +
+
+
+ +
+
+
+

ABOUT

+

Contact Us

+

About Us

+

Pozo Stories

+

Press

+
+
+

Help

+

Track Your Order

+

Warranty & Support

+

Return Policy

+

Service Centers

+

Bulk Orders

+

Why Buy Direct

+
+
+

LEARN MORE

+

Privacy

+

Security

+

Terms

+

Sitemap

+
+
+

SOCIAL MEDIA

+
+ + + + + +
+
+
+ +

Play Store

+
+
+ +

App Store

+
+
+
+
+
+ +
+
+
+ +

Become a Seller

+
+
+ +

Advertise

+
+
+ +

Become a Seller

+
+
+ +

Become a Seller

+
+
+
+

@copyright 2021, rights reserved

+
+
+ ) +} + +export default PozoPublicFooter \ No newline at end of file diff --git a/src/Components/PozoPublicFooter/PozoPublicFooter.scss b/src/Components/PozoPublicFooter/PozoPublicFooter.scss new file mode 100644 index 0000000..40dca8a --- /dev/null +++ b/src/Components/PozoPublicFooter/PozoPublicFooter.scss @@ -0,0 +1,157 @@ +.PozoPublicFooter-master { + width: 100vw; + padding: 1rem 2rem 0 2rem; + + +} + +.PozoPublicFooter-container { + display: flex; + background-color: #F0F5FF; + // height: 40vh; + padding-top: 2rem; + padding: 2rem 2rem 1rem 2rem; + flex-wrap: wrap; + gap: 1rem; +} + +.PozoPublicFooter-img-div { + width: 15%; +} + +.PozoPublicFooter-img-div img { + width: 7rem; + +} + +.PozoPublicFooter-content { + display: flex; + width: 80%; + justify-content: space-around; + flex-wrap: wrap; + gap: 1.5rem 2rem; +} + +.PozoPublicFooter-content-header { + font-size: 14px; + font-weight: 500; + padding-bottom: 0.8rem; + // color: #000001C1; +} + +.PozoPublicFooter-content-data { + font-size: 13px; + font-weight: 500; + padding: 3px 0; + color: #000001C1; + cursor: pointer; + white-space: nowrap; +} + +.PozoPublicFooter-socialmedia-icons { + display: flex; + column-gap: 15px; + align-items: center; + margin-bottom: 1rem; + cursor: pointer; +} + +.PozoPublicFooter-download-options { + display: flex; + flex-direction: column; + row-gap: 1rem; +} + +.PozoPublicFooter-download-div { + display: flex; + // border: 1px solid #000001C1; + padding: 7px 25px; + border-radius: 8px; + background-color: rgb(255, 255, 255); + align-items: center; + column-gap: 5px; + justify-content: center; +} + +.PozoPublicFooter-download-options div img { + width: 25px; +} + +.PozoPublicFooter-copyrights { + padding: 1rem 1rem; + background-color: #F0F5FF; +} + +.extera-option-container { + display: flex; + justify-content: center; + column-gap: 2rem; + row-gap: 0.5rem; + flex-wrap: wrap; + margin-bottom: 1.5rem; +} + +.extera-option { + display: flex; + align-items: center; + column-gap: 0.5rem; +} + +.PozoPublicFooter-copyrights-text { + font-size: 13px; + text-align: center; + margin: 1rem 0 0 0; + font-family: "Gilroy"; + + span { + font-weight: 600; + color: #000000; + } +} + + +@media (max-width:768px) { + .PozoPublicFooter-content { + justify-content: space-between; + width: 100%; + } + + .PozoPublicFooter-master { + padding: 1rem 1rem; + padding-bottom: 4.5rem; + } + + .PozoPublicFooter-container { + padding: 1rem 1rem; + } + + .PozoPublicFooter-content-header { + font-size: 13px; + } + + .PozoPublicFooter-content-data { + font-size: 11.5px; + font-weight: 400; + } + + .PozoPublicFooter-copyrights-text { + font-size: 10px; + font-weight: 500; + } + + .PozoPublicFooter-download-options { + flex-direction: row; + column-gap: 1rem; + justify-content: flex-start; + } + + .PozoPublicFooter-download-div { + width: max-content; + + padding: 3px 3px; + } + + .PozoPublicFooter-download-div .PozoPublicFooter-content-data { + display: none; + } +} \ No newline at end of file diff --git a/src/Components/PozoPublicNavbar/PozoPubliNavbar.jsx b/src/Components/PozoPublicNavbar/PozoPubliNavbar.jsx new file mode 100644 index 0000000..0bc4e2f --- /dev/null +++ b/src/Components/PozoPublicNavbar/PozoPubliNavbar.jsx @@ -0,0 +1,699 @@ +import { MdOutlineWatchLater } from "react-icons/md"; +import { FiSearch } from "react-icons/fi"; +import { IoIosArrowDown, IoMdClose } from "react-icons/io"; +import { MdOutlineMyLocation } from "react-icons/md"; +import { AiOutlineClose } from "react-icons/ai"; +import { useState, useEffect, useRef } from "react"; +import { useNavigate } from "react-router-dom"; +import { useDispatch, useSelector } from "react-redux"; + +import pozologo from "../../Images/PozoStore.svg"; +import { HiLocationMarker } from "react-icons/hi"; +import { + PiShoppingCartLight, + PiStorefrontLight, + PiUserCircleLight, +} from "react-icons/pi"; +import { FaChevronDown } from "react-icons/fa6"; +import { GoHeart } from "react-icons/go"; +import { RxHamburgerMenu } from "react-icons/rx"; +import "../../Styles/HomePage/PozoPublicNavbar.scss"; + +import PozoPublicSearch from "./PozoPublicSearch/PozoPublicSearch"; +import { CiViewList } from "react-icons/ci"; +import FullPageLoader from "../Loader/PozoPublicLoader"; +import samplepic from "../../Images/Restaurant.png"; +import { LuChevronDownCircle, LuChevronUpCircle } from "react-icons/lu"; +import { breadCrumbSelector, changeBreadCrumb } from "../../Features/LandingPage/landingPage"; +const subDirectory = import.meta.env.BASE_URL; + +const PozoPublicNavbar = () => { + const dispatch = useDispatch(); + const navigate = useNavigate(); + const [Searchquery, setSearchquery] = useState(''); + const breadCrumb = useSelector(breadCrumbSelector); + const dropdownRef = useRef(null); + const ref = useRef(null); + const PageName = breadCrumb?.[breadCrumb.length - 1]?.name + const [profile, setProfile] = useState(false); + const [loading, setLoading] = useState(false); + const [isCollapsed, setIsCollapsed] = useState(false); + const [isCollapsedbook, setIsCollapsedbook] = useState(true); + const [sidedrawer, setSidedrawer] = useState(true); + const [locationDropdown, setLocationDropdown] = useState(false); + const [dropdownClosing, setDropdownClosing] = useState(false); + const [showLocationList, setShowLocationList] = useState(false); + const [Locationdata, setLocationdata] = useState([]); + const [currentLocation, setCurrentLocation] = useState( + localStorage.getItem("currentLocation") || "Hosur,, PRPH+33F, Hamumanth..." + ); + + const selectLocation = (locName) => { + if (locName) { + setCurrentLocation(locName); + localStorage.setItem("currentLocation", locName); + } + toggleLocationDropdown(); + }; + + const handleTrackCurrentLocation = () => { + if (navigator.geolocation) { + setCurrentLocation("Detecting location..."); + navigator.geolocation.getCurrentPosition( + async (position) => { + const { latitude, longitude } = position.coords; + try { + const res = await fetch( + `https://nominatim.openstreetmap.org/reverse?lat=${latitude}&lon=${longitude}&format=json` + ); + const data = await res.json(); + if (data && data.display_name) { + const address = data.display_name; + setCurrentLocation(address); + localStorage.setItem("currentLocation", address); + } else { + const fallback = `${latitude.toFixed(4)}, ${longitude.toFixed(4)}`; + setCurrentLocation(fallback); + localStorage.setItem("currentLocation", fallback); + } + } catch (err) { + console.error("Reverse geocoding error:", err); + const fallback = `Lat: ${latitude.toFixed(2)}, Lon: ${longitude.toFixed(2)}`; + setCurrentLocation(fallback); + localStorage.setItem("currentLocation", fallback); + } + if (locationDropdown) { + toggleLocationDropdown(); + } + }, + (error) => { + console.error("Geolocation error:", error); + alert("Location permission denied. Please allow location access in your browser."); + setCurrentLocation(localStorage.getItem("currentLocation") || "Hosur,, PRPH+33F, Hamumanth..."); + } + ); + } else { + alert("Geolocation is not supported by your browser."); + } + }; + + const GotoHomepage = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const toSignIn = () => { + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/signin`); + }, 500); + } + + const toMyProfile = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "My Profile", + link: `${subDirectory}app-page/myprofile`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/myprofile`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const toFavOrder = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "My Orders", + link: `${subDirectory}app-page/order`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/order`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const toFavShop = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Fav Shop", + link: `${subDirectory}app-page/favshop`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/favshop`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const toFavList = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Favourite List", + link: `${subDirectory}app-page/favlist`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/favlist`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const toStore = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Stores", + link: `${subDirectory}app-page/Stores`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/Stores`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + const navigatetoCart = () => { + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Cart", + link: `${subDirectory}app-page/cart`, + }, + ]; + setLoading(true); + setTimeout(() => { + setLoading(false); + navigate(`${subDirectory}app-page/cart`); + dispatch(changeBreadCrumb({ items: items })); + }, 500); + }; + + useEffect(() => { + if (Searchquery.length > 0) { + setShowLocationList(true) + } + else if (Searchquery.length == 0) { + setShowLocationList(false) + } + }, [Searchquery]) + + useEffect(() => { + const handleClickOutside = (event) => { + if (ref.current && !ref.current.contains(event.target)) { + setProfile(false); + } + }; + + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, []); + + const handleLoginClick = () => { + setProfile(!profile); + }; + + const toggleCollapse = () => { + setIsCollapsed(!isCollapsed); + }; + + const toggleCollapsebook = () => { + setIsCollapsedbook(!isCollapsedbook); + }; + + const toggleHamburger = () => { + setSidedrawer(!sidedrawer); + }; + + const handleInputClick = () => { + setShowLocationList((prevShowLocationList) => !prevShowLocationList); + }; + + const handleSubmitLocation = (e) => { + e.preventDefault(); + + if (!Searchquery.trim()) return; + + let items = JSON.parse(localStorage.getItem('Locationdata')) || []; + + const isDuplicate = items.some(item => item.ShopLocation.toLowerCase() === Searchquery.trim().toLowerCase()); + + if (!isDuplicate) { + items.push({ ShopLocation: Searchquery.trim() }); + localStorage.setItem('Locationdata', JSON.stringify(items)); + } + + setLocationdata(items); + setSearchquery(''); + setShowLocationList(false); + }; + + useEffect(() => { + let items = JSON.parse(localStorage.getItem('Locationdata')) || []; + setLocationdata(items); + }, []); + + const deleteRecentSearch = (locationToDelete) => { + let items = JSON.parse(localStorage.getItem('Locationdata')) || []; + const updatedItems = items.filter(item => item.ShopLocation !== locationToDelete); + localStorage.setItem('Locationdata', JSON.stringify(updatedItems)); + setLocationdata(updatedItems); + }; + + const handleChange = (e) => { + setSearchquery(e.target.value); + }; + + const toggleLocationDropdown = () => { + if (locationDropdown) { + setDropdownClosing(true); + setTimeout(() => { + setLocationDropdown(false); + setDropdownClosing(false); + }, 300); + } else { + setLocationDropdown(true); + } + }; + + useEffect(() => { + const handleClickOutside = (event) => { + if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { + setDropdownClosing(true); + setTimeout(() => { + setLocationDropdown(false); + setDropdownClosing(false); + }, 300); + } + }; + + if (locationDropdown) { + document.addEventListener("mousedown", handleClickOutside); + } else { + document.removeEventListener("mousedown", handleClickOutside); + } + + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [locationDropdown]); + + const handlerSearchFuntion = () => { + if (!Searchquery.trim()) return; + + let items = JSON.parse(localStorage.getItem('Locationdata')) || []; + + const isDuplicate = items.some(item => item.ShopLocation.toLowerCase() === Searchquery.trim().toLowerCase()); + + if (!isDuplicate) { + items.push({ ShopLocation: Searchquery.trim() }); + localStorage.setItem('Locationdata', JSON.stringify(items)); + } + + setLocationdata(items); + setSearchquery(''); + setShowLocationList(false); + } + + const StoreLocation = [ + { ShopLocationName: "Pochampalli" }, + { ShopLocationName: "Hosur" }, + { ShopLocationName: "Mathur" }, + { ShopLocationName: "Dharmapuri" }, + { ShopLocationName: "Coimbatore" }, + { ShopLocationName: "Salem" }, + { ShopLocationName: "Chennai" }, + { ShopLocationName: "Namakkal" } + ]; + + const ShopLocationLists = [ + { location: "Hosur" }, + { location: "Pochampalli" }, + { location: "Mathur" }, + { location: "Dharmapuri" }, + { location: "Coimbatore" }, + { location: "Salem" }, + { location: "Chennai" }, + { location: "Namakkal" } + ]; + + const filteredData2 = Array.isArray(ShopLocationLists) + ? ShopLocationLists?.filter((item) => item?.location?.toLowerCase()?.includes(Searchquery?.toLowerCase())) + : []; + + return ( +
+
+ {loading && } + +
+
+ + pozologo +
+ + {/* Collapse Menu code area */} + {!sidedrawer && ( +
+ {/* Header */} +
+
+ +
+
Hello, Guest
+
Sign in to your account
+
+
+
+ +
+
+ +
+ +
+ Categories + {isCollapsed ? : } +
+
+
+ {["Restaurant", "Electrical, Electronic & Computers", "Bakery", "Groceries", "Lifestyle & Fashion", "Medicines & Pharma equips", "Dairy Delights"].map((cat, idx) => ( +
+ {cat} +

{cat}

+
+ ))} +
+
+ +
+ + {/* Booking */} +
+ Booking + {isCollapsedbook ? : } +
+
+
+ {["Restaurant", "Electrical, Electronic & Computers"].map((cat, idx) => ( +
+ {cat} +

{cat}

+
+ ))} +
+
+ +
+ + {/* Quick Links */} +
Stores
+
Favourite List
+
Track My Order
+ +
+ + {/* Login Button */} +
Login / Sign Up
+
+ )} + + {PageName != "checkout" &&
+
+
+ +
+
+ Location +
+
+ {currentLocation} +
+
+
+ + {locationDropdown && ( +
+ +
+

Select Delivery location + +

+ + {/* SEARCH INPUT FOR LOCATION */} +
+
+ + { + if (e.key === "Enter") + handlerSearchFuntion(); + }} + placeholder="Search Your Location..." + /> + + +
+ + {/* location list in search bar */} + {showLocationList && ( +
+ {filteredData2.length > 0 ? filteredData2.map((item, idx) => + ( +
selectLocation(item?.location)}> + {item?.location} +
+ )) + :

Location Not Found

} +
+ )} + + + {/* DETECT CURRENT LOCATION */} +
+ + Track Current Location + +
Using ( GPS )
+
+ + + {/* STORE LOCATION CODE AREA */} +
+

# Store Location

+ +
+ + +
+ {StoreLocation.map((e, idx) => { + return ( +
selectLocation(e?.ShopLocationName)}> + +
+ {e?.ShopLocationName} +
+
+ ) + })} +
+ + {/* RECENT LOCATION CODE HERE */} +
+
+

+ Recent Search

+
+ {(Locationdata?.map((e, idx) => ( +
selectLocation(e?.ShopLocation)}> +
+

+ {e?.ShopLocation} + { + event.stopPropagation(); + deleteRecentSearch(e?.ShopLocation); + }}> ⨉

+
+
+ )))} + +
+ +
+ +
+ )} +
+
|
+
+ +
+
} + +
+
+
+ +
+ +
+
+
{ setProfile(true) }}> + Login + +
+ + {profile && ( +
+
+
+ New customer? + Sign Up +
+
+
+ + My Profile +
+
+ + My Orders +
+
+ + Fav Shop +
+
+ + Fav List +
+
+ + Stores +
+
+
Sign In / Login
+
+
+ )} +
+
+
+
+
+
+
+ ); +}; + +export default PozoPublicNavbar; diff --git a/src/Components/PozoPublicNavbar/PozoPublicSearch/PozoPublicSearch.jsx b/src/Components/PozoPublicNavbar/PozoPublicSearch/PozoPublicSearch.jsx new file mode 100644 index 0000000..901161a --- /dev/null +++ b/src/Components/PozoPublicNavbar/PozoPublicSearch/PozoPublicSearch.jsx @@ -0,0 +1,222 @@ +import React, { useState, useEffect, useRef } from "react"; +import { useDispatch } from "react-redux"; +import { useNavigate } from "react-router-dom"; +import { CiSearch } from "react-icons/ci"; +import { IoIosTrendingUp } from "react-icons/io"; +import { changeSearchText } from "../../../Features/SearchBox/Search"; +import "../../../Styles/Components/PozoPublicSearch.scss"; +const subDirectory = import.meta.env.BASE_URL; + +const PozoPublicSearch = () => { + const navigateTo = useNavigate(); + const dispatch = useDispatch(); + const [dynamicPlaceholder, setDynamicPlaceholder] = useState(""); + const [animate, setAnimate] = useState(false); + const [inputValue, setInputValue] = useState(""); + const [isSearchCtnrVisible, setIsSearchCtnrVisible] = useState(false); + const [isAnimating, setIsAnimating] = useState(false); + const staticPlaceholder = "Search"; + const placeholders = [ + "Cake, Puff and more...", + "your favorite dessert...", + "delicious treats...", + ]; + const containerRef = useRef(null); + let currentIndex = 0; + + useEffect(() => { + const cyclePlaceholders = () => { + if (inputValue === "") { + setAnimate(true); // Trigger animation + setTimeout(() => { + setDynamicPlaceholder(placeholders[currentIndex]); + currentIndex = (currentIndex + 1) % placeholders.length; + setAnimate(false); // Reset animation + }, 1000); // Match this with the duration of the animation (1s) + } + }; + + cyclePlaceholders(); // Set initial placeholder + const interval = setInterval(cyclePlaceholders, 3000); // Change every 3 seconds + + dispatch(changeSearchText(inputValue)); + if (inputValue?.length > 0) { + setIsSearchCtnrVisible(false); + } + + return () => clearInterval(interval); + }, [inputValue]); + + useEffect(() => { + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, []); + + const handleInputChange = (event) => { + setInputValue(event.target.value); + }; + + const handleInputClick = () => { + setIsSearchCtnrVisible(true); + }; + + const handleClickOutside = (event) => { + if (containerRef.current && !containerRef.current.contains(event.target)) { + setIsSearchCtnrVisible(false); + } + }; + + const clearInput = () => { + setInputValue(""); + }; + + const SearchBoxDataSearched = [ + { + category: "Sweets,Snaks & Baked Items", + link: "https://img.freepik.com/free-photo/chocolate-cake-with-chocolate-sprinkles_144627-8998.jpg?t=st=1720691493~exp=1720695093~hmac=47c6f6fa8b66e399767ee94a7829ed3f1f833806d19d6a1be3cc1242ecb20fcd&w=740", + }, + { + category: "Tiffen,Lunch & Dinner", + link: "https://img.freepik.com/free-photo/spaghetti-with-vegetablesbroccolitomatoespeppers-isolated-white-background_123827-21227.jpg?t=st=1720692563~exp=1720696163~hmac=aaa7a33104a5a8cb247738e93e0e61e1a0bb6d05850644c2703f54230ff3c00c&w=740", + }, + { + category: "Samert TV's", + link: "https://img.freepik.com/premium-vector/realistic-curved-monitor-screen-isolated_92218-10.jpg?w=740", + }, + { + category: "Men, Women & Child Cloths", + link: "https://img.freepik.com/free-photo/blue-t-shirt_125540-727.jpg?t=st=1720692403~exp=1720696003~hmac=eb210324da3b78cb5562b5369f921eb21658f317be52c3360c5e98f03b8654ee&w=996", + }, + { + category: "Premium Soundbars", + link: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxISEBUTEBASEBAXEBIQFRUVFhUPFRUQFRUWFxUXFRUYHSggGBolGxUVITEhJykrLi4uFyAzODMtNygtLi0BCgoKBQUFDgUFDisZExkrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrK//AABEIAOEA4QMBIgACEQEDEQH/xAAcAAEAAQUBAQAAAAAAAAAAAAAABAEDBQYHAgj/xABAEAACAQIBCAYIAwYHAQAAAAAAAQIDEQQFBhIhMVGRoSIyQWFxgQcTIzNCUmKSosHRcnSCsbLCFCRDU2Oz0vD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A7iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaZj/SJQhKUadGpVcZSg23GnFyi2nZ63tT7ANzBzHFekXES93SpU136VR8bpcjD4rOvG1OtiZxW6GjSt5xSfMDsk5pK8mkt7dkYvE5y4OGqWKpX3RkqjXio3scZr1pTd6k5Te+Tc3xZ4A7vgsbTrQ06VSNSGy8XfXue59xIOF5NylVw89OjUcJdttklulHY14nRM38+qVW0MTahV2aX+nJ+L6nnq7wNwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5ny3iJ0cfi1HZ/jcTeL2Neunbwdraz6YPm3P+lo5Uxa/wCdy+5KX5gSsFjYVF0XZrbF7V+q7ySabCbi04tprY1qaM7k7K6laNS0ZbE9kZfo/wD7uAyoAAFSiRaqYqnHrTinuvd/atYGx5v51V8LaKfraP8AtyepL6JbYfy7jpWQs4qGKXs5aNS13TlqmvBfEu9HCamVoLqqUu9JRXPXyPGEyvP1tPQSg/WwV7uUleS1xatZ+QH0gAAAAAAAAAAAAAAAAAAAAAAAAAAB88elGno5XxPe6Ml50KX53Poc4L6YqdsqSfzUKMv6o/2gaOUZVlAJ2DytUhaOqcezSvdeD3EmplOo+2Mf2Y/+rmGfWXiS3IC7VrSl1pSkt0m5LyT2Fu54cijkB7uScl68RRX/AD0l+OJBcyXkSV8VQ/eaP/ZED6kB4cymmBcBb0xpgXAeFIqmB6BS5UAAAAAAAAAAAABS4FQeHI8SqgXbnD/TbTtlGnLseDp8VVrX/mjss65yv0w5MqVXTxEEpRp05Qml1lG+kpW7YrXfd4XsHLShTSKNgeKj1rxL7mRaz2HpzAvOZ5cyy5nlzAvOZOzfl/nMP+80f+yJitIn5vP/ADmH/eKP9cQPorG5y4ak2p14KSdnFPTknucY3afiYTF+kCmvdUZ1Hvk1TX5vkjimW8dUp5QxU4NpvF4htPWmvWytdduqxksNnDTlG8ozUu1K0l5NtagN/wAZnvi59Rwor6Y6Tt4zvySIOCznxVKpp+vnUb2xm3Ui1u0ezysaVWy9L4IJd8m5cla3Mg1so1Zbakkty6C5bfMD6Izbzhhi4ytFwqQ0dOD120r6LT7U9F7thm4zOV+hONqWJl2urTj9sZP+46dFgSlI9JkZSLkZAXrlTwpHpAVAAAAAACjYBstTqFKkyJVqAe6lYi1MQQMoZVpUve1YQe2zktLyjtZr2MzzoR6iqVX3LQjxlr5AbLWrsxeNjpppmpYzPKtL3cIU151JcXZcjBY3Kdep7ytOS3X0Y/arLkBGzrzXdNupQV43blGPNxX848NxqOkbtkvKEqTtbTpPrQ/OO6RYznzauvX4dXUoqdl8akr3W6Vuzt8doaTWnrXmVLVVdJeLXJl9QA8ixdUC/hsHOfUhKfgm+L7AIqiZPN2H+cw/7zR/riTaGa2JkrqEU9zlr5Jo23M/MpwnGriYv1kZ6UYxl0U1Zxb1K7v322AUzxzHWIlKvh2oV3rlF9So+/5ZatuzfvOf0clYhTdN4esqidnHQk3yVmu9aj6Fp0UXVBAcWydmHjaut040Y76krP7Y3fGxtWTPRfTVniK86j3QSpx4u7/kdBSIuKyvQpe8qwT3J6UvtjdgXMg5Ho4SnoYemoRb0nrcm5Wtdt63qSMqqppuLz0gtVKlKffJqC4K7fIwmLzoxVTZNU1ugtH8Tu+YHSq+NhBXqTjCO+TUVzMPi89cNDqudZ/QrL7pW5XObVKjk7yk5S3ybk+LCA23G5+15aqVOFJb37WXF2XJmEqZexUpqbxNXSTurScUv4V0eRgq+UqUNs03uj03y2eZjq+X/wDbp+c3/av1A65m/n9GVoYtKL2etiuj/HH4fFau5G9HzNkvE1a+KoU5TejPE0abiuirSqRTTttWvtPpkAAABbmy4yxWYFirIg1pkirIh1QOPekbFullPS1uMsPSclvs5xuu/okKONpNX9ZC37ST4bTcPSTm1LEwVair1qcX0fnpvW4r6ltXi12nJKbA2KtlektmlPwWiuMrPkQa2WJvqxjH8b56uRjoRbdopyluScnwRnMn5n42t1aDhH5qj9WuD6XIDEVsVOXWnJrdey+1ajrWb9HTwWHTV1/hqS4QSMFk/wBGL24jEfw01b8Uv0N+ydk2FGlGnBPQhFRV3d2W9gc2zqzLc36yirT1vZqm7Oye6XfxMfkTMytVV60Z0tdlHo6TXa29aR2P1S3FPUrcBpOT8yaMNbgm98um+epGwYfI1OPZcm4vHUaXvasIPc2tLyjtfAwuLzxox91CdV737KPPpcgM5SwqWxJF9uMVeTUY9rbUVxZoOKzsxM+o40o/TG7t3uV+SRiqtac3epOU5b5NzfPYB0HFZzYaGybqPdTWl+J2jzMPi88ZvVSpRgt8m5vgrJczVkilWrGKvKSiu9qN/C+0DIYvKter7yrNrcnoR+2NkyGkYyvlunHq6VR9y0VxevkY+vluo+rowXctJ8X+iA2OTSV20lvepLzINfK9KPxOb3RV+b1czW6tWUneUnJ723L+Z5hFydopyk9iScm/BIDLV8uzfUgo976b/JLmY7EYqc+vOUluvq+1auRnsl5jY6vZ+p9VH5qr0Pw65cjcsk+iukrPE1p1X8sPZR465PkBypbbLbuM/knM3HYi2hQlCL+Kr7JcH0n5I7VknNvDYf3NCEH8yV5Pxk9b4mZp0QNAzP8ARksPXp169f1lSnJTjCEdGGktl5S1ys9exbDpqPFONi4AAAFGWK5II+IAgVCzKJeqMsykBYnSTNdxeY+BqVXVnQvOT0pWlKMXLtbina7NlbI2LxlOmr1Kkaa+pqN/C+0CPgsk0KKtSpQpr6YqJK0UYHGZ3YeOqCnVfctCPGWvgmYPGZ315e7jCku5eslxlq5Ab02kr7FwMVjM48NT21VN7qftOa1LzZz/ABeLqVX7WpOp+020vBbEWLAbXjM9Xso0UvqqO/4I/wDoweMy7iavWrSS+WHs14dHW/NsgKJGrY2lHbNX3R6b5bPOwF5IqkYqtlr5Iec3/bH9SDWyhVltm0t0egrbnbb53A2CtXhDrzUXueuX2rXyIVbLUF1IuXe+gvLa3yMEi/hMLUqy0aVOdSW6EXN8gJFfK1WXxaC+jo/i28yDKTbu3dva3rfE3DJXo5xtWzqKGHj9T05fbH82jcsk+jHCws6zniJd70I/bHXxbA5BQoynLRhGU5fLFOT4I2fJXo/x1azlBUI76j12/YV3xsdpyfkilRjo0qUKcd0YqP8ALaT4UQOc5J9FuHjZ4ipOu9y9lDgtfM3PJmQqFBWo0YU19MUm/F7WZeNMuKAEaFEuxpl5QPSiBbUC5GB6SK2AIqAAAAAj4gkHE86ss1p4/FYarWm4wqvQhpNQ9VKMZRWitTaUkB0DKWXsNSbU60NJfDH2kvNRvbzNdxue0dlGjKXfN6K+1XvxRpiR60Hu1cAMpjM5MVU/1PVrdTXq/wAXW5mJm23dttva3rb8WUrTjFXnKMV2aTUb+F9vkQK+WaS6ulUfctBcZa1wYE8PUrvUu1vUl4t6kYCvlqo+qowXctJ+blq4JECrVlJ3nJye+TcnzA2GtlSlH4tN7oLS5uy4MgVstyfUgo976b8ti4pmKJ2TskYjEO1CjUqd6T0fOT1LiBHr4qc+vNyW7ZH7VqXAsm+ZK9GGInZ16kKK3R9rL8kuLNzyT6OsHSs5U3XlvqPTX2q0eQHGsDk+tWdqNKdV/TFyXm9iNsyV6NMXUs60oUI7veT4LVzOy4fAxglGEVGK2JJRS8kSY0QNEyT6NcHSs6iliJfW+j9kbLjc2/B5Np046NOnGnHdFKK4IyKpntQAjRol2NMvKB6UQLSge1AuWFgPKiVsegBSxUAAAAAAAAAAcJ9MeAnQyksRFWjWpwkpdnraaUJxf8Kp+N2d2Ndz3zfjjsLOjKyl16crX0KqT0ZeGtp9zYHCYZxdHVS19vSVv6b24EOvletL4tD9jov7neXMhV8POlUlTqxcKkJOEovapJ8/HtMtkvNjGYi3qsPPRfxSXq48ZbfIDESd3d629retvxZRs6Tkn0VTdnia+j9NNX/HL9DdMkZj4OhZxoRlJfFP2kvxal5AcUyZkHFYj3NCpNfNbRj90rI3DJXotrSs8RWjTXy01py+52S4M6/TwqWxF6NIDTskZgYKjZ+pVWXzVPaO/g+iuBtFHCKKSSSW5aiaqZ7UAI8aJcVMvKJVIC2oHpQPdioHlIrYqAKWKgAAAAAAAAAAAAAAAAADzKNz0AMfWyVSlLTlSpyn8zjFy4tXLiwyXYTClgI6pHpUy9YWA8KBVRPYApYWKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Z", + }, + { + category: "Medical & Pharma Equipment", + link: "https://img.freepik.com/premium-photo/many-colored-pills-white_178193-216.jpg?w=740", + }, + ]; + + const SearchBoxDataBooking = [ + { + category: "Parking Lot's", + link: "https://as2.ftcdn.net/v2/jpg/05/46/25/95/1000_F_546259563_GKZ3MCyZwpSwXHqCVn1CkoWM5ZGtmoWc.jpg", + }, + { + category: "Boating", + link: "https://t3.ftcdn.net/jpg/08/65/04/86/240_F_865048620_vJ7vHsmLs80MZialWslhZphKOikTMQls.jpg", + }, + { + category: "Parlour", + link: "https://img.freepik.com/free-vector/bag-with-cosmetics-realistic-composition-with-isolated-image-open-vanity-case-with-brushes-lipstick-illustration_1284-57081.jpg?uid=R155407159&ga=GA1.1.1582138690.1720691313&semt=ais_user", + }, + ]; + + // console.log("GIIIII", isSearchCtnrVisible, isAnimating); + return ( +
+
+
+ +
+ + + {inputValue && ( + + ✕ + + )} + + {(isSearchCtnrVisible || isAnimating) && ( +
+
+
+
+
Most Searched And Bought
+
+ {SearchBoxDataSearched.map((item) => { + return ( +
+ {item.category} +
{item.category}
{" "} +
+ ); + })} +
+
+
+
Booking
+
+ {SearchBoxDataBooking.map((item) => { + return ( +
+ {item.category} +
{item.category}
{" "} +
+ ); + })} +
+
+
+
+
+
#Trending Searches
+
+
+
+ + BOAT Airdropes 141 +
+
+ + VU 43inch Smart Tv +
+
+
+
+
+ )} +
+
+ ); +}; + +export default PozoPublicSearch; diff --git a/src/Components/PublicPozoModal/PublicPozoModal.jsx b/src/Components/PublicPozoModal/PublicPozoModal.jsx new file mode 100644 index 0000000..fe3eb7f --- /dev/null +++ b/src/Components/PublicPozoModal/PublicPozoModal.jsx @@ -0,0 +1,78 @@ +import React, { useEffect, useRef } from 'react'; +import PropTypes from 'prop-types'; +import { AiOutlineClose } from "react-icons/ai"; +import './PublicPozoModal.scss'; + +const PublicPozoModal = ({ title, children, onClose, width, height, className, onClick, handleClick, style }) => { + const modalRef = useRef(null); + + // Handle click outside modal + useEffect(() => { + const handleClickOutside = (event) => { + if (modalRef.current && !modalRef.current.contains(event.target)) { + onClose(); + } + }; + + // Handle ESC key press + const handleEscKey = (event) => { + if (event.key === 'Escape') { + onClose(); + } + }; + + document.addEventListener('mousedown', handleClickOutside); + document.addEventListener('keydown', handleEscKey); + + return () => { + document.removeEventListener('mousedown', handleClickOutside); + document.removeEventListener('keydown', handleEscKey); + }; + }, [onClose]); + + return ( +
+
+
+

{title}

+ +
+
+ {children} +
+
+ {/* */} +
+
+
+ ); +}; + +PublicPozoModal.propTypes = { + title: PropTypes.string.isRequired, + children: PropTypes.node.isRequired, + onClose: PropTypes.func.isRequired, + width: PropTypes.string, + height: PropTypes.string, + className: PropTypes.string, + style: PropTypes.object, + onClick: PropTypes.func, + handleClick: PropTypes.func +}; + +PublicPozoModal.defaultProps = { + width: '80%', + height: '80%', + className: '', + onClick: () => { }, + handleClick: () => { }, + style: {}, +}; + +export default PublicPozoModal; diff --git a/src/Components/PublicPozoModal/PublicPozoModal.scss b/src/Components/PublicPozoModal/PublicPozoModal.scss new file mode 100644 index 0000000..e6d1962 --- /dev/null +++ b/src/Components/PublicPozoModal/PublicPozoModal.scss @@ -0,0 +1,102 @@ +.PublicPozoModal-Master { + display: flex; + align-items: center; + justify-content: center; + background-color: #00000070; + width: 100%; + height: 100%; + padding: 1rem 1rem; + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + opacity: 0; + animation: fadeIn 0.3s forwards; + z-index: 1000; + backdrop-filter: blur(3px); + + &.fade-out { + animation: fadeOut 0.3s forwards; + /* Fade out on unmount */ + } + + .PublicPozoModalMain { + display: flex; + flex-direction: column; + background-color: #FFF; + padding: 1rem; + row-gap: 1rem; + border-radius: 8px; + transform: translateY(-20px); + /* Start slightly above */ + animation: slideIn 0.3s forwards; + /* Slide in on mount */ + + .headerModal { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + + svg { + cursor: pointer; + font-size: 16px; + background-color: #f3f3f3; + padding: 1px; + } + } + + .contentModal { + flex: 1; + font-size: 14px; + } + + .modal-footer { + display: flex; + justify-content: flex-end; + padding-top: 10px; + } + + .modal-action-button { + background: #007bff; + color: #fff; + border: none; + border-radius: 4px; + padding: 10px 20px; + cursor: pointer; + } + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + + + } + + to { + opacity: 0; + } +} + +@keyframes slideIn { + from { + transform: translateY(-20px); + } + + to { + transform: translateY(0); + } +} \ No newline at end of file diff --git a/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.jsx b/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.jsx new file mode 100644 index 0000000..ac1a5f4 --- /dev/null +++ b/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.jsx @@ -0,0 +1,399 @@ +import { useEffect, useState } from "react"; +import Logo from "./../../../../Images/PozoWhite.svg"; +import "./AdminNavbar.scss"; +import { IoIosMore } from "react-icons/io"; +import { IoIosArrowDown } from "react-icons/io"; +import { PiReceipt, PiUsersThreeLight } from "react-icons/pi"; +import { FiMenu } from "react-icons/fi"; +import { IoNotificationsOutline, IoSettingsOutline } from "react-icons/io5"; +import { RxDashboard } from "react-icons/rx"; +import { RiPlayListAddFill } from "react-icons/ri"; +import { BsBarChartLine } from "react-icons/bs"; +import { AiOutlineSetting } from "react-icons/ai"; +import { MdOutlineLiveHelp, MdOutlineQueryStats } from "react-icons/md"; +import { useNavigate } from "react-router-dom"; +import FullPageLoader from "../../../Loader/PozoPublicLoader"; +import { HiOutlineSpeakerphone } from "react-icons/hi"; + +const AdminNavbar = () => { + const [dropdownData, setDropdownData] = useState({ + dashboard: [], + orders: [], + products: [], + users: [], + reports: [], + settings: [], + queries: [], + customercare: [], + }); + const [sideNav, setsideNav] = useState(true); + const [windowWidth, setWindowWidth] = useState(window.innerWidth); + useEffect(() => { + if (windowWidth > 768) { + setsideNav(true); + } else if (windowWidth <= 768) { + setsideNav(false); + } + }, [windowWidth]); + + useEffect(() => { + const handleResize = () => { + setWindowWidth(window.innerWidth); + }; + + window.addEventListener("resize", handleResize); + + // Cleanup listener on unmount + return () => window.removeEventListener("resize", handleResize); + }, []); + + useEffect(() => { + // Mock API data for each dropdown + const fetchData = async () => { + const data = { + dashboard: ["Overview", "Statistics", "Performance"], + orders: ["Received Orders","Pending Orders", "Completed Orders", "Cancelled Orders"], + products: ["Add Product", "My Product", "Product Categories", "Product Reviews", "Inventory Management"], + users: ["SAdmin Dashboard","Active Users", "Inactive Users", "New Users"], + adsmanagement: ["Ads Management","Add New Ads" ], + reports: ["Sales Report", "User Report", "Revenue Report", "Payment Report"], + settings: ["Account Settings", "Notifications", "Privacy"], + queries: [ "Open Queries", "Resolved Queries", "Pending Queries", "All Queries"], + customercare: ["Phone", "Request Quries"], + SAdmin_Dashboard: ["Phone", "Request Quries"], + }; + setDropdownData(data); + }; + fetchData(); + }, []); + + const navigate = useNavigate(); + const [loading, setLoading] = useState(false); + + const PageNavigate = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/setting`); + }, 700); + }; + const PageNavigatetoproduct = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/product`); + }, 700); + }; + + + const PageNavigatetoAdsManagement = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/adsmanagement`); + }, 700); + }; + + + const NavigatetoDashboard = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/dashboard`); + }, 700); + }; + const NavigatetoMyProduct = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/myproduct`); + }, 700); + }; + + const NavigatetoOrders = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/orders`); + }, 700); + }; + + const NavigatetoSadminUsers = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/SadminUsers`); + }, 700); + }; + const NavigatetoSadminDashboard = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/sadmindashboard`); + }, 700); + }; + + const NavigatetoReports = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/sadminreport`); + }, 700); + }; + const NavigatetoSalesReports = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/salesreport`); + }, 700); + }; + const NavigatetoPaymentReports = () => { + setLoading(true); + + setLoading(false); + setTimeout(() => { + navigate(`/admin-page/paymentreport`); + }, 700); + }; + + const NavigatetoQueries = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/querymanagement`); + }, 1000); + }; + + + const NavigatetoContact = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/querycontact`); + }, 1000); + }; + + const NavigatetoQueryRequest = () => { + setLoading(true); + + setTimeout(() => { + setLoading(false); + navigate(`/admin-page/qryrqst`); + }, 1000); + }; + + + return ( + <> + {loading && } +
+
+
+
+ setsideNav(!sideNav)} + /> + + PozoLogo + +
+

Sri Krishna Silks & Readymades

+ Palacode, Tamilnadu, India +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ + {sideNav && ( +
+
+ {/* Dashboard Dropdown */} +
+
+ Dashboard + +
+
+ {dropdownData.dashboard.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* Orders Dropdown */} +
+
+ Orders +
+
+ {dropdownData.orders.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* Product Dropdown */} +
+
+ {" "} + Products{" "} + +
+
+ {dropdownData.products.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ {/* Users Dropdown */} +
+
+ {" "} + User Mangement{" "} + +
+
+ {dropdownData.users.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* Reports Dropdown */} +
+
+ {" "} + Reports{" "} + +
+
+ {dropdownData.reports.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* ads Dropdown */} +
+
+ Ads Management + +
+
+ {dropdownData?.adsmanagement?.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* Settings Dropdown */} +
+
+ Settings + +
+
+ {dropdownData.settings.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* Query Dropdown */} +
+
+ Queries + +
+
+ {dropdownData.queries.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + {/* CustomerCare Dropdown */} +
+
+ Customer Care + +
+
+ {dropdownData.customercare.map((option, index) => ( +
+ {option} +
+ ))} +
+
+ + +
+
+ )} +
+ + ); +}; + +export default AdminNavbar; diff --git a/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.scss b/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.scss new file mode 100644 index 0000000..8ddb796 --- /dev/null +++ b/src/Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.scss @@ -0,0 +1,150 @@ +.AdminNavBarMaster { + .Navoptinfos { + height: 45px; + width: 100%; + background-color: #23282d; + color: #fff; + display: flex; + align-items: center; + padding: 0 1rem; + } + + .NavOptions { + display: block !important; + } + .NavContent { + display: flex; + justify-content: space-between; + width: 100%; + align-items: center; + font-family: "Gilroy"; + + .hamMenu { + display: none; + cursor: pointer; + } + } + .NavLogowName { + display: flex; + align-items: center; + gap: 0.5rem; + + div { + display: flex; + flex-direction: column; + p { + font-size: clamp(10px, 2.5vw, 12px); + font-weight: 500; + } + a { + font-size: clamp(7px, 2.5vw, 9px); + font-family: "gilroy"; + font-weight: 100 !important; + } + } + } + + .Navmoreinfo { + display: flex; + font-size: clamp(17px, 2.5vw, 18px); + gap: 0.7rem; + div { + cursor: pointer; + } + } + + .NavOptions { + width: 100%; + height: 30px; + background-color: #3e4750; + color: #fff; + display: flex; + align-items: center; + } + + .navDrpdwn { + display: flex; + gap: 0.2rem; + font-family: "Gilroy"; + position: relative; + align-items: center; + } + + .noption { + position: relative; + font-size: 11px; + padding: 5px; + display: flex; + flex-direction: column; + gap: 0.5rem; + align-items: flex-start; + cursor: pointer; + + div { + display: flex; + align-items: center; + gap: 0.3rem; + } + + .dropdown-content { + display: none; + position: absolute; + top: 100%; + left: 0; + background-color: #f9f9f9; + padding: 0.5rem 0; + min-width: 160px; + box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2); + z-index: 1; + opacity: 0; + transition: + opacity 0.3s ease-in-out, + transform 0.3s ease-in-out; + transform: translateY(-10px); + } + + .dropdown-option { + padding: 8px 16px; + text-align: left; + cursor: pointer; + font-size: 12px; + color: #000; + } + + .dropdown-option:hover { + background-color: #e3333313; + color: #e33333; + font-weight: 600; + } + + &:hover .dropdown-content { + display: block; + opacity: 1; + transform: translateY(0); + } + } +} + +@media (max-width: 768px) { + .hamMenu { + display: block !important; + font-size: 25px; + } + .NavOptions { + position: absolute; + + display: block !important; + background-color: #3e4750 !important; + height: 100vh !important; + z-index: 12; + width: 12rem !important; + padding: 1rem 0.7rem; + .navDrpdwn { + flex-direction: column; + align-items: flex-start; + } + .dropdown-content { + position: relative !important; + } + } +} diff --git a/src/Components/SAdmin/SadminPanel/SadminPanel.jsx b/src/Components/SAdmin/SadminPanel/SadminPanel.jsx new file mode 100644 index 0000000..6eb92bd --- /dev/null +++ b/src/Components/SAdmin/SadminPanel/SadminPanel.jsx @@ -0,0 +1,483 @@ +import React, { useState } from 'react' +import { CiGlobe } from "react-icons/ci"; +import { IoChevronDown } from "react-icons/io5"; +import "./SadminPanel.scss" +import PozoPublicDropDown from '../../DropDown/PozoPublicDropDown'; +import PozoPublicDatePicker from '../../DatePicker/PozoPublicDatePicker'; +import { IoIosRefresh } from 'react-icons/io'; +import { RxDownload } from "react-icons/rx"; +import { HiOutlinePrinter } from "react-icons/hi2"; +import { useDispatch } from 'react-redux'; +import { changeglobalModuleTabColor } from '../../../Features/AdminPanel/AdminPanel'; + +const SadminPanel = () => { + const dispach= useDispatch() + const [selectedCountry, setSelectedCountry] = useState(''); + const [selectedYear, setSelectedYear] = useState(''); + const [isYear, setIsYear] = useState(false); + const [isOpen, setIsOpen] = useState(false); + + const [activeTab, setActiveTab] = useState('All Categories'); + + const [selectedMonthYear, setSelectedMonthYear] = useState(''); + const [selectedMYear, setSelectedMYear] = useState(''); + const [isMonthYear, setIsMonthYear] = useState(false); + + + const tabs = ['All Categories', 'Grocery', 'Food Delivery', 'Meat', 'Book']; + + const tabColors = { + 'All Categories': { + // background: '#FFD700', + background: '#EFF7FD', + color: '#000000', + activeBackground: '#60B0E9', + activeColor: '#fff', + tabBgColor:"#C2D9EA" + + }, + 'Grocery': { + // background: '#32CD32', + background: '#f8fff3', + color: '#000', + activeBackground: '#3D9315', + activeColor: '#FFFFFF', + tabBgColor:"#BDE2AC" + + }, + 'Food Delivery': { + // background: '#FA5353', + background: '#FFEFEF', + color: '#000', + activeBackground: '#F06565', + activeColor: '#FFFFFF', + tabBgColor:"#FFD6D6" + + }, + // 'Food Delivery': { + // background: '#FA5353', + // background: '#f1f1ff', + // color: '#000', + // activeBackground: '#978FF4', + // activeColor: '#FFFFFF', + // tabBgColor:"#C8C4ED" + + // }, + 'Meat': { + // background: '#B7532E', + background: '#fff5f3', + color: '#000', + activeBackground: '#CF7213', + activeColor: '#FFFFFF', + tabBgColor:"#EAD6C2" + + }, + 'Book': { + // background: '#A486FF', + background: '#F7F1F3', + color: '#000', + activeBackground: '#AC7882', + activeColor: '#FFFFFF', + tabBgColor:"#F4CBD9" + }, + +}; + + + const countries = [ + { name: 'UAE', flag: 'https://uxwing.com/wp-content/themes/uxwing/download/flags-landmarks/united-arab-emirates-flag-icon.png', fullName: 'United Arab Emirates' }, + { name: 'India', flag: 'https://uxwing.com/wp-content/themes/uxwing/download/flags-landmarks/india-flag-icon.png', fullName: 'Republic of India' }, + { name: 'UK', flag: 'https://uxwing.com/wp-content/themes/uxwing/download/flags-landmarks/united-kingdom-flag-icon.png', fullName: 'United Kingdom' }, + { name: 'USA', flag: 'https://uxwing.com/wp-content/themes/uxwing/download/flags-landmarks/united-states-flag-icon.png', fullName: 'United States of America' }, + + ]; + + const handleSelect = (country) => { + setSelectedCountry(country); + setIsOpen(false); + }; + + const [isHovered, setIsHovered] = useState(false); + + const selectedFlag = countries.find(c => c.name === selectedCountry)?.flag; + + + + + // Define a range of years + const startYear = 2000; + const endYear = new Date().getFullYear(); + const years = Array.from({ length: endYear - startYear + 1 }, (v, i) => startYear + i); + + const handleSelectYr = (year) => { + setSelectedYear(year); + setIsYear(false); + }; + + + + // Define month names + const months = [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' + ]; + + const handleSelectMonthYear = (month, year) => { + setSelectedMonthYear(`${month}, ${year}`); + setIsMonthYear(false); + }; + + const handleSelectYear = (year) => { + setSelectedMYear(year); // Set the selected year + }; + +const categoryClick = async(tab,color,background,activeBackground,tabBgColor)=>{ + setActiveTab(tab) + + let data = { + categorry:tab, + color:color, + background: background, + activeBackground:activeBackground, + tabBgColor:tabBgColor, + } + await dispach(changeglobalModuleTabColor(data)) + console.log(data,"checkdata") +} + + + + return ( + +
+ + +
+
+ +
+
+ +
+
+
setIsOpen(!isOpen)} + onMouseEnter={() => setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)} + style={{ + border: '1px solid #ccc', + padding: '5px', + cursor: 'pointer', + height: "2rem ", + display: 'flex', + alignItems: 'center', + position: 'relative', + borderRadius: "6px" + }} + > + {selectedFlag ? ( + <> + {`${selectedCountry} + {/* {selectedCountry} */} + + ) + : ( + Country + )} + +
+ + {/* Tooltip for selected country with full name */} + {isHovered && selectedCountry && ( +
+ {countries.find(c => c.name === selectedCountry)?.fullName} +
+ )} + + {isOpen && ( +
+ {countries.map((country) => ( +
handleSelect(country.name)} + style={{ + padding: '10px', + display: 'flex', + alignItems: 'center', + cursor: 'pointer' + }} + > + {`${country.name} + {country.name} +
+ ))} +
+ )} +
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ + +
+
+
setIsYear(!isYear)} + style={{ + padding: '5px', + cursor: 'pointer', + display: 'flex', + fontSize: "11.5px", + alignItems: 'center', + position: 'relative', + borderRadius: "6px", + }} + > + {selectedYear ? ( + {selectedYear} + ) : ( + Year + )} + +
+ + {isYear && ( +
+ {years.map((year) => ( +
handleSelectYr(year)} + style={{ + padding: '10px', + cursor: 'pointer' + }} + > + {year} +
+ ))} +
+ )} +
+ +
+
setIsMonthYear(!isMonthYear)} + style={{ + // border: '1px solid #ccc', + padding: '10px', + cursor: 'pointer', + display: 'flex', + alignItems: 'center', + position: 'relative', + borderRadius: "6px", + textWrap: "nowrap", + }} + > + + {selectedMonthYear || 'Month'} + + +
+ + {/* Dropdown showing the year and then the corresponding months */} + {isMonthYear && ( +
+ {/* Year Section on the left */} +
+ {years.map((year) => ( +
setSelectedMYear(year)} + style={{ + padding: '5px', + cursor: 'pointer', + zIndex: '2', + backgroundColor: year === selectedMYear ? '#f0f0f0' : 'transparent' // Highlight selected year + }} + > + {year} +
+ ))} +
+ + {/* Month Section on the right (shown only after selecting a year) */} + {selectedMYear && ( +
+ {months.map((month) => ( +
handleSelectMonthYear(month, selectedMYear)} + style={{ padding: '5px', cursor: 'pointer' }} + > + {month} +
+ ))} +
+ )} +
+ )} +
+ + +
+ + +
+
+ +
+ + + +
+ +
+ {/* Tab Switch Section */} +
+ {tabs.map((tab) => ( +
categoryClick(tab,tabColors[tab].activeBackground ,tabColors[tab].background,tabColors[tab].tabBgColor) } + style={{ + padding: '5px 10px ', + fontSize: "12px", + textTransform: "uppercase", + // borderBottom: activeTab === tab ? '2px solid #000' : 'none', + borderRadius:'3px', + backgroundColor: activeTab === tab ? tabColors[tab].activeBackground : tabColors[tab].background, + color: activeTab === tab ? tabColors[tab].activeColor : tabColors[tab].color, + // color:"#000", + + // color: activeTab === tab ? '#000' : '#A6A6A6', + fontWeight: activeTab === tab ? '600' :"600", + }} + > + {tab} +
+ ))} +
+ +
+
REFRESH
+
DOWNLOAD
+
PRINT
+
+ +
+ + + +
+
+ +
+ ) +} + +export default SadminPanel \ No newline at end of file diff --git a/src/Components/SAdmin/SadminPanel/SadminPanel.scss b/src/Components/SAdmin/SadminPanel/SadminPanel.scss new file mode 100644 index 0000000..f60f98d --- /dev/null +++ b/src/Components/SAdmin/SadminPanel/SadminPanel.scss @@ -0,0 +1,145 @@ +.SadminPanelDiv{ + + display: flex; + flex-direction: column; + row-gap: 0.5rem; + padding: 0.5rem 0.2rem; + +.panelFilterhead{ + display: flex; + padding: 0rem 0.5rem; + column-gap: 1rem; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + + .pnlfltrlftPart{ + display: flex; + column-gap: 1rem; + align-items: center; + flex-wrap: wrap; + gap: 0.5rem; + } + + .Statre-drp-dwn{ + .PozoPublicDropDown-Master { + .PozoPublicDropDownMain{ + svg{ + font-size: 10px; + } + input{ + font-size: 11.5px; + } + } + .PozoPublicDropDownOption{ + font-size: 11.5px; + } + } + + + } + + + .rptCalnder{ + display: flex; + justify-content: space-between; + align-items: center; + + .yrdiv{ + color: #575757; + + :hover{ + color: rgb(0, 0, 0); + font-weight: 600; + } + } + + .YrMntdatepicker{ + .date-picker{ + width: unset !important; + } + .date-picker .pickermain{ + border: none !important; + width: min-content; + } + .calendar{ + left: unset; + right: 0px; + } + .date-picker input{ + width: 50px; + // min-width: 50px; + // max-width: max-content; + font-size: 11.6px; + color: #000; + } + } + } + +} + + + +.PanelTabSwitchHead { + // border-bottom: 1px solid #ccc; + display: flex; + flex-wrap: wrap; + row-gap: 0.5rem; + justify-content: space-between; + font-size: 10.5px; + padding-right: 1rem; + // background-color: #dddddde0; + // border-radius: 6px; + align-items: center; + .TabSwitch div { + font-size: 16px; + padding: 10px; + } + + .TabSwitch div:hover { + color: #007BFF; + } + + .Othractns{ + display:flex ; + font-weight: 600; + font-size:9.7px; + padding: 0 0.5rem; + column-gap: 0.7rem; + border-radius: 6px; + div{ + cursor: pointer; + display: flex; + align-items: center; + gap: 0.3rem ; + } + + div:hover{ + color: #007BFF; + } + } + } + + +} +@media (max-width: 768px) { +.PozoPublicSadminReportMaster .CommonFltrhd { + height: unset !important; +} +.SadminPanelDiv .PanelTabSwitchHead{ +text-wrap: nowrap; +} +.TabSwitch { + overflow: scroll; +} + +.Statre-drp-dwn{ + .PozoPublicDropDown-Master { + width: 5rem !important; + + .PozoPublicDropDownMain{ + width: 5rem !important; + } + } +} +} \ No newline at end of file diff --git a/src/Components/SearchInput/PozoPublicSearchInput.jsx b/src/Components/SearchInput/PozoPublicSearchInput.jsx new file mode 100644 index 0000000..50127da --- /dev/null +++ b/src/Components/SearchInput/PozoPublicSearchInput.jsx @@ -0,0 +1,45 @@ +import React, { useState } from 'react'; +import { FiSearch } from "react-icons/fi"; // Importing search icon from react-icons +import "../../Components/SearchInput/PozoPublicSearchInput.scss"; + +const PozoPublicSearchInput = ({ + label = "Search", + placeholder = "Search...", + value = "", + onChange, + width = "100%", + height = "auto", + searchIcon = , // Default search icon using React Icons + disabled = false, + className = "" +}) => { + const [inputValue, setInputValue] = useState(value); + + const handleInputChange = (e) => { + setInputValue(e.target.value); + if (onChange) onChange(e.target.value); // Call onChange from parent + }; + + return ( +
+
+ + {searchIcon} + + +
+
+ ); +} + +export default PozoPublicSearchInput; diff --git a/src/Components/SearchInput/PozoPublicSearchInput.scss b/src/Components/SearchInput/PozoPublicSearchInput.scss new file mode 100644 index 0000000..459cb07 --- /dev/null +++ b/src/Components/SearchInput/PozoPublicSearchInput.scss @@ -0,0 +1,46 @@ +.PozoPublicSearchInput { + display: flex; + align-items: center; + border: 1px solid #ccc; + border-radius: 6px; + transition: border-color 0.3s ease; + width: 100%; + height: auto; + padding: 10px; + + &:hover { + border-color: #0071e3; + } + + .PozoPublicSearchInput-main { + display: flex; + align-items: center; + width: 100%; + } + + .PozoPublicSearchInput-icon { + color: #818181; + margin-right: 8px; + font-size: 14px; + } + + .PozoPublicSearchInput-input { + flex: 1; + border: none; + outline: none; + font-family: var(--Pozo-Fontfamily); + font-size: 14px; + padding: 1px; + background: transparent; + letter-spacing: 0.7px; + + &::placeholder { + color: #818181; + font-size: 14px; + } + + &:focus { + outline: none; + } + } +} \ No newline at end of file diff --git a/src/Components/Toast/Toast.jsx b/src/Components/Toast/Toast.jsx new file mode 100644 index 0000000..6411d89 --- /dev/null +++ b/src/Components/Toast/Toast.jsx @@ -0,0 +1,44 @@ +import React, { useEffect, useState } from 'react'; +import { FaTimes } from 'react-icons/fa'; +import '../../Styles/Components/Toast.scss'; +import { IoCloseOutline } from 'react-icons/io5'; + +const Toast = ({ children, duration, isVisible, onClose, position = 'bottom-right' }) => { + const [timeLeft, setTimeLeft] = useState(duration / 1000); + + useEffect(() => { + if (isVisible) { + setTimeLeft(duration / 1000); + const timer = setInterval(() => { + setTimeLeft((prev) => prev - 1); + }, 1000); + const autoClose = setTimeout(onClose, duration); + + return () => { + clearInterval(timer); + clearTimeout(autoClose); + }; + } + }, [isVisible, duration, onClose]); + + const positionStyles = { + 'bottom-right': { bottom: '20px', right: '20px' }, + 'bottom-left': { bottom: '20px', left: '20px' }, + 'top-right': { top: '20px', right: '20px' }, + 'top-left': { top: '20px', left: '20px' }, + }; + + return ( + isVisible && ( +
+
+ {children} +
+
{timeLeft}s
+ +
+ ) + ); +}; + +export default Toast; \ No newline at end of file diff --git a/src/Components/Toast/ToastManager.jsx b/src/Components/Toast/ToastManager.jsx new file mode 100644 index 0000000..9f166c6 --- /dev/null +++ b/src/Components/Toast/ToastManager.jsx @@ -0,0 +1,39 @@ +import React, { useState, useEffect } from 'react'; +import Toast from './Toast'; // Adjust the import path accordingly + +const ToastManager = ({ messages, duration, interval, position }) => { + const [isToastVisible, setIsToastVisible] = useState(false); + const [currentMessage, setCurrentMessage] = useState(''); + + useEffect(() => { + let messageIndex = 0; + + const showNextToast = () => { + setCurrentMessage(messages[messageIndex]); + setIsToastVisible(true); + + setTimeout(() => { + setIsToastVisible(false); + }, duration); + + messageIndex = (messageIndex + 1) % messages.length; + }; + + const intervalId = setInterval(showNextToast, interval); + + return () => clearInterval(intervalId); + }, [messages, duration, interval]); + + return ( + setIsToastVisible(false)} + position={position} + > + {currentMessage} + + ); +}; + +export default ToastManager; diff --git a/src/Components/ToastMessage/ToastMessage.jsx b/src/Components/ToastMessage/ToastMessage.jsx new file mode 100644 index 0000000..66666a7 --- /dev/null +++ b/src/Components/ToastMessage/ToastMessage.jsx @@ -0,0 +1,44 @@ +import React, { useEffect } from 'react'; +import { FaCheck, FaExclamation, FaTimes } from "react-icons/fa"; +import PropTypes from 'prop-types'; +import "../ToastMessage/ToastMessage.scss"; + +const ToastMessage = ({ type, message, onClose }) => { + const renderIcon = () => { + switch (type) { + case 'success': + return
; + case 'warning': + return
; + case 'error': + return
; + default: + return null; + } + }; + + useEffect(() => { + const timer = setTimeout(() => { + if (onClose) onClose(); + }, 2800); + + return () => clearTimeout(timer); + }, [onClose]); + + return ( +
+
+ {renderIcon()} + {message} +
+
+ ); +}; + +ToastMessage.propTypes = { + type: PropTypes.oneOf(['success', 'warning', 'error']).isRequired, + message: PropTypes.string.isRequired, + onClose: PropTypes.func, +}; + +export default ToastMessage; diff --git a/src/Components/ToastMessage/ToastMessage.scss b/src/Components/ToastMessage/ToastMessage.scss new file mode 100644 index 0000000..d908409 --- /dev/null +++ b/src/Components/ToastMessage/ToastMessage.scss @@ -0,0 +1,83 @@ +.dynamic-island-wrapper { + position: fixed; + top: 16px; + left: 50%; + transform: translateX(-50%); + z-index: 999999; + pointer-events: none; +} + +.dynamic-island-pill { + pointer-events: auto; + display: inline-flex; + align-items: center; + gap: 9px; + padding: 7px 18px 7px 10px; + background: #000000; + color: #ffffff; + border-radius: 9999px; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.15); + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important; + animation: dynamicIslandExpand 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; + white-space: nowrap; + + .dynamic-island-badge { + width: 22px; + height: 22px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + + &.success { + background-color: #22c55e; + color: #ffffff; + } + + &.warning { + background-color: #f59e0b; + color: #ffffff; + } + + &.error { + background-color: #ef4444; + color: #ffffff; + } + } + + .dynamic-island-text { + font-size: 13px; + font-weight: 600; + color: #ffffff; + letter-spacing: -0.1px; + } +} + +@keyframes dynamicIslandExpand { + 0% { + opacity: 0; + transform: scaleX(0.4) scaleY(0.6); + } + 50% { + opacity: 1; + } + 100% { + opacity: 1; + transform: scaleX(1) scaleY(1); + } +} + +@media (max-width: 480px) { + .dynamic-island-wrapper { + top: 12px; + } + + .dynamic-island-pill { + padding: 8px 16px 8px 10px; + + .dynamic-island-text { + font-size: 12.5px; + } + } +} \ No newline at end of file diff --git a/src/Components/ToastMessage/oldtoastmesaage.jsx b/src/Components/ToastMessage/oldtoastmesaage.jsx new file mode 100644 index 0000000..51f1f66 --- /dev/null +++ b/src/Components/ToastMessage/oldtoastmesaage.jsx @@ -0,0 +1,46 @@ +// import React, { useState } from 'react'; +// import { IoMdThumbsUp } from 'react-icons/io'; +// import "../ToastMessage/ToastMessage.scss"; + +// const ToastMessage = () => { +// const [isToastMessageOpen, setIsToastMessageOpen] = useState(false); +// const [currentToast, setCurrentToast] = useState({ type: '', content: '' }); + +// const showToastMessage = (type, content) => { +// setCurrentToast({ type, content }); +// setIsToastMessageOpen(true); + +// setTimeout(() => { +// setIsToastMessageOpen(false); +// }, 3000); +// }; + +// const Toasttext = [ +// { type: "success", content: "Operation successful" }, +// { type: "error", content: "Operation failed" }, +// { type: "warning", content: "Check the operation" }, +// ]; + +// return ( +//
+//
+// +// {currentToast.content} +//
+//
+// {Toasttext.map((item, index) => ( +// +// ))} +//
+//
+// ); +// } + +// export default ToastMessage; diff --git a/src/Components/ToggleSwitch/ToggleSwitch.jsx b/src/Components/ToggleSwitch/ToggleSwitch.jsx new file mode 100644 index 0000000..5512ff9 --- /dev/null +++ b/src/Components/ToggleSwitch/ToggleSwitch.jsx @@ -0,0 +1,24 @@ +import React, { useState } from 'react'; +import './ToggleSwitch.scss'; // Ensure you have this SCSS file for styling + +const ToggleSwitch = () => { + // Initialize state to true for an active toggle switch + const [isActive, setIsActive] = useState(true); + + // Function to handle toggle switch change + const handleToggle = () => { + setIsActive((prev) => { + const newState = !prev; + // alert(newState ? 'The toggle is ON!' : 'The toggle is OFF!'); // Alert based on new state + return newState; + }); + }; + + return ( +
+
+
+ ); +}; + +export default ToggleSwitch; diff --git a/src/Components/ToggleSwitch/ToggleSwitch.scss b/src/Components/ToggleSwitch/ToggleSwitch.scss new file mode 100644 index 0000000..2c90ae8 --- /dev/null +++ b/src/Components/ToggleSwitch/ToggleSwitch.scss @@ -0,0 +1,40 @@ +.toggle-switch { + display: inline-flex; + align-items: center; + cursor: pointer; + position: relative; + width: 30px; + height: 14px; + border-radius: 12px; + transition: background-color 0.2s; + + // Off state background color (red) + &.off { + background-color: red; // Change to red when off + + .toggle-indicator { + background-color: white; + transform: translateX(2px); // Indicator position for OFF + } + } + + // On state background color (green) + &.on { + background-color: #4caf50; // On color (green) + + .toggle-indicator { + background-color: white; + transform: translateX(16px); // Indicator position for ON + } + } + + .toggle-indicator { + position: absolute; + top: 1px; + width: 12px; + height: 12px; + background-color: white; + border-radius: 50%; + transition: transform 0.2s; + } +} diff --git a/src/Components/Tooltip/PozoPublicTooltip.jsx b/src/Components/Tooltip/PozoPublicTooltip.jsx new file mode 100644 index 0000000..b799029 --- /dev/null +++ b/src/Components/Tooltip/PozoPublicTooltip.jsx @@ -0,0 +1,46 @@ +import React, { useState, useEffect } from 'react'; +import "../../Components/Tooltip/PozoPublicTooltip.scss"; + +const PozoPublicTooltip = ({ infoText, children }) => { + const [showTooltip, setShowTooltip] = useState(false); + const [hovered, setHovered] = useState(false); + + useEffect(() => { + let showTimeout; + let hideTimeout; + + if (hovered) { + showTimeout = setTimeout(() => { + setShowTooltip(true); + }, 100); + } else { + hideTimeout = setTimeout(() => { + setShowTooltip(false); + }, 100); + } + + return () => { + clearTimeout(showTimeout); + clearTimeout(hideTimeout); + }; + }, [hovered]); + + return ( +
setHovered(true)} + onMouseLeave={() => setHovered(false)} + > + {children} + + {/* Tooltip content */} +
+ {infoText} + {/* Arrow indicator */} +
+
+
+ ); +}; + +export default PozoPublicTooltip; diff --git a/src/Components/Tooltip/PozoPublicTooltip.scss b/src/Components/Tooltip/PozoPublicTooltip.scss new file mode 100644 index 0000000..fde7764 --- /dev/null +++ b/src/Components/Tooltip/PozoPublicTooltip.scss @@ -0,0 +1,73 @@ +.tooltip-container { + display: flex; + flex-direction: column; + gap: 0px; + align-items: center; + justify-content: center; + position: relative; + top: 20px; +} + +.tooltip { + max-width: 80vw; + font-size: 15px !important; + font-weight: 400; + background-color: rgba(0, 0, 0, 0.925); + text-align: center; + padding: 4px 16px; + border-radius: 6px; + border: 1px solid #d8e2e2; + position: absolute; + top: -51px; + transition: all 0.3s ease; + opacity: 0; + color: #fff; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + z-index: 100; + left: -40px; + transform: scale(0.5); + will-change: transform, opacity; +} + +.tooltip.open { + transform: scale(1); + opacity: 1; +} + +.arrow { + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 10px solid rgba(0, 0, 0, 0.925); + position: absolute; + bottom: -5px; + left: 50%; + transform: translateX(-50%); +} + +@media (max-width: 768px) { + .tooltip { + font-size: 10px; + padding: 4px 14px; + top: -50px; + } +} + +@media (max-width: 480px) { + .tooltip { + font-size: 9px; + padding: 6px 10px; + top: -55px; + } + + .arrow { + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + bottom: -8px; + left: 50%; + transform: translateX(-50%); + } + +} \ No newline at end of file diff --git a/src/Features/AdminPanel/AdminPanel.js b/src/Features/AdminPanel/AdminPanel.js new file mode 100644 index 0000000..8f3205a --- /dev/null +++ b/src/Features/AdminPanel/AdminPanel.js @@ -0,0 +1,24 @@ +import { createSlice } from "@reduxjs/toolkit"; + +const AdminPanel = createSlice({ + name: "adminpanel", + initialState: { + ModuleTabColor: { + "categorry": "All Categories", + "color": "#60B0E9", + "background": "#EFF7FD", + "activeBackground": "#C2D9EA", + "tabBgColor":"#C2D9EA" +}, + }, + reducers: { + changeglobalModuleTabColor: (state, action) => { + state.ModuleTabColor=action.payload + }, + + }, +}); + +export const {changeglobalModuleTabColor} = AdminPanel.actions +export const GlobalModuleTabColor = (state)=>state?.AdminPanel?.ModuleTabColor +export default AdminPanel.reducer; diff --git a/src/Features/Cart/GlobalPublicBooking.js b/src/Features/Cart/GlobalPublicBooking.js new file mode 100644 index 0000000..b6851d9 --- /dev/null +++ b/src/Features/Cart/GlobalPublicBooking.js @@ -0,0 +1,26 @@ +import { createSlice } from "@reduxjs/toolkit"; + + + +const initialState = { cartShow: false, CartitemsCount: 1 }; + +const PublicBooking = createSlice({ + name: "PublicBooking", + initialState: initialState, + reducers: { + changeCartShow: (state, action) => { + state.cartShow = action.payload + }, + changecartCount: (state, action) => { + state.CartitemsCount = action.payload + } + } +}); + + + +export const { changeCartShow, changecartCount } = PublicBooking.actions; +export const globalchangeCartShow = (state) => state?.PublicBooking?.cartShow; +export const globalcartCount = (state) => state?.PublicBooking?.CartitemsCount; + +export default PublicBooking.reducer; \ No newline at end of file diff --git a/src/Features/LandingPage/landingPage.js b/src/Features/LandingPage/landingPage.js new file mode 100644 index 0000000..ca18375 --- /dev/null +++ b/src/Features/LandingPage/landingPage.js @@ -0,0 +1,31 @@ +import { createSlice } from "@reduxjs/toolkit"; + +const initialState = { + breadCrumb: [], + RedirectStatus: false, +}; + +const landingPage = createSlice({ + name: "centerPage", + initialState, + reducers: { + changeBreadCrumb: (state, action) => { + const { items } = action.payload; + state.breadCrumb = items; + }, + emptyBreadCrumb: (state, action) => { + state.breadCrumb = []; + }, + changeRedirectStatus: (state, action) => { + state.RedirectStatus = action.payload; + }, + }, +}); + +export const { changeBreadCrumb, changeRedirectStatus, emptyBreadCrumb } = + landingPage.actions; + +export const breadCrumbSelector = (state) => state?.landingPage?.breadCrumb; +export const GlobalRedirectStatus = (state) => + state?.landingPage?.RedirectStatus; +export default landingPage.reducer; diff --git a/src/Features/SearchBox/Search.js b/src/Features/SearchBox/Search.js new file mode 100644 index 0000000..ec5f2f2 --- /dev/null +++ b/src/Features/SearchBox/Search.js @@ -0,0 +1,20 @@ +import { createSlice } from "@reduxjs/toolkit"; + +let initialState = { SearchedText: null }; + +const Search = createSlice({ + name: "Search", + initialState, + reducers: { + changeSearchText: (state, action) => { + console.log("Global",action.payload) + state.SearchedText = action.payload; + }, + }, +}); + +export const { changeSearchText } = Search.actions; + +export const GlobalSearchText = (state) => state?.Search?.SearchedText; + +export default Search.reducer; diff --git a/src/Fonts/Gilroy/Gilroy-Black.woff b/src/Fonts/Gilroy/Gilroy-Black.woff new file mode 100644 index 0000000..d76b8e1 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Black.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Black.woff2 b/src/Fonts/Gilroy/Gilroy-Black.woff2 new file mode 100644 index 0000000..357c4a9 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Black.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-BlackItalic.woff b/src/Fonts/Gilroy/Gilroy-BlackItalic.woff new file mode 100644 index 0000000..1238aef Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-BlackItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-BlackItalic.woff2 b/src/Fonts/Gilroy/Gilroy-BlackItalic.woff2 new file mode 100644 index 0000000..6b6e70c Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-BlackItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Bold.woff b/src/Fonts/Gilroy/Gilroy-Bold.woff new file mode 100644 index 0000000..3cf2d5f Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Bold.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Bold.woff2 b/src/Fonts/Gilroy/Gilroy-Bold.woff2 new file mode 100644 index 0000000..03776c6 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Bold.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-BoldItalic.woff b/src/Fonts/Gilroy/Gilroy-BoldItalic.woff new file mode 100644 index 0000000..1590225 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-BoldItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-BoldItalic.woff2 b/src/Fonts/Gilroy/Gilroy-BoldItalic.woff2 new file mode 100644 index 0000000..7a125e9 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-BoldItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-ExtraBold.woff b/src/Fonts/Gilroy/Gilroy-ExtraBold.woff new file mode 100644 index 0000000..96b2b47 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ExtraBold.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-ExtraBold.woff2 b/src/Fonts/Gilroy/Gilroy-ExtraBold.woff2 new file mode 100644 index 0000000..b13b60a Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ExtraBold.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff b/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff new file mode 100644 index 0000000..aa158ea Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff2 b/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff2 new file mode 100644 index 0000000..51a1772 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ExtraBoldItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Heavy.woff b/src/Fonts/Gilroy/Gilroy-Heavy.woff new file mode 100644 index 0000000..9d9db16 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Heavy.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Heavy.woff2 b/src/Fonts/Gilroy/Gilroy-Heavy.woff2 new file mode 100644 index 0000000..9805de6 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Heavy.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff b/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff new file mode 100644 index 0000000..80f9143 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff2 b/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff2 new file mode 100644 index 0000000..0c9672c Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-HeavyItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Light.woff b/src/Fonts/Gilroy/Gilroy-Light.woff new file mode 100644 index 0000000..a5189cf Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Light.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Light.woff2 b/src/Fonts/Gilroy/Gilroy-Light.woff2 new file mode 100644 index 0000000..bc5a5c1 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Light.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-LightItalic.woff b/src/Fonts/Gilroy/Gilroy-LightItalic.woff new file mode 100644 index 0000000..e4748c0 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-LightItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-LightItalic.woff2 b/src/Fonts/Gilroy/Gilroy-LightItalic.woff2 new file mode 100644 index 0000000..1bfa5f6 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-LightItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Medium.woff b/src/Fonts/Gilroy/Gilroy-Medium.woff new file mode 100644 index 0000000..987583a Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Medium.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Medium.woff2 b/src/Fonts/Gilroy/Gilroy-Medium.woff2 new file mode 100644 index 0000000..2764710 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Medium.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-MediumItalic.woff b/src/Fonts/Gilroy/Gilroy-MediumItalic.woff new file mode 100644 index 0000000..e47e0fc Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-MediumItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-MediumItalic.woff2 b/src/Fonts/Gilroy/Gilroy-MediumItalic.woff2 new file mode 100644 index 0000000..4e53ac1 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-MediumItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Regular.woff b/src/Fonts/Gilroy/Gilroy-Regular.woff new file mode 100644 index 0000000..c0e4821 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Regular.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Regular.woff2 b/src/Fonts/Gilroy/Gilroy-Regular.woff2 new file mode 100644 index 0000000..64fd436 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Regular.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-RegularItalic.woff b/src/Fonts/Gilroy/Gilroy-RegularItalic.woff new file mode 100644 index 0000000..ea4e209 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-RegularItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-RegularItalic.woff2 b/src/Fonts/Gilroy/Gilroy-RegularItalic.woff2 new file mode 100644 index 0000000..928cd6f Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-RegularItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-SemiBold.woff b/src/Fonts/Gilroy/Gilroy-SemiBold.woff new file mode 100644 index 0000000..d748f19 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-SemiBold.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-SemiBold.woff2 b/src/Fonts/Gilroy/Gilroy-SemiBold.woff2 new file mode 100644 index 0000000..d193f13 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-SemiBold.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff b/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff new file mode 100644 index 0000000..67fd476 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff2 b/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff2 new file mode 100644 index 0000000..b3f1003 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-SemiBoldItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-Thin.woff b/src/Fonts/Gilroy/Gilroy-Thin.woff new file mode 100644 index 0000000..de7fe31 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Thin.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-Thin.woff2 b/src/Fonts/Gilroy/Gilroy-Thin.woff2 new file mode 100644 index 0000000..395956c Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-Thin.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-ThinItalic.woff b/src/Fonts/Gilroy/Gilroy-ThinItalic.woff new file mode 100644 index 0000000..a58b56e Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ThinItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-ThinItalic.woff2 b/src/Fonts/Gilroy/Gilroy-ThinItalic.woff2 new file mode 100644 index 0000000..f0ff62b Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-ThinItalic.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-UltraLight.woff b/src/Fonts/Gilroy/Gilroy-UltraLight.woff new file mode 100644 index 0000000..dccc924 Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-UltraLight.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-UltraLight.woff2 b/src/Fonts/Gilroy/Gilroy-UltraLight.woff2 new file mode 100644 index 0000000..b96c8ad Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-UltraLight.woff2 differ diff --git a/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff b/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff new file mode 100644 index 0000000..d200b1c Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff differ diff --git a/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff2 b/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff2 new file mode 100644 index 0000000..0a4014f Binary files /dev/null and b/src/Fonts/Gilroy/Gilroy-UltraLightItalic.woff2 differ diff --git a/src/Fonts/Gilroy/demo.html b/src/Fonts/Gilroy/demo.html new file mode 100644 index 0000000..ca25daa --- /dev/null +++ b/src/Fonts/Gilroy/demo.html @@ -0,0 +1,743 @@ + + + + + + + + + Transfonter demo + + + + +
+
+

☞Gilroy-Bold

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: bold;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Bold.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-BlackItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 900;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-BlackItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Black

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 900;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Black.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-BoldItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: bold;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-BoldItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-LightItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 300;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-LightItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Medium

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 500;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Medium.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-HeavyItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 900;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-HeavyItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Light

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 300;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Light.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-ExtraBoldItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: bold;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-ExtraBoldItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Heavy

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 900;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Heavy.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-ExtraBold

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: bold;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-ExtraBold.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-MediumItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 500;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-MediumItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-UltraLightItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 200;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-UltraLightItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-ThinItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 100;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-ThinItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Thin

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 100;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Thin.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-SemiBold

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 600;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-SemiBold.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-RegularItalic

+
.your-style {
+    font-family: 'Gilroy-RegularItalic';
+    font-weight: normal;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-RegularItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-Regular

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: normal;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-Regular.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-SemiBoldItalic

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 600;
+    font-style: italic;
+}
+
+<link rel="preload" href="Gilroy-SemiBoldItalic.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+

☞Gilroy-UltraLight

+
.your-style {
+    font-family: 'Gilroy';
+    font-weight: 200;
+    font-style: normal;
+}
+
+<link rel="preload" href="Gilroy-UltraLight.woff2" as="font" type="font/woff2" crossorigin>
+
+

+ abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789.:,;()*!?'@#<>$%&^+-=~ +

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+

The quick brown fox jumps over the lazy dog.

+
+
+ +
+ + diff --git a/src/Fonts/Gilroy/gilroy-20230427-124910.zip b/src/Fonts/Gilroy/gilroy-20230427-124910.zip new file mode 100644 index 0000000..6f36234 Binary files /dev/null and b/src/Fonts/Gilroy/gilroy-20230427-124910.zip differ diff --git a/src/Fonts/Gilroy/stylesheet.css b/src/Fonts/Gilroy/stylesheet.css new file mode 100644 index 0000000..a6fa2b1 --- /dev/null +++ b/src/Fonts/Gilroy/stylesheet.css @@ -0,0 +1,180 @@ +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Bold.woff2') format('woff2'), + url('Gilroy-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-BlackItalic.woff2') format('woff2'), + url('Gilroy-BlackItalic.woff') format('woff'); + font-weight: 900; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Black.woff2') format('woff2'), + url('Gilroy-Black.woff') format('woff'); + font-weight: 900; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-BoldItalic.woff2') format('woff2'), + url('Gilroy-BoldItalic.woff') format('woff'); + font-weight: bold; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-LightItalic.woff2') format('woff2'), + url('Gilroy-LightItalic.woff') format('woff'); + font-weight: 300; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Medium.woff2') format('woff2'), + url('Gilroy-Medium.woff') format('woff'); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-HeavyItalic.woff2') format('woff2'), + url('Gilroy-HeavyItalic.woff') format('woff'); + font-weight: 900; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Light.woff2') format('woff2'), + url('Gilroy-Light.woff') format('woff'); + font-weight: 300; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-ExtraBoldItalic.woff2') format('woff2'), + url('Gilroy-ExtraBoldItalic.woff') format('woff'); + font-weight: bold; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Heavy.woff2') format('woff2'), + url('Gilroy-Heavy.woff') format('woff'); + font-weight: 900; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-ExtraBold.woff2') format('woff2'), + url('Gilroy-ExtraBold.woff') format('woff'); + font-weight: bold; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-MediumItalic.woff2') format('woff2'), + url('Gilroy-MediumItalic.woff') format('woff'); + font-weight: 500; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-UltraLightItalic.woff2') format('woff2'), + url('Gilroy-UltraLightItalic.woff') format('woff'); + font-weight: 200; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-ThinItalic.woff2') format('woff2'), + url('Gilroy-ThinItalic.woff') format('woff'); + font-weight: 100; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Thin.woff2') format('woff2'), + url('Gilroy-Thin.woff') format('woff'); + font-weight: 100; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-SemiBold.woff2') format('woff2'), + url('Gilroy-SemiBold.woff') format('woff'); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy-RegularItalic'; + src: url('Gilroy-RegularItalic.woff2') format('woff2'), + url('Gilroy-RegularItalic.woff') format('woff'); + font-weight: normal; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-Regular.woff2') format('woff2'), + url('Gilroy-Regular.woff') format('woff'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-SemiBoldItalic.woff2') format('woff2'), + url('Gilroy-SemiBoldItalic.woff') format('woff'); + font-weight: 600; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Gilroy'; + src: url('Gilroy-UltraLight.woff2') format('woff2'), + url('Gilroy-UltraLight.woff') format('woff'); + font-weight: 200; + font-style: normal; + font-display: swap; +} + diff --git a/src/Images/Accredited.png b/src/Images/Accredited.png new file mode 100644 index 0000000..b272620 Binary files /dev/null and b/src/Images/Accredited.png differ diff --git a/src/Images/AllCategories.png b/src/Images/AllCategories.png new file mode 100644 index 0000000..57eefbe Binary files /dev/null and b/src/Images/AllCategories.png differ diff --git a/src/Images/Allcat.png b/src/Images/Allcat.png new file mode 100644 index 0000000..7549e6d Binary files /dev/null and b/src/Images/Allcat.png differ diff --git a/src/Images/Assets/Distance.svg b/src/Images/Assets/Distance.svg new file mode 100644 index 0000000..bb7adaa --- /dev/null +++ b/src/Images/Assets/Distance.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/Images/Assets/HeartSvg.jsx b/src/Images/Assets/HeartSvg.jsx new file mode 100644 index 0000000..e5b3907 --- /dev/null +++ b/src/Images/Assets/HeartSvg.jsx @@ -0,0 +1,81 @@ +import React, { useState } from 'react'; + +const HeartSvg = ({ + fillColor = '#D42527', + strokeColor = 'black', + height = '100px', + width = '100px', + position = 'relative', + top = '0', + left = '0', + right = '0', + bottom = '0' +}) => { + + const [isAnimating, setIsAnimating] = useState(false); + + + const handleClick = () => { + setIsAnimating(true); + + setTimeout(() => { + setIsAnimating(false); + }, 600); + }; + + return ( +
+ {!isAnimating && ( + + + + )} + + +
+ ); +}; + +export default HeartSvg; diff --git a/src/Images/FSSAI.svg b/src/Images/FSSAI.svg new file mode 100644 index 0000000..241026a --- /dev/null +++ b/src/Images/FSSAI.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + diff --git a/src/Images/PozoStore.svg b/src/Images/PozoStore.svg new file mode 100644 index 0000000..404258d --- /dev/null +++ b/src/Images/PozoStore.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/Images/PozoStore1.svg b/src/Images/PozoStore1.svg new file mode 100644 index 0000000..68a8bb6 --- /dev/null +++ b/src/Images/PozoStore1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/Images/PozoWhite.svg b/src/Images/PozoWhite.svg new file mode 100644 index 0000000..1c60f1b --- /dev/null +++ b/src/Images/PozoWhite.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Images/Restaurant.png b/src/Images/Restaurant.png new file mode 100644 index 0000000..666ab63 Binary files /dev/null and b/src/Images/Restaurant.png differ diff --git a/src/Images/american.png b/src/Images/american.png new file mode 100644 index 0000000..adea07b Binary files /dev/null and b/src/Images/american.png differ diff --git a/src/Images/applestore.png b/src/Images/applestore.png new file mode 100644 index 0000000..59a3127 Binary files /dev/null and b/src/Images/applestore.png differ diff --git a/src/Images/book.png b/src/Images/book.png new file mode 100644 index 0000000..605f5a3 Binary files /dev/null and b/src/Images/book.png differ diff --git a/src/Images/error.gif b/src/Images/error.gif new file mode 100644 index 0000000..087c4f5 Binary files /dev/null and b/src/Images/error.gif differ diff --git a/src/Images/expand.png b/src/Images/expand.png new file mode 100644 index 0000000..5f707db Binary files /dev/null and b/src/Images/expand.png differ diff --git a/src/Images/fooddelivery.png b/src/Images/fooddelivery.png new file mode 100644 index 0000000..d68d92d Binary files /dev/null and b/src/Images/fooddelivery.png differ diff --git a/src/Images/forward.png b/src/Images/forward.png new file mode 100644 index 0000000..aa6129a Binary files /dev/null and b/src/Images/forward.png differ diff --git a/src/Images/grocery.png b/src/Images/grocery.png new file mode 100644 index 0000000..a48e7af Binary files /dev/null and b/src/Images/grocery.png differ diff --git a/src/Images/locat.png b/src/Images/locat.png new file mode 100644 index 0000000..39b32c4 Binary files /dev/null and b/src/Images/locat.png differ diff --git a/src/Images/mastercard.png b/src/Images/mastercard.png new file mode 100644 index 0000000..1c7c546 Binary files /dev/null and b/src/Images/mastercard.png differ diff --git a/src/Images/meat.png b/src/Images/meat.png new file mode 100644 index 0000000..9a14257 Binary files /dev/null and b/src/Images/meat.png differ diff --git a/src/Images/mobilepng.png b/src/Images/mobilepng.png new file mode 100644 index 0000000..51c217b Binary files /dev/null and b/src/Images/mobilepng.png differ diff --git a/src/Images/phone.png b/src/Images/phone.png new file mode 100644 index 0000000..061c4b3 Binary files /dev/null and b/src/Images/phone.png differ diff --git a/src/Images/playstore.png b/src/Images/playstore.png new file mode 100644 index 0000000..ecc0f27 Binary files /dev/null and b/src/Images/playstore.png differ diff --git a/src/Images/pozologo.png b/src/Images/pozologo.png new file mode 100644 index 0000000..cee34eb Binary files /dev/null and b/src/Images/pozologo.png differ diff --git a/src/Images/rupay.png b/src/Images/rupay.png new file mode 100644 index 0000000..636c7b1 Binary files /dev/null and b/src/Images/rupay.png differ diff --git a/src/Images/sareeBG.png b/src/Images/sareeBG.png new file mode 100644 index 0000000..3c534ea Binary files /dev/null and b/src/Images/sareeBG.png differ diff --git a/src/Images/slide.png b/src/Images/slide.png new file mode 100644 index 0000000..73474ad Binary files /dev/null and b/src/Images/slide.png differ diff --git a/src/Images/speakerBG.png b/src/Images/speakerBG.png new file mode 100644 index 0000000..64cf051 Binary files /dev/null and b/src/Images/speakerBG.png differ diff --git a/src/Images/storeSummary.png b/src/Images/storeSummary.png new file mode 100644 index 0000000..364455f Binary files /dev/null and b/src/Images/storeSummary.png differ diff --git a/src/Images/tick.gif b/src/Images/tick.gif new file mode 100644 index 0000000..9227c24 Binary files /dev/null and b/src/Images/tick.gif differ diff --git a/src/Images/upi.png b/src/Images/upi.png new file mode 100644 index 0000000..50be8e2 Binary files /dev/null and b/src/Images/upi.png differ diff --git a/src/Images/visa.png b/src/Images/visa.png new file mode 100644 index 0000000..fa880a5 Binary files /dev/null and b/src/Images/visa.png differ diff --git a/src/Images/wp.png b/src/Images/wp.png new file mode 100644 index 0000000..6325e8c Binary files /dev/null and b/src/Images/wp.png differ diff --git a/src/Images/wpqr.png b/src/Images/wpqr.png new file mode 100644 index 0000000..ff06ecf Binary files /dev/null and b/src/Images/wpqr.png differ diff --git a/src/Pages/AdminLandingPage/AdminLandingPage.jsx b/src/Pages/AdminLandingPage/AdminLandingPage.jsx new file mode 100644 index 0000000..63193c1 --- /dev/null +++ b/src/Pages/AdminLandingPage/AdminLandingPage.jsx @@ -0,0 +1,25 @@ +import React, { useState } from "react"; +import { useSelector } from "react-redux"; +import { Outlet } from "react-router-dom"; +import { breadCrumbSelector } from "../../Features/LandingPage/landingPage.js"; +import "../../Styles/LandingPage/LandingPage.scss"; +import FullPageLoader from "../../Components/Loader/PozoPublicLoader.jsx"; +import AdminNavbar from "../../Components/SAdmin/SadminPanel/AdminNavbar/AdminNavbar.jsx"; + +const AdminlandingPage = () => { + const breadCrumb = useSelector(breadCrumbSelector); + const [loading, setLoading] = useState(false); + + return ( + <> +
+
+ +
+ +
+ + ); +}; + +export default AdminlandingPage; diff --git a/src/Pages/Ads Management/AdBanner.jsx b/src/Pages/Ads Management/AdBanner.jsx new file mode 100644 index 0000000..7cc9ed7 --- /dev/null +++ b/src/Pages/Ads Management/AdBanner.jsx @@ -0,0 +1,28 @@ +import { useState } from 'react'; +import PropTypes from 'prop-types'; + +const AdBanner = ({ imageUrl, linkUrl }) => { + const [hasError, setHasError] = useState(false); + + if (!imageUrl || hasError || imageUrl === 'banner.jpg') return null; + + return ( + + ); +}; + +AdBanner.propTypes = { + imageUrl: PropTypes.string, + linkUrl: PropTypes.string, +}; + +export default AdBanner; diff --git a/src/Pages/Ads Management/AdData.jsx b/src/Pages/Ads Management/AdData.jsx new file mode 100644 index 0000000..96bab44 --- /dev/null +++ b/src/Pages/Ads Management/AdData.jsx @@ -0,0 +1,27 @@ +// Update your adData to hold an array of banner ads +export const adData = { + banners: [ + { + imageUrl: 'https://via.placeholder.com/1200x300.png?text=Banner+Ad+1', + linkUrl: 'https://example.com/banner-ad-1' + }, + { + imageUrl: 'https://via.placeholder.com/1200x300.png?text=Banner+Ad+2', + linkUrl: 'https://example.com/banner-ad-2' + } + ], + sponsoredProducts: [ + { + name: 'Sponsored Product 1', + image: 'https://via.placeholder.com/150.png?text=Product+1', + price: '$19.99', + link: 'https://example.com/product1' + }, + { + name: 'Sponsored Product 2', + image: 'https://via.placeholder.com/150.png?text=Product+2', + price: '$29.99', + link: 'https://example.com/product2' + } + ] +}; diff --git a/src/Pages/Ads Management/AddAdForm.jsx b/src/Pages/Ads Management/AddAdForm.jsx new file mode 100644 index 0000000..0175836 --- /dev/null +++ b/src/Pages/Ads Management/AddAdForm.jsx @@ -0,0 +1,434 @@ +import { useState, useRef } from 'react'; +import PropTypes from 'prop-types'; +import { FiImage, FiShoppingBag, FiBell } from 'react-icons/fi'; +import { initializeAds } from './utils/initializeAds.jsx'; +import './addForm.scss'; + +const AddAdForm = ({ onAdAdded, activeFormType, onFormTypeChange }) => { + const fileInputRef = useRef(null); + const [formType, setFormType] = useState(activeFormType || 'CAROUSEL'); + const [selectedDuration, setSelectedDuration] = useState(60); + + const [carouselForm, setCarouselForm] = useState({ + title: '', + image: '', + link: '', + }); + + const [sponsoredForm, setSponsoredForm] = useState({ + name: '', + image: '', + price: '', + link: '', + description: '', + visibleUntil: Date.now() + 60000, + }); + + const [toastForm, setToastForm] = useState({ + name: '', + image: '', + price: '', + link: '', + }); + + const handleTabChange = (type) => { + setFormType(type); + if (onFormTypeChange) onFormTypeChange(type); + }; + + const handleCarouselChange = (e) => { + const { name, value } = e.target; + setCarouselForm((prev) => ({ ...prev, [name]: value })); + }; + + const handleSponsoredChange = (e) => { + const { name, value } = e.target; + setSponsoredForm((prev) => ({ ...prev, [name]: value })); + }; + + const handleToastChange = (e) => { + const { name, value } = e.target; + setToastForm((prev) => ({ ...prev, [name]: value })); + }; + + const handleImageFileUpload = (e) => { + const file = e.target.files[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onloadend = () => { + if (formType === 'CAROUSEL') { + setCarouselForm((prev) => ({ ...prev, image: reader.result })); + } else if (formType === 'SPONSORED') { + setSponsoredForm((prev) => ({ ...prev, image: reader.result })); + } else if (formType === 'TOAST') { + setToastForm((prev) => ({ ...prev, image: reader.result })); + } + }; + reader.readAsDataURL(file); + }; + + const setTiming = (duration) => { + setSelectedDuration(duration); + const durationInMilliseconds = duration * 1000; + setSponsoredForm((prev) => ({ + ...prev, + visibleUntil: Date.now() + durationInMilliseconds, + })); + }; + + const handleCarouselSubmit = (e) => { + e.preventDefault(); + if (!carouselForm.image) { + alert('Please upload an image file or enter an image URL!'); + return; + } + + const existingCarousel = JSON.parse(localStorage.getItem('carouselImages')) || []; + existingCarousel.push(carouselForm.image); + localStorage.setItem('carouselImages', JSON.stringify(existingCarousel)); + + window.dispatchEvent(new Event('carouselImagesUpdated')); + if (onAdAdded) onAdAdded(); + setCarouselForm({ title: '', image: '', link: '' }); + }; + + const handleSponsoredSubmit = (e) => { + e.preventDefault(); + if (!sponsoredForm.image) { + alert('Please upload an image file or enter an image URL!'); + return; + } + + initializeAds(); + const existingAds = JSON.parse(localStorage.getItem('ads')) || { sponsoredProducts: [] }; + if (!Array.isArray(existingAds.sponsoredProducts)) { + existingAds.sponsoredProducts = []; + } + + const newSponsoredAd = { + ...sponsoredForm, + visibleUntil: Date.now() + (selectedDuration * 1000), + }; + + existingAds.sponsoredProducts.unshift(newSponsoredAd); + localStorage.setItem('ads', JSON.stringify(existingAds)); + + window.dispatchEvent(new Event('carouselImagesUpdated')); + window.dispatchEvent(new Event('storage')); + + if (onAdAdded) onAdAdded(); + setSponsoredForm({ + name: '', + image: '', + price: '', + link: '', + description: '', + visibleUntil: Date.now() + 60000, + }); + }; + + const handleToastSubmit = (e) => { + e.preventDefault(); + if (!toastForm.name || !toastForm.image) { + alert('Product Name & Image are required for Toast Ad!'); + return; + } + + const existing = JSON.parse(localStorage.getItem('toastAds')) || []; + existing.push({ ...toastForm }); + localStorage.setItem('toastAds', JSON.stringify(existing)); + + window.dispatchEvent(new Event('toastAdUpdated')); + window.dispatchEvent(new Event('storage')); + + if (onAdAdded) onAdAdded(); + setToastForm({ name: '', image: '', price: '', link: '' }); + }; + + return ( +
+ {/* AD TYPE SWITCHER TABS */} +
+ + + +
+ + {formType === 'CAROUSEL' ? ( + /* HOMEPAGE CAROUSEL FORM */ +
+

ADD HOMEPAGE CAROUSEL BANNER

+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ + {carouselForm.image && ( +
+ Preview +
+ )} + +
+ +
+
+ ) : formType === 'SPONSORED' ? ( + /* SPONSORED PRODUCT AD FORM */ +
+

ADD SPONSORED PRODUCT AD

+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + } + + /> + + + + } + + /> + + )} + + {activeProductItem === 2 && ( +
+
+ + + + } + /> + +
+ + + +
+ + } + /> + + +
+ + + + + +
+ + } + /> + +
+ + + + + +
+ + } + /> + + + + +
+ } /> +
+ )} + + {activeProductItem === 3 && ( + <> +
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ + +
+
+ + + + +
+
+ + + +
+
+ + + +
+
+ + )} + {activeProductItem === 4 && ( +
+
+ + + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+ + +
+ )} + + +
+
CANCEL
+
SAVE & NEXT
+
+ + +
+
+
+
+
+ ); +}; + +export default PozoPublicProductMaster; diff --git a/src/Pages/ProductMaster/oldBeforeFunctionalities.jsx b/src/Pages/ProductMaster/oldBeforeFunctionalities.jsx new file mode 100644 index 0000000..2a0d04a --- /dev/null +++ b/src/Pages/ProductMaster/oldBeforeFunctionalities.jsx @@ -0,0 +1,944 @@ +import { FiPlusSquare } from "react-icons/fi"; +import { BiPlus } from "react-icons/bi"; +import { AiOutlineSelect } from "react-icons/ai"; +import { BsPlusSquare } from "react-icons/bs"; +import React, { useState, useRef } from 'react'; +import { IoMdWarning } from "react-icons/io"; +import { FaCheckCircle } from "react-icons/fa"; +import { MdClose } from "react-icons/md"; +import { CgChevronRight } from "react-icons/cg"; +import "../../Styles/Pages/PozoPublicProductMaster.scss"; +import PozoPublicInputSearch from '../../Components/InputSearch/PozoPublicInputSearch'; +import PozoPublicImagePicker from "../../Components/ImagePicker/PozoPublicImagePicker"; +import PozoPublicDropDown from "../../Components/DropDown/PozoPublicDropDown"; +import PozoPublicInput from "../../Components/Input/PozoPublicInput"; +import PozoPublicCollapse from "../../Components/Collapse/PozoPublicCollapse"; +import PozoPublicInputDropdown from "../../Components/InputDropDown/PozoPublicInputDropdown"; +import PozoPublicDatePicker from "../../Components/DatePicker/PozoPublicDatePicker"; +import PozoPublicButton from "../../Components/Button/PozoPublicButton"; +import PozoPublicCollapseAuto from "../../Components/CollapseAuto/PozoPublicCollapseAuto"; +import { PiCaretCircleDownLight, PiCaretCircleUpLight, PiPencilSimpleLight } from "react-icons/pi"; +import { RiDeleteBin6Line } from "react-icons/ri"; + +const PozoPublicProductMaster = (isChecked) => { + const formRef = useRef(null); + const [selectedIndex, setSelectedIndex] = useState(null); + const menuRef = useRef(null); + const [isSearchProductMasterVisible, setIsSearchProductMasterVisible] = useState(false); + const [checked, setChecked] = useState(isChecked); + const [StockVariant, setStockVariant] = useState({}); + const [isOpen, setIsOpen] = useState(true); + const [categories, setCategories] = useState({ + Fashion: [], + Electronics: [] + }); + + const handleAddProduct = (product) => { + let category = 'Uncategorized'; + if (['t-Shirt', 'shirt', 'pant'].includes(product)) { + category = 'Fashion'; + } else if (['smartphone', 'laptop', 'tablet', 'watch'].includes(product)) { + category = 'Electronics'; + } + + setCategories((prevCategories) => ({ + ...prevCategories, + [category]: [...prevCategories[category], { productName: product }] + })); + }; + + + + const menuData = [ + { Name: "Product", error: 0, Overall: 10, NoOfError: 23 }, + { Name: "Description", error: 0, Overall: 10, NoOfError: 23 }, + { Name: "Shipping,Packaging", error: 0, Overall: 10, NoOfError: 23 }, + { Name: "Additional Information", error: 0, Overall: 10, NoOfError: 23 }, + { Name: "Compliance & Safety", error: 0, Overall: 10, NoOfError: 23 }, + ]; + + const handleClick = (index) => { + setSelectedIndex(index); + }; + + const handleMouseDown = (e) => { + const menu = menuRef.current; + menu.isDown = true; + menu.startX = e.pageX - menu.offsetLeft; + menu.scrollLeft = menu.scrollLeft; + }; + + const handleMouseLeave = () => { + const menu = menuRef.current; + menu.isDown = false; + }; + + const handleMouseUp = () => { + const menu = menuRef.current; + menu.isDown = false; + }; + + const handleMouseMove = (e) => { + const menu = menuRef.current; + if (!menu.isDown) return; + e.preventDefault(); + const x = e.pageX - menu.offsetLeft; + const walk = (x - menu.startX) * 0.1; + menu.scrollLeft = menu.scrollLeft - walk; + }; + + const handleAddNewProductClick = () => { + setIsSearchProductMasterVisible(!isSearchProductMasterVisible) + } + + const handleChange = () => { + setChecked(!checked); + }; + + + + + + const handleSubmit = (e) => { + e.preventDefault(); + const formData = new FormData(formRef.current); + const formArray = Array.from(formData.entries()); + console.log(formArray); + // You can now send formArray to your backend or use it as needed + }; + + let productExistingData = [ + "Soundbar", + "Phone", + "Laptop", + "Tablet", + "Smartwatch", + "Headphones", + "Camera", + "Printer", + "Monitor", + "Keyboard", + "Mouse", + "Router", + "Speakers", + "Projector", + "Gaming Console", + "External Hard Drive", + "USB Drive", + "Power Bank", + "Smart TV", + "Home Theater System" + ]; + + let productdata = [ + "phone", + "laptop", + "tablet", + "smartwatch", + "headphones", + "bluetooth speaker", + "gaming console", + "camera", + "printer", + "wireless mouse" + ]; + + const userAddProductData = [ + { + productName: " JBL Sound Bar 110 Watt SB 130 - Black featuring 2.1 channels subwoofer speakers, rms power output type", + price: "2500.00", + productType: "1", + productImage: "https://img.freepik.com/premium-photo/speaker-that-is-red-black-with-black-stripe_7414-4852.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + }, + // { + // productName: " JBL Sound Bar 110 Watt SB 130 - Black featuring 2.1 channels subwoofer speakers, rms power output type", + // price: "2500.00", + // productType: "1", + // productImage: "https://img.freepik.com/premium-photo/stylish-women-traditional-dress-apparel-design_919955-19287.jpg?ga=GA1.1.1052249002.1710723563&semt=ais_hybrid" + // }, + + ] + + const addQuantityData = [ + { + size: "M", + stock: 10, + stockPrice: 25000, + stockDate: "30-07-2024", + expireDate: "30-07-2024", + overAllPrice: 1000, + }, + ] + + const addVariantData = [ + { + variants: "Red", + stock: 10, + stockPrice: 25000, + stockDate: "30-07-2024", + expireDate: "30-07-2024", + overAllPrice: 1000, + }, + { + variants: "Red", + stock: 10, + stockPrice: 25000, + stockDate: "30-07-2024", + expireDate: "30-07-2024", + overAllPrice: 1000, + }, + { + variants: "Red", + stock: 10, + stockPrice: 25000, + stockDate: "30-07-2024", + expireDate: "30-07-2024", + overAllPrice: 1000, + }, + ] + const ChooseOption = (StockVariant) => { + + setStockVariant({ data: StockVariant }) + } + + return ( +
+
+
navbar
+
navbar
+
+ +
+
+
Listings
+ Add Products +
+ +
+
+ +
+
My Products
+ + +
+ +
+
+
+ + + + +
+ +
+ + { + return ( +
+
+
+
+ +
+
+ {item?.productName} +
+
+ ₹ {item?.price} +
+
+ +
+
+ {item?.productType} +
+
+
+ +
+ +
+ +
+ + {/* Toogle Button */} +
+ +
+
+
+ +
+
+
+ {StockVariant?.data !== "addStock" ?
{ ChooseOption("addStock") }}>+ Add Stock + +
:
{ ChooseOption() }}>Quantity (55)
+ } + +
{ ChooseOption("addvariant") }} > + Add Variant
+
+ Add Addon
+
+ Add Multi Quantity
+
+ + {StockVariant?.data == "addStock" && +
+ {isOpen ? ( + setIsOpen(false)} /> + ) : ( + setIsOpen(true)} /> + )} +
+ } +
+ {StockVariant?.data == "addStock" && + +
+ {isOpen && ( +
+ + + + + + + + + + + + + +
Qty Unit Size Stock Stock Price Stock Date Stock Exp Date Price
+ +
+ + + + + + + + +
1 PCS
+ + + {addQuantityData?.map((item, index) => { + return ( + + + + + + + + + + + + + ) + })} +
{item.size} {item.stock} ₹ {item.stockPrice} {item.stockDate} {item.expireDate} ₹ {item.overAllPrice}
+
+ + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + {addVariantData?.map((item, index) => { + return ( + + + + + + + + + + + + ) + })} + +
Variant Stock Stock Price Stock Date Stock Exp Date Price
{item.variants} {item.stock} ₹ {item.stockPrice} {item.stockDate} {item.expireDate} ₹ {item.overAllPrice}
+ +
+ +
+ )} +
+
+ ADD NEW ITEM
+
+
+ + } +
+ + ) + }) + } + /> +
+
+ Add SUB CATEGORY
+
+ +
+ } + /> + + +
+ +
+
ADD NEW PRODUCT
+
SELECT PRODUCT FROM POZO
+
+
+ + +
+ + + + + + + + + + + + + + + + +
+
+

Product Name

+
+
+ + {/* ------------- GRAB MENU ------------- */} +
+ {menuData.map((item, index) => ( +
handleClick(index)}> +
handleClick(index)} + > +
+ + {/* */} +
+

{item.Name}

+
+
{item.error}
+
/
+
{item.Overall}
+
+
+
+ {item.NoOfError} ERRORS +
+ + +
+ ))} +
+ +
+
+
+ +
+ +
+
+ + + +
+
+ + +
+
+
+
+ + + + +
+ +
+ + + + + + +
+ } + /> +
+ +
+ +
+
Stock Maintenance
+
+
+ + +
+
+ + +
+
+
+ + + + +
+ } + children2={ +
+ + + +
+ } + + /> +
+ +
+ +
+ + + + + +
+
+
+ +
+
+
+ + + + +
+
+ +
+ +
+ +
+ +
+ Variants - (Item Name / Quantity) +
+ +
+ } + children2={ +
+
+ + + + + + + +
+ +
+
+ +
+
+
+ + + + +
+
+ +
+ +
+ +
+ +
+ } + buttonText={"ADD"} + type={"primary"} + style={{ marginTop: "1rem" }} + /> +
+
+ } + /> +
+ +
+ + +
+ } + children2={ +
+
+ + + +
+ +
+
+ +
+
+
+ + + + +
+
+ +
+ +
+ + +
+
+ } + buttonText={"ADD"} + type={"primary"} + style={{ marginTop: "1rem" }} + /> +
+ +
+ } + /> + +
+ +
+ +
+
CANCEL
+
SAVE & NEXT
+
+ +
+ + +
+ + + ); +}; + +export default PozoPublicProductMaster; diff --git a/src/Pages/Purchcase/Purchase.jsx b/src/Pages/Purchcase/Purchase.jsx new file mode 100644 index 0000000..bf663d9 --- /dev/null +++ b/src/Pages/Purchcase/Purchase.jsx @@ -0,0 +1,1229 @@ +import { BiLeftArrowAlt } from "react-icons/bi"; +import { TbDiscount2 } from "react-icons/tb"; +import { CgArrowLongUp } from "react-icons/cg"; +import { CgArrowLongDown } from "react-icons/cg"; +import { BsFire } from "react-icons/bs"; +import { FaStarHalfAlt } from "react-icons/fa"; +import { AiOutlineStar } from "react-icons/ai"; +import { IoMdApps } from "react-icons/io"; +import { BiSort } from "react-icons/bi"; +import React, { useState, useEffect } from 'react'; +import { HiAdjustmentsHorizontal } from "react-icons/hi2"; +import { useDispatch } from "react-redux"; +import { HiLocationMarker } from "react-icons/hi"; +// import PozoPublicNavbar from "../../Components/PozoPublicNavbar/PozoPubliNavbar"; +// import PozoPublicSearch from "../../Components/PozoPublicNavbar/PozoPublicSearch/PozoPublicSearch"; +// import PozoCategory from "../../Components/PozoPublicCatergory/PozoCategory"; +import Breadcrumb from '../../Components/PozoPublicBreadCrumb/PozoPublicBreadCrumb.jsx'; +import PozoPublicBreadCrumb from "../../Components/PozoPublicBreadCrumb/PozoPublicBreadCrumb.jsx"; +import { breadCrumbSelector } from "../../Features/LandingPage/landingPage.js"; + + +import "../../Styles/Pages/Purchase.scss" +import { FaStar } from "react-icons/fa6"; +import ShopCard from '../../Components/PozoPublicCard/ShopCard.jsx'; +import { changeBreadCrumb } from "../../Features/LandingPage/landingPage.js"; +import { CiSearch } from 'react-icons/ci'; +import { BsCartCheck } from 'react-icons/bs'; +import { useNavigate } from 'react-router-dom'; +import { useSelector } from 'react-redux'; +import { globalchangeCartShow } from '../../Features/Cart/GlobalPublicBooking.js'; +import PozoPublicSearch from '../../Components/PozoPublicNavbar/PozoPublicSearch/PozoPublicSearch.jsx'; +import PozoCategory from '../../Components/PozoPublicCatergory/PozoCategory.jsx'; +import PozoPublicFooter from "../../Components/PozoPublicFooter/PozoPublicFooter.jsx"; +const subDirectory = import.meta.env.BASE_URL; +const Purchase = () => { + const cartShow = useSelector(globalchangeCartShow) + const dispatch = useDispatch(); + const [value, setValue] = useState(10); + const [selectedOption, setSelectedOption] = useState(null); + const [direction, setDirection] = useState('column'); + const breadCrumb = useSelector(breadCrumbSelector); + const [activeFilter, setActiveFilter] = useState('Size'); + const [placeholder, setPlaceholder] = useState(''); + const [animate, setAnimate] = useState(false); + const [inputValue, setInputValue] = useState(''); + const [isFilterOpen, setIsFilterOpen] = useState(false); + const [selectedbrand, setselectedbrand] = useState([]); + const [selectedSize, setselectedSize] = useState([]); + const [isSticky, setIsSticky] = useState(false); + // const [selectedSortOption, setselectedSortOption] = useState(null); + const [selectedDiscounts, setSelectedDiscounts] = useState([]); + const [activeOption, setActiveOption] = useState(null); + const placeholders = ["Search Cake, Puff and more...", "Find your favorite dessert...", "Explore delicious treats..."]; + let currentIndex = 0; + + const navigate = useNavigate(); + const [loading, setLoading] = useState(false); + + const PageNavigate = () => { + + setLoading(true); + + setTimeout(() => { + navigate(`${subDirectory}app-page/Cart`); + + + }, 700); + + }; + + + + + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Purchase", + link: ``, + }, + ]; + + useEffect(() => { + dispatch(changeBreadCrumb({ items: items })); + }, []); + + + + const handleChange = (event) => { + setValue(event.target.value); + }; + + const handleOptionClick = (option) => { + if (selectedOption === option) { + setSelectedOption(null); + } else { + setSelectedOption(option); + } + }; + + + + // const handleInputChange = (e) => { + // setSearchQuery(e.target.value); + // }; + + + + + useEffect(() => { + const handleResize = () => { + if (window.innerWidth <= 768) { + setDirection('row'); + } else { + setDirection('column'); + } + }; + + handleResize(); + + window.addEventListener('resize', handleResize); + + return () => window.removeEventListener('resize', handleResize); + }, []); + + + + + useEffect(() => { + const cyclePlaceholders = () => { + if (inputValue === '') { + setAnimate(true); // Trigger animation + setTimeout(() => { + setPlaceholder(placeholders[currentIndex]); + currentIndex = (currentIndex + 1) % placeholders.length; + setAnimate(false); // Reset animation + }, 1000); // Match this with the duration of the animation (1s) + } + }; + + cyclePlaceholders(); // Set initial placeholder + const interval = setInterval(cyclePlaceholders, 3000); // Change every 3 seconds + + return () => clearInterval(interval); + }, [inputValue]); + + const handleInputChange = (event) => { + setInputValue(event.target.value); + }; + + const clearInput = () => { + setInputValue(''); + }; + const handleFilterClick = (filter) => { + setActiveFilter(filter); + }; + const toggleFilter = () => { + setIsFilterOpen(!isFilterOpen); + }; + + const toggleFilters = () => { + setIsFilterOpen(!isFilterOpen); + }; + const handleSizeClick = (size) => { + + if (selectedSize.includes(size)) { + setselectedSize(selectedSize.filter(item => item !== size)) + // console.log(selectedSize.filter(item => item !== size), size, "hhggdfsd") + } + else { + setselectedSize([...selectedSize, size]); + // console.log([...selectedSize, size], size, "hhggdfsd") + } + + }; + const handleBrandClick = (brand) => { + if (selectedbrand.includes(brand)) { + setselectedbrand(selectedbrand.filter(item => item !== brand)); + // console.log(selectedbrand.filter(item => item !== brand), brand, "hhggdfsd"); + } else { + setselectedbrand([...selectedbrand, brand]); + // console.log([...selectedbrand, brand], brand, "hhggdfsd"); + } + }; + + + const colorsSelected = ["Red", "Blue", "Green", "Yellow", "Black", "White", + "Brown", "Maroon", "Gold", "Pink", "Sky Blue", "Navy Blue", "Red", "Blue", + "Green", "Yellow", "Black", "White", "Brown", "Orange", "Gold", "Pink", "Sky Blue", "Navy Blue", "MultiColoured"]; + + const PriceSelected = ["Rs 199 Below", "Rs 299 - 399 ", "Rs 399 - 499 ", "Rs 499 - 999", "999 Above"] + + const discounts = ['10%', '20%', '50%', '70%', '90%']; + + + const handleSelect = (option) => { + setActiveOption(option); + }; + const handleDiscountClick = (discount) => { + setSelectedDiscounts(prevDiscounts => + prevDiscounts.includes(discount) + ? prevDiscounts.filter(d => d !== discount) + : [...prevDiscounts, discount] + ); + }; + const handleScroll = () => { + const stickyThreshold = document.querySelector('.PurchaseCardHead').offsetTop; + setIsSticky(window.scrollY > stickyThreshold - 100); // Adjust 60 to the height you want before sticking + }; + + useEffect(() => { + window.addEventListener('scroll', handleScroll); + return () => window.removeEventListener('scroll', handleScroll); + }, []); + + + + const shopCardData = [ + + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "N", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "N", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "N", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + { + id: 1, + shopName: "Spicy Delight YUMMY AND TASTY Food Corner", + dishName: "Paneer Tikka", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 20, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "N", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "N", + Review: "Y", + cartSDS: "Y", + Buy: "N", + direction: 'column', + Cartoffer: "Y", + shopNameShow: "Y", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: 'Veg' + }, + + ], + + + }, + + ]; + + + + return ( + <> +
+
+
+
+ {cartShow &&
+
Cart
₹2153646266.00
+
} + +
+
+
+ +
+
+
Top Rated Brand
+
+ brandlogo + brandlogo + brandlogo + brandlogo +
+
+ +
+
Continental
+
+
handleOptionClick('Veg')} > Veg
+ +
handleOptionClick('Non Veg')} > Non Veg
+
+
+ +
+
Customer Rating
+
+ +
handleOptionClick('5')} >5
+ +
handleOptionClick('4')} >4+
+ +
3+
+
2+
+
1
+
+
+ +
+
Price
+ +
+ +
handleOptionClick('lowToHigh')} > Low to High +
+ +
handleOptionClick('highToLow')} > High to Low +
+ +
+ +
+ +
+
Distance
+
+
+ +
+
+ +
+
0km
+ {value} Km +
20km
+
+
+ +
+ +
+ +
+ + {/* purchase Chaats code here */} + +
+
+ {/* */} +
+ {breadCrumb?.length > 0 && } +
+ +
+ {isSticky && } + Chaats +
+ +
+ +
+
+
+ +
+ + + {inputValue && ( + + ✕ {/* This is a cross (×) symbol */} + + )} + +
+
+ + {/* Sort And Filter */} +
+
+ Filter +
+ {/* Filter'ss Code Area */} + + {/* Rating Section */} +
+ +
+ + +
+
+
handleOptionClick('Veg')} > Veg
+ +
handleOptionClick('Non Veg')} > Non Veg
+
+
+ +
+ {/*
Customer Rating
*/} +
+ +
handleOptionClick('5')} >5
+ +
handleOptionClick('4')} >4+
+ +
3+
+
2+
+
1
+
+
+ +
+ {/*
Price
*/} + +
+ +
handleOptionClick('lowToHigh')} > Low to High +
+ +
handleOptionClick('highToLow')} > High to Low +
+ +
+ +
+ +
+ {/*
Distance
*/} +
+
+ +
+
+ +
+
0km
+ {value} Km +
20km
+
+
+ +
+ +
+ + + {/* click Filter Afrer Show Content Here */} + {isFilterOpen && ( +
+
+
+
+ Filter +
+
+ {/* left Side Categories Here */} +
+
handleFilterClick('Size')}>Size
+
handleFilterClick('Price')}>Price
+
handleFilterClick('Brand')}>Brand
+
handleFilterClick('Color')}>Color
+
handleFilterClick('Discount')}>Discount Range
+ +
handleFilterClick('Sort')} style={{ + marginTop: "2.5rem", + borderTop: "1px solid rgba(128, 128, 128, 0.432)" + , fontSize: "15px", + fontWeight: "500" + }}>Sort
+
+ + {/* Right Side Cateogry-INFO Here */} +
+ {activeFilter === 'Size' && +
+ {['XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', '3XL'].map(size => ( +
handleSizeClick(size)} + className={`size-item ${selectedSize.includes(size) ? 'selected' : ''}`} + > + {size} +
+ ))} +
+ } + + {/* PRICE CODE HERE */} + {activeFilter === 'Price' && ( +
+ {PriceSelected.map((price, index) => ( +
+
+ +
+ +
+ ))} +
+ )} + {/* BRAND CODE HERE */} + {activeFilter === 'Brand' && +
+ {['Nike', 'Adidas', 'Levi’s', ' Hanes', 'Tommy Hilfiger', 'Calvin Klein', 'H&M', + 'Allen Solly', 'Roadster', 'Wildcraft', 'Mast & Harbour', 'Jockey', 'U.S. Polo Assn.', 'Jack & Jones', 'Urban Outfitters' + ].map(brand => ( +
handleBrandClick(brand)} + className={`size-item ${selectedbrand.includes(brand) ? 'selected' : ''}`} + // className={`brand-item ${selectedbrand.includes(brand) ? 'selected' : ''}`} + > + {brand} {`${selectedbrand.includes(brand) ? " ⨉" : ""}`} +
+ ))} +
+ } + {/* COLOR CODE HERE */} + {activeFilter === 'Color' && +
+ {colorsSelected.map((color, index) => ( +
+ + +
+ ))} +
+ } + {/* DISCOUNT CODE HERE */} + {activeFilter === 'Discount' && +
+ {discounts.map(discount => ( +
handleDiscountClick(discount)} + > + {discount} or More +
+ ))} +
+ } + + {/* SORT CODE HERE */} + + {activeFilter === 'Sort' && +
+
handleSelect('Popularity')} + > + Popularity +
+
handleSelect('Latest')} + > + Latest +
+
handleSelect('Discount')} + > + Discount +
+
handleSelect('PriceHighToLow')} + > + ₹ High to Low +
+
handleSelect('PriceLowToHigh')} + > + ₹ Low to High +
+
handleSelect('CustomerRating')} + > + Customer Rating +
+
+ } +
+
+
+ +
+
Apply ({5})
+
Close
+
+
+ )} + + + + + + + +
+
+ + +
+ + {shopCardData.map((data) => ( +
+ + + +
+ ))} + +
+ +
+
+ + + +
+ +
+ + + ) +} + +export default Purchase; \ No newline at end of file diff --git a/src/Pages/Purchcase/test.jsx b/src/Pages/Purchcase/test.jsx new file mode 100644 index 0000000..41c1b64 --- /dev/null +++ b/src/Pages/Purchcase/test.jsx @@ -0,0 +1,192 @@ +import React, { useState, useEffect } from "react"; +import { useDispatch } from "react-redux"; +import ShopCard from "../../Components/PozoPublicCard/ShopCard.jsx"; +import { changeBreadCrumb } from "../../Features/LamdingPage/landingPage.js"; +import "./PozoIndividualCard.scss"; +const subDirectory = import.meta.env.BASE_URL; + +const PozoIndividualCard = () => { + const dispatch = useDispatch(); + const [direction, setDirection] = useState("column"); + + const items = [ + { + name: "Home", + link: `${subDirectory}app-page`, + }, + { + name: "Purchase", + link: `${subDirectory}app-page/purchase`, + }, + { + name: "Card-Page", + link: ``, + }, + ]; + + useEffect(() => { + dispatch(changeBreadCrumb({ items: items })); + }, []); + + useEffect(() => { + const handleResize = () => { + if (window.innerWidth >= 768) { + setDirection("row"); + } else { + setDirection("column"); + } + }; + + handleResize(); + + window.addEventListener("resize", handleResize); + + return () => window.removeEventListener("resize", handleResize); + }, []); + + const shopCardData = [ + { + id: 1, + shopName: "Sri Krishna Electricals", + dishName: "boAt Aavante Bar Mystiq Soundbar", + imageUrl: + "https://m.media-amazon.com/images/I/419MwXkdYkL._SX300_SY300_QL70_FMwebp_.jpg", + price: "120.00", + deliveryTime: "20 min", + deliveryDistance: "1.5km", + offer: "N", + offerValue: 50, + isNonVeg: "Y", + isFavorite: "Y", + addToCartBtn: "Y", + buyNow: "Y", + showChangeQuantity: "Y", + showCartShopName: "Y", + showQuantityModal: "N", + deliveryAvailable: "Y", + deliveryStatus: "Y", + Review: "N", + cartSDS: "Y", + Buy: "N", + direction: "column", + Cartoffer: "Y", + shopNameShow: "N", + Accredited: "Y", + Size: "XL", + Color: "Blue", + showSize: "Y", + showColor: "Y", + youSave: "25", + SDSIcon: "N", + CartMRP: "Y", + InfoReview: "Y", + infoPrice: "Y", + ShowPrice: "N", + multiQty: [ + { + prod: "kajukatili", + weight: "100grm", + imageUrl: + "https://img.freepik.com/free-photo/plate-food-with-bowl-beef-curry_1340-23175.jpg?size=626&ext=jpg&ga=GA1.1.1052249002.1710723563&semt=ais_hybrid", + showChangeQuantity: "Y", + Buy: "Y", + continental: "Veg", + }, + ], + }, + ]; + + return ( + <> +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ {shopCardData.map((data) => ( +
+ +
+ ))} +
+
+
+
+
+
+ + ); +}; + +export default PozoIndividualCard; diff --git a/src/Pages/QueryManagement/PozoPublicQueryManagement.jsx b/src/Pages/QueryManagement/PozoPublicQueryManagement.jsx new file mode 100644 index 0000000..1ca97e1 --- /dev/null +++ b/src/Pages/QueryManagement/PozoPublicQueryManagement.jsx @@ -0,0 +1,812 @@ +import { BiSkipNext } from "react-icons/bi"; +import { TiTick } from "react-icons/ti"; +import { MdSwapHorizontalCircle } from "react-icons/md"; +import { IoIosClose } from "react-icons/io"; +import { BiSearch } from "react-icons/bi"; +import { GiPlainCircle } from "react-icons/gi"; +import { BiHistory } from "react-icons/bi"; +import { RiAttachment2 } from "react-icons/ri"; +import { AiOutlineClockCircle } from "react-icons/ai"; +import { MdOutlineSettings } from "react-icons/md"; +import React, { useState, useEffect } from 'react'; +import "../../Styles/Pages/PozoPublicQueryManagement.scss"; +import SadminPanel from '../../Components/SAdmin/SadminPanel/SadminPanel'; +import PozoPublicTooltip from "../../Components/Tooltip/PozoPublicTooltip"; +import { AiOutlineFileSearch } from "react-icons/ai"; +import PublicPozoModal from "../../Components/Modal/PozoPublicModal.jsx" +import book from "../../Images/book.png" +import PozoPublicModal from "../../Components/Modal/PozoPublicModal.jsx"; +import PozoPublicDropDown from "../../Components/DropDown/PozoPublicDropDown.jsx"; +import { useSelector } from "react-redux"; +import { GlobalModuleTabColor } from "../../Features/AdminPanel/AdminPanel.js"; + +const PozoPublicQueryManagement = () => { + const moduletabcolors = useSelector(GlobalModuleTabColor) + console.log(moduletabcolors,"moduletabcolorsf73r4") + const [activeItem, setActiveItem] = useState(0); + const [showSecondStep, setShowSecondStep] = useState(false); + const [historyModal, sethistoryModal] = useState(false) + const [fullScreenImage, setFullScreenImage] = useState(false); + const [querySolved, setQuerySolved] = useState(false); + const [attendUpdated, setAttendUpdated] = useState(false); + const [activeTeam, setActiveTeam] = useState('Technical'); + const [selectedStatus, setSelectedStatus] = useState('pending'); + + + const handleStsUpdated = () => { + setAttendUpdated(true); + } + + + const handleClick = (status) => { + setSelectedStatus(status); + }; + + const handleTeamClick = (team) => { + setActiveTeam(team); + }; + + const handleQuerySolvedModal = () => { + setQuerySolved(true); + }; + + const handleItemClick = (index) => { + setActiveItem(index); + }; + const handleFullScreenImage = () => { + setFullScreenImage(!fullScreenImage); + }; + + const menuItems = [ + { id: 0, label: 'SHOP / STORE QUERIES (22)' }, + { id: 1, label: 'SHOP VERIFICATION REQUEST (5)' }, + { id: 2, label: 'PRODUCT VERIFICATION REQUEST (18)' }, + { id: 3, label: 'NEW SHOP REQUEST (6)' }, + ]; + + + + useEffect(() => { + const timer = setTimeout(() => { + setShowSecondStep(true); + }, 1000); // Show after 1 second + return () => clearTimeout(timer); // Cleanup timer on unmount + }, []); + + const handleHistoryModal = () => { + sethistoryModal(true); + } + + return ( +
+
+ +
+ +
+
+
+
+ {menuItems.map((menuItem) => ( +
handleItemClick(menuItem.id)} + > + {menuItem.label} +
+ ))} +
+ {activeItem === 0 && ( + <> +
+ +
+ + +
+
Solved Queires
+ +
+ + + +
+
+

1

+
+
+
QUEIRY NO : 1536436
+ 14-08-2024 | 10.00 AM +
+
SKIPPED FROM
+
+ PENDING +
+
+
+
I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. + I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have].
+
+ + +
+
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+ {historyModal && ( + sethistoryModal(false)} + children={ +
+
+
QUEIRY NO : 1536436
+

14-08-2024 | 10.00 AM

+
+
+ +
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+
+ } /> + )} +
+ + + +
+ +
+ + View Status History
+ {attendUpdated && (
+
TECHNICAL TEAM
+ Panner Selvam   -   ST580 +
)} +
+ <> + {!attendUpdated && (
+ Attend +
)} + {attendUpdated && (
+ Status Updated +
)} + +
Login
+
Connect
+
Delete
+
+
+ , Tamilnadu, Nellai, Thirunelveli, SJS Restaurant +
+ +
+ + )} + + {activeItem === 1 && ( + <> +
+ +
+ + +
+
Approved
+ +
+ + + +
+
+

1

+
+
VERIFICATION NO : 1536436
+ 14-08-2024 | 10.00 AM +
+ PENDING +
+
+
+ {/*
I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. + I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. +
*/} +
+
+
SHOP NAME   :   Sri Krishna Silk's
+
SHOP TYPE   :   Cloth
+
+
+
BUISNESS NAME   :   Sri Krishna Silk's
+
BUISNESS NUMBER   :   Sri Krishna Silk's
+
+
+
+
+ FSSAI NUMBER   :   654135151 + +
+
+ GST NUMBER   :   654135151 + +
+
+ PAN NUMBER   :   654135151 + +
+
+
+
+
BUSINESS
+ Business Document + + {fullScreenImage && ( +
+
+ Business Document +
+ )} +
+ +
+
PAN
+ PAN Document + {fullScreenImage && ( +
+
+ PAN Document +
+ )} +
+ +
+
FSSAI
+ FSSAI Document + {fullScreenImage && ( +
+
+ FSSAI Document +
+ )} +
+
+ +
+
+

Business Address

+
Panner selvam M
+
51/a stepcolony,Dharga
+
Near Blue dart courier
+
HOSUR, TAMIL NADU 635126
+
+
+

Pickup Address

+
Panner selvam M
+
51/a stepcolony,Dharga
+
Near Blue dart courier
+
HOSUR, TAMIL NADU 635126
+
+
+
+ + +
+
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+ {historyModal && ( + sethistoryModal(false)} + children={ +
+
+
QUEIRY NO : 1536436
+

14-08-2024 | 10.00 AM

+
+
+ +
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+
+ } /> + )} +
+ + + +
+ +
+ + View Status History
+ {attendUpdated && (
+
TECHNICAL TEAM
+ Panner Selvam   -   ST580 +
)} +
+ <> + {!attendUpdated && (
+ Attend +
)} + {attendUpdated && (
+ Status Updated +
)} + +
Login
+
Connect
+
Delete
+
+ + +
+ , Tamilnadu, Nellai, Thirunelveli, SJS Restaurant +
+ +
+ + )} + {querySolved && ( +
+ setQuerySolved(false)} + children={ + <> +
+
+
+
QUEIRY NO : 1536436
+ 14-08-2024 | 10.00 AM +
+
+
Pending
+ Solved +
+
+

QUEIRY SWAP

+ {/* swap code here */} +
+ <> + handleTeamClick('Technical')} > + TECHNICAL TEAM + + handleTeamClick('Support')} > + SUPPORT TEAM + + +
+ +
+
+ + + +

STATUS

+ +
+ +
+ 20-20-24 | 10:00 AM   -     21-20-24 | 10:00 AM +
+ +
+ + {/* Order Satus */} +
+ <> +
handleClick('swap')} > + SWAP +
+
handleClick('pending')} > + Pending +
+
handleClick('ongoing')} > + On Going +
+
handleClick('solved')} > + Solved +
+ +
+ {/* */} + +
+
+ SUBMIT +
+
+ + +
+ + } + /> +
+ )} + + {activeItem === 2 && ( + <> +
+ +
+ + +
+
Verified
+ +
+ + + +
+
+

1

+
+
PRODUCT VERIFICATION NO : 1536436
+ 14-08-2024 | 10.00 AM +
+ PENDING +
+
+
+ {/*
I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. + I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. +
*/} +
+
+
PRODUCT NAME   :   Shirt
+
PRODUCT TYPE   :   Shirt
+
+
+
CATEGORY   :   Cloth
+
SUB-CATEGORY   :   Men
+
+
+
+
+ PRODUCT NUMBER   :   654135151 + +
+
+ GST NUMBER   :   654135151 + +
+
+
+
+ {/*
PRO IMAGE
*/} + Business Document + {fullScreenImage && ( +
+
+ Business Document +
+ )} +
+ +
+ {/*
PAN
*/} + PAN Document + {fullScreenImage && ( +
+
+ PAN Document +
+ )} +
+ +
+ {/*
FSSAI
*/} + FSSAI Document + {fullScreenImage && ( +
+
+ FSSAI Document +
+ )} +
+
+ +
+
+

Shop Address

+ {/*
Panner selvam M
*/} +
51/a stepcolony,Dharga
+
Near Blue dart courier
+
HOSUR, TAMIL NADU 635126
+
+
+
+ + +
+ {/*
+
+
+
+
+
*/} + + {/* Animated progress bar */} + {/*
+
+
+
+
*/} + {/*
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
*/} + {historyModal && ( + sethistoryModal(false)} + children={ +
+
+
QUEIRY NO : 1536436
+

14-08-2024 | 10.00 AM

+
+
+ +
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+
+ } /> + )} +
+ + + +
+ +
+ + View Status History
+ {attendUpdated && (
+
TECHNICAL TEAM
+ Panner Selvam   -   ST580 +
)} +
+ <> + {!attendUpdated && (
+ Attend +
)} + {attendUpdated && (
+ Status Updated +
)} + +
Login
+
Connect
+
Delete
+
+
+ , Tamilnadu, Nellai, Thirunelveli, SJS Restaurant +
+ +
+ + )} + {activeItem === 3 && ( +
NEW SHOP REQUEST (6)
+ )} + +
+
+ ); +} + +export default PozoPublicQueryManagement; \ No newline at end of file diff --git a/src/Pages/QueryRequestForm/QuerRequest.scss b/src/Pages/QueryRequestForm/QuerRequest.scss new file mode 100644 index 0000000..bc2595d --- /dev/null +++ b/src/Pages/QueryRequestForm/QuerRequest.scss @@ -0,0 +1,345 @@ +.QuerRequestMaster { + height: 100vh; + justify-content: center; + display: flex; + + .QuerRequestDiv { + background-color: #fff; + padding: 2rem 2rem; + height: max-content; + min-height: 500px; + width: max-content; + margin: 1rem 8rem; + border-radius: 16px; + flex-direction: column; + justify-content: space-between; + display: flex; + font-family: "Gilroy"; + + .QuerRequestHead { + font-size: clamp(14px, 2.5vw, 16px); + font-weight: 600; + } + + .QuerRequestTabs { + display: flex; + cursor: pointer; + padding: 1rem 0rem; + column-gap: 0.5rem; + font-family: "Gilroy"; + + .tab-status { + padding: 6px 13px; + border: none; + letter-spacing: 0.5px; + align-items: center; + display: flex; + gap: 0.3rem; + border-radius: 5px; + margin-right: 5px; + font-size: clamp(10px, 2.5vw, 11px); + transition: background-color 0.3s; + color: #888888; + font-weight: 600; + text-transform: uppercase; + background-color: #f4f4f4; + + &.active { + background-color: #e67d3b; // Active tab color + color: #ffffff; + } + + &:hover { + background-color: #f4f4f4; // Hover effect + } + } + + .tab-query { + padding: 6px 13px; + letter-spacing: 0.5px; + border: none; + border-radius: 5px; + font-weight: 600; + transition: background-color 0.3s; + font-size: clamp(10px, 2.5vw, 11px); + background-color: #f4f4f4; + text-transform: uppercase; + color: #888888; + gap: 0.3rem; + align-items: center; + display: flex; + + &.active { + background-color: #32a64b; // Different active tab color + color: #ffffff; + } + + &:hover { + background-color: #ebf6ed; // Different hover effect + } + } + } + + .formDiv { + padding: 1rem 0; + + .formhead { + font-size: clamp(10px, 2.5vw, 12px); + font-weight: 600; + } + } + + .Querybox { + background-color: #81818113; + border: #8181813f solid 1px; + width: 45vw; + padding: 1rem 1rem; + border-radius: 8px; + height: 20vh; + + &.active { + border: none; + } + } + + .DrpAtch { + display: flex; + align-items: center; + justify-content: flex-start; + column-gap: 2rem; + flex-wrap: wrap; + } + + .Notes { + font-size: clamp(9px, 2.5vw, 11px); + } + + .QueryStatusMaster { + border: 1px solid #00000033; + border-radius: 8px; + padding: 10px 10px 8px 10px; + background-color: #fff; + position: relative; + + .Query-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + + p { + font-size: 12px; + font-weight: 600; + color: #e33333; + width: 40px; + } + } + + .Querypending { + color: #d95300; + display: flex; + align-items: center; + justify-content: center; + gap: 3px; + white-space: nowrap; + font-size: 12px; + font-weight: 600; + cursor: pointer; + } + + .QuNoanDate { + display: flex; + flex-direction: row; + gap: 1rem; + + div { + font-size: 12px; + font-weight: 600; + letter-spacing: 0.3px; + } + + span { + color: #4e4e4e; + font-size: 10px; + letter-spacing: 0.8px; + } + + .SkipFrom { + color: #007ed9; + font-size: 11px; + gap: 1px; + font-weight: 600; + cursor: pointer; + + svg { + margin-bottom: -3px; + } + } + } + + .queryManagement-content { + padding: 16px 3px 16px 40px; + + .content-queryManagement { + font-size: 12px; + font-weight: 500; + padding: 8px 0px; + } + } + + .QueryStepProgress { + position: relative; + width: 300px; + padding: 12px 40px; + + .step_progressQuery, + .step_progressQuery2 { + display: flex; + align-items: center; + justify-content: space-between; + position: relative; + } + + .LineoFBar { + height: 2px; + width: 100%; + background-color: #25252566; + margin-top: 3px; + transition: width 1s ease-in-out; + } + + .step_progressQuery2 { + position: absolute; + top: 32px; + opacity: 0; + width: 0%; + transition: + opacity 0.3s ease, + width 1s ease-in-out; + z-index: 1; + } + + .step_progressQuery2.animate { + opacity: 1; + width: 220px; + } + + .LineoFBar2 { + height: 2px; + background-color: #138808; + margin-top: 3px; + width: 100%; + } + } + + .queryManagement-fotter { + display: flex; + align-items: flex-end; + justify-content: flex-end; + padding: 2px 10px; + gap: 10px; + + .LoginQuery, + .ConnectQuery, + .DeleteQuery, + .HistoryQuery, + .AttendQuery, + .ViewQuery { + width: max-content; + padding: 6px 16px; + color: #000; + font-size: 11px; + cursor: pointer; + font-weight: 600; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + text-wrap: nowrap; + gap: 3px; + } + + .LoginQuery { + background-color: #e2e1e1; + color: #000; + } + + .ConnectQuery { + background-color: #32a64b; + color: #fff; + } + + .DeleteQuery { + background-color: #e333331a; + color: #e33333; + } + + .AttendQuery { + background-color: #000; + color: #fff; + } + + .ViewQuery { + background-color: #056bfa27; + color: #056dfa; + + &:hover { + background-color: #056bfa49; + } + } + + .HistoryQuery { + border-bottom: 1px solid #000000a4; + padding: 5px 10px; + } + + .attendEMP { + display: flex; + flex-direction: column; + gap: 0; + color: #3371e3; + text-transform: uppercase; + + div { + font-size: 11px; + font-weight: 600; + } + + span { + font-size: 11px; + font-weight: 600; + color: #3371e3; + } + } + } + + .queryManagement-location { + font-size: 11px; + font-weight: 500; + background-color: #f4f4f4; + width: max-content; + padding: 5px 10px; + border-radius: 6px; + position: absolute; + bottom: -2px; + left: 3rem; + } + } + } +} + +@media (max-width: 768px) { + .QuerRequestMaster { + .QuerRequestDiv { + width: 96vw; + padding: 1rem 1rem; + + .Querybox { + width: 90vw; + } + } + + .QueryTabMas { + width: 90vw; + } + } +} diff --git a/src/Pages/QueryRequestForm/QueryContact.jsx b/src/Pages/QueryRequestForm/QueryContact.jsx new file mode 100644 index 0000000..599246a --- /dev/null +++ b/src/Pages/QueryRequestForm/QueryContact.jsx @@ -0,0 +1,117 @@ +import wp from "../../Images/wp.png" +import wpqr from "../../Images/wpqr.png" +import phone from "../../Images/phone.png" +import locat from "../../Images/locat.png" +import "./QueryContact.scss" +import PozoPublicButton from "../../Components/Button/PozoPublicButton" +import { IoInformationCircleOutline } from "react-icons/io5" +const QueryContact = () => { + + const phoneNumber = '7324000012'; + const handleClick = () => { + window.open(`https://wa.me/${phoneNumber}`, '_blank'); + }; + + return ( + <> +
+ +
+ +
+
CONTACT
+ +
+ +
+
+
+
whatsapp
+ +
+
+

7324000012

+ (Whatsapp Only) +
+ + +
+ whatsapp Chat on Whatspp +
+
+ +
+ + +
+
+ + + +
+
+ + + + +
+
+ +
+
+ +
+
REMOTE
+
+ + +
  ( Not for this regular Phone call )
+
+
+ +
+
ADDRESS
+
+
+
whatsapp
+
+ No 51, Step colony, Dharga, + Hosur - 635 126, + Tamilnadu, India.
+ Phone : +91 9344644484, 9445222716
+ Email : info@prematix.com +
+
+
+
+ +
+ +
+ + ) +} + +export default QueryContact; \ No newline at end of file diff --git a/src/Pages/QueryRequestForm/QueryContact.scss b/src/Pages/QueryRequestForm/QueryContact.scss new file mode 100644 index 0000000..f4d0c8e --- /dev/null +++ b/src/Pages/QueryRequestForm/QueryContact.scss @@ -0,0 +1,141 @@ +.QueryContactMaster { + margin: 3rem 3rem; + height: 100vh; + justify-content: center; + display: flex; + font-family: "Gilroy"; + + .ContentDiv { + display: flex; + font-family: "Gilroy"; + flex-direction: column; + row-gap: 3rem; + width: 550px; + min-width: 350px; + height: max-content; + border-radius: 16px; + padding: 2rem 2rem; + background-color: #fff; + + .primary_Button { + font-size: 12px; + padding: 0.5rem 1rem; + width: 90px; + align-items: center; + justify-content: center; + display: flex; + } + + .ContactDiv { + display: flex; + flex-direction: column; + font-family: "Gilroy"; + font-size: clamp(10px, 2.5vw, 11px); + font-weight: 600; + gap: 1rem; + + .Content { + justify-content: space-between; + display: flex; + + .verticalbar { + width: 0.1px; + height: 100px; + background-color: #9b9b9ba8; + margin: 0 10px; + border-radius: 5px; + } + } + .wp { + display: flex; + align-items: center; + column-gap: 0.1rem; + font-size: clamp(16px, 2.5vw, 16px); + // width: 200px; + + .wp-chtbtn { + width: max-content; + color: #fff; + background-color: #01be2a; + font-size: 12px; + padding: 0.3rem 1rem; + border-radius: 6px; + display: flex; + gap: 0.5rem; + cursor: pointer; + align-items: center; + + &:hover { + background-color: #32a64b; + } + } + + .callMakeBtn { + align-items: center; + display: flex; + border: solid 1px #32a64b; + background-color: #ffffff; + width: max-content; + justify-content: center; + color: #000000; + border-radius: 8px; + column-gap: 0.5rem; + padding: 0.5rem 2rem; + position: relative; + overflow: hidden; + + &::before { + content: ""; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: linear-gradient( + 90deg, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.664) 50%, + rgba(255, 255, 255, 0) 100% + ); + transform: translateX(-100%); + animation: shine 2s infinite; + pointer-events: none; + } + } + + @keyframes shine { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(100%); + } + } + } + } + } +} + +@media (max-width: 768px) { + .QueryContactMaster { + margin: 1rem 1rem; + + .ContentDiv .ContactDiv .Content { + flex-direction: column; + row-gap: 2rem; + + .verticalbar { + width: 100%; + height: 0.1px; + background-color: #333333; + margin: 0 10px; + border-radius: 5px; + } + + .callMakeBtn { + margin: 0 0.5rem; + width: 280px; + } + } + } +} diff --git a/src/Pages/QueryRequestForm/QueryRequest.jsx b/src/Pages/QueryRequestForm/QueryRequest.jsx new file mode 100644 index 0000000..fb27d8a --- /dev/null +++ b/src/Pages/QueryRequestForm/QueryRequest.jsx @@ -0,0 +1,332 @@ +import React, { useCallback, useRef, useState, } from 'react'; +import "./QuerRequest.scss" +import { LuClock2 } from 'react-icons/lu'; +import { CgFileAdd } from 'react-icons/cg'; +import { ImAttachment } from "react-icons/im"; +import { ImCross } from 'react-icons/im'; +import PozoPublicDropDown from '../../Components/DropDown/PozoPublicDropDown'; +import { MdOutlineClear } from 'react-icons/md'; +import PozoPublicButton from '../../Components/Button/PozoPublicButton'; +import PozoPublicTooltip from '../../Components/Tooltip/PozoPublicTooltip'; +import { GiPlainCircle } from 'react-icons/gi'; +import { AiOutlineClockCircle, AiOutlineFileSearch } from 'react-icons/ai'; +import PublicPozoModal from '../../Components/PublicPozoModal/PublicPozoModal'; +import { BiHistory, BiSkipNext } from 'react-icons/bi'; +import { RiAttachment2 } from 'react-icons/ri'; +import ToastMessage from '../../Components/ToastMessage/ToastMessage'; + +const QueryRequest = () =>{ + const [activeTab, setActiveTab] = useState('status'); + + const fileInputRef = useRef(null); + const [images, setImages] = useState([]); + const [errorMessage, setErrorMessage] = useState(''); + const [showSecondStep, setShowSecondStep] = useState(false); + const [historyModal, sethistoryModal] = useState(false) + const [attendUpdated, setAttendUpdated] = useState(false); + + + const [toast, setToast] = useState(null); + const onComplete = useCallback(() => { + setToast(null); + }, []); + + const handleStsUpdated = () => { + setAttendUpdated(true); + } + + const handleQuerySolvedModal = () => { + setQuerySolved(true); + }; + + const handleHistoryModal = () => { + sethistoryModal(true); + } + + const handleFileChange = (event) => { + const files = Array.from(event.target.files); + const validFiles = files.filter(file => file.size <= 1 * 1024 * 1024); // Check if file size is <= 1MB + const tooLargeFiles = files.filter(file => file.size > 1 * 1024 * 1024); // Files that are too large + + // Set error message if there are any too large files + if (tooLargeFiles.length > 0) { + setErrorMessage('Some files are larger than 1MB and were not uploaded.'); + } else { + setErrorMessage(''); + } + + const newImages = validFiles.map(file => URL.createObjectURL(file)); // Only add valid files + setImages(prevImages => [...prevImages, ...newImages]); + }; + + + const handleClick = () => { + fileInputRef.current.click(); + }; + + const removeImage = (index) => { + setImages(images.filter((_, i) => i !== index)); // Remove the image at the specified index + }; + + + return ( +
+ +
+
REQUEST QUERIES DETAILS
+ +
+
+
setActiveTab('status')} + > + Queries status (1) +
+
setActiveTab('query')} + > + Add New Query +
+
+ + + + {activeTab === 'status' && +
+ +
+
+

1

+
+
+
QUEIRY NO : 1536436
+ 14-08-2024 | 10.00 AM +
+ {/*
SKIPPED FROM
*/} +
+ PENDING +
+
+
+
I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have]. + I am reaching out with a question regarding the process of adding products to our e-commerce application. Specifically, I am ountering some issues with [briefly describe the issue or doubt you have].
+
+ + +
+
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+ {historyModal && ( + sethistoryModal(false)} + children={ +
+
+
QUEIRY NO : 1536436
+

14-08-2024 | 10.00 AM

+
+
+ +
+
+
+
+
+
+ + {/* Animated progress bar */} +
+
+
+
+
+
+
+
14-08-2024 | 10.00 AM
+
SUPPORT TEAM
+
+
+
14-08-2024 | 10.00 AM
+
TECHNICAL TEAM
+
+
+
+ } /> + )} +
+ + + +
+ +
+ + View Status History
+ {attendUpdated && (
+
TECHNICAL TEAM
+ Panner Selvam   -   ST580 +
)} +
+ <> + {/* {!attendUpdated && (
+ Attend +
)} */} + {attendUpdated && (
+ Status Updated +
)} + +
Edit
+
Cancel
+
+ + +
+
+ } + + {activeTab === 'query' && +
+
+

QUERY REQUEST FORM

+ +
+ +
+ +
+ + + + + +
+ {images.map((image, index) => ( +
+ {`Uploaded + +
+ ))} +
+
+ +
+ +
+