diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..ec601b2 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,15 @@ +module.exports = { + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + ], + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + settings: { react: { version: '18.2' } }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + }, +} 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/Before Integrated Code.zip b/Before Integrated Code.zip new file mode 100644 index 0000000..0e69338 Binary files /dev/null and b/Before Integrated Code.zip differ diff --git a/config.js b/config.js new file mode 100644 index 0000000..b84bf00 --- /dev/null +++ b/config.js @@ -0,0 +1,46 @@ +// CDN Configuration for React + Vite + JavaScript +// Auto detect localhost vs production - No environment variable needed! + +const getCDNBase = () => { + // Vite environment variable check first (optional) + if (import.meta.env.VITE_CDN_URL) { + return import.meta.env.VITE_CDN_URL; + } + + // Browser la automatic detection + if (typeof window !== "undefined") { + const hostname = window.location.hostname; + + // Local development + if (hostname === "localhost" || hostname === "127.0.0.1") { + return "http://192.168.1.26/home/assets"; + } + + // Production - pozo.dev or pozo.app + if (hostname.includes("pozo.dev") || hostname.includes("pozo.app")) { + return "http://192.168.1.26/home/assets"; + } + + // Default - use current protocol and hostname + return `${window.location.protocol}//${hostname}/home/assets`; + } + + // Fallback + return "http://192.168.1.26/home/assets"; +}; + +// Export CDN base URL (ready to use!) +export const CDN_BASE = getCDNBase(); + +// Helper function to get full CDN URL +export const getCDNUrl = (filename) => { + // Remove leading slash if present + const cleanFilename = filename.startsWith("/") ? filename.slice(1) : filename; + return `${CDN_BASE}/${cleanFilename}`; +}; + +// Default export +export default { + CDN_BASE, + getCDNUrl, +}; diff --git a/context/AuthContext b/context/AuthContext new file mode 100644 index 0000000..cd9009b --- /dev/null +++ b/context/AuthContext @@ -0,0 +1,28 @@ +// AuthContext.jsx +import { createContext, useContext, useEffect, useState } from "react"; + +const AuthCtx = createContext(null); +export const useAuth = () => useContext(AuthCtx); + +export function AuthProvider({ children }) { + const [hasAuthorizedSession, setHasAuthorizedSession] = useState(false); + const [isAuthResolved, setIsAuthResolved] = useState(false); + + useEffect(() => { + (async () => { + try { + // simulate or implement real check (localStorage/cookie/ping) + const token = localStorage.getItem("pozo_token"); + setHasAuthorizedSession(!!token); + } finally { + setIsAuthResolved(true); + } + })(); + }, []); + + return ( + + {children} + + ); +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c80f94f --- /dev/null +++ b/index.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + PozoApp - Complete Business Management Solution | POS & Inventory + + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b80d2b7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12575 @@ +{ + "name": "pozo", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "pozo", + "version": "0.0.0", + "dependencies": { + "@editorjs/code": "^2.9.3", + "@editorjs/editorjs": "^2.31.0", + "@editorjs/embed": "^2.7.6", + "@editorjs/header": "^2.8.8", + "@editorjs/image": "^2.10.3", + "@editorjs/link": "^2.6.2", + "@editorjs/list": "^2.0.8", + "@editorjs/paragraph": "^2.11.7", + "@editorjs/quote": "^2.7.6", + "@reduxjs/toolkit": "^1.9.5", + "@studio-freight/lenis": "^1.0.42", + "@weekwood/editorjs-video": "^1.0.2", + "antd": "^5.4.4", + "aos": "^2.3.4", + "axios": "^1.4.0", + "bowser": "^2.11.0", + "classnames": "^2.3.2", + "crypto-js": "^4.1.1", + "devtools-detect": "^4.0.2", + "exceljs": "^4.3.0", + "framer-motion": "^12.17.0", + "google-maps-react": "^2.0.6", + "gsap": "^3.13.0", + "html2canvas": "^1.4.1", + "html2pdf.js": "^0.10.3", + "informed": "^4.44.1", + "jquery": "^3.7.1", + "jspdf": "^2.5.1", + "moment": "^2.29.4", + "qrcode.react": "^4.2.0", + "react": "^18.2.0", + "react-color": "^2.19.3", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", + "react-excel-renderer": "^1.1.0", + "react-helmet-async": "^2.0.5", + "react-icons": "^4.8.0", + "react-qr-code": "^2.0.15", + "react-redux": "^8.0.5", + "react-router-dom": "^6.11.0", + "react-slick": "^0.29.0", + "rollup-plugin-terser": "^7.0.2", + "sass": "^1.62.0", + "slick-carousel": "^1.8.1", + "split-type": "^0.3.4", + "swiper": "^10.2.0", + "universal-cookie": "^4.0.4", + "uuid": "^11.1.0", + "webfontloader": "^1.6.28", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react": "^4.0.0-beta.0", + "eslint": "^8.38.0", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "react-snap": "^1.23.0", + "vite": "^4.3.0", + "vite-plugin-prerender": "^1.0.8", + "vite-plugin-sitemap": "^0.8.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "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.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "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/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "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/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "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/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codexteam/icons": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.5.tgz", + "integrity": "sha512-s6H2KXhLz2rgbMZSkRm8dsMJvyUNZsEjxobBEg9ztdrb1B2H3pEzY6iTwI4XUPJWJ3c3qRKwV4TrO3J5jUdoQA==", + "license": "MIT" + }, + "node_modules/@editorjs/caret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@editorjs/caret/-/caret-1.0.3.tgz", + "integrity": "sha512-VmgwQJZgL/LQjk049JunzRV1YCa0vDi+BNEpbDmr5cp3lGZllq9QQFO1eI71ZPzvFVn3vvhb+eOif4sAEyGgbw==", + "license": "MIT", + "dependencies": { + "@editorjs/dom": "^1.0.1" + } + }, + "node_modules/@editorjs/code": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@editorjs/code/-/code-2.9.3.tgz", + "integrity": "sha512-nXUrK3CjhpubvShYtcbkpZ9SU15IYwmJOsWZrlWYSzy9unZBRQthii6eABndsCtODzzV0yiSKmTp00RQkFow3Q==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.3.2" + } + }, + "node_modules/@editorjs/code/node_modules/@codexteam/icons": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.3.3.tgz", + "integrity": "sha512-cp7mkZPgmBuSxigTm3Vb+DtVHYeX7qXfQd7o05vcLD8Ag5WvRlol2QSn5P10k0CDAJwmkH9nQGQLBycErS9lsQ==", + "license": "MIT" + }, + "node_modules/@editorjs/dom": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@editorjs/dom/-/dom-1.0.1.tgz", + "integrity": "sha512-yLO+86MYOIUr1Jl7SQw23SYT84ggv6aJW0EIRsI3NTHYgnQzmK7Bt2n5ZFupQlB0GJqmKqA5tCue3NKQb+o7Pw==", + "license": "MIT", + "dependencies": { + "@editorjs/helpers": "^1.0.1" + } + }, + "node_modules/@editorjs/editorjs": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/@editorjs/editorjs/-/editorjs-2.31.0.tgz", + "integrity": "sha512-CBcIZXtPlg0dSlC5clO9OfTCmcxelj723jd4d67teFlaFJobjjxU1PmMxFJdhaRep5+nqdD0jr+fdJBqEDqt1g==", + "license": "Apache-2.0", + "dependencies": { + "@editorjs/caret": "^1.0.1", + "codex-notifier": "^1.1.2", + "codex-tooltip": "^1.0.5" + } + }, + "node_modules/@editorjs/embed": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/@editorjs/embed/-/embed-2.7.6.tgz", + "integrity": "sha512-L3agW/23mOI0L+oksUE9UOR5VSNCqapxLH5lma+5j+idjKCC31nxbx07x53MSJ4rlOTO1L7cFVhkqptEdOliJA==", + "license": "MIT", + "dependencies": { + "@editorjs/editorjs": "^2.29.1" + } + }, + "node_modules/@editorjs/header": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@editorjs/header/-/header-2.8.8.tgz", + "integrity": "sha512-bsMSs34u2hoi0UBuRoc5EGWXIFzJiwYgkFUYQGVm63y5FU+s8zPBmVx5Ip2sw1xgs0fqfDROqmteMvvmbCy62w==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.0.5", + "@editorjs/editorjs": "^2.29.1" + } + }, + "node_modules/@editorjs/helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@editorjs/helpers/-/helpers-1.0.1.tgz", + "integrity": "sha512-Lmr8ImoQvoROXtzhsIJsA1ZtXzH46DmE6O8hMjn9/AvQq62UfjREjn+Ewi6KxjIZMay2PsgDEbLlsVyNJGEaxw==", + "license": "MIT" + }, + "node_modules/@editorjs/image": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@editorjs/image/-/image-2.10.3.tgz", + "integrity": "sha512-ekCsGICZOIdghF/U2T34H7CItqaWAoJDXbkRD+x8l/LIo/7Ozf7KovYm21qz+CluArgV4RurVFHqwlz+O0vfJA==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.3.0" + } + }, + "node_modules/@editorjs/image/node_modules/@codexteam/icons": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.3.3.tgz", + "integrity": "sha512-cp7mkZPgmBuSxigTm3Vb+DtVHYeX7qXfQd7o05vcLD8Ag5WvRlol2QSn5P10k0CDAJwmkH9nQGQLBycErS9lsQ==", + "license": "MIT" + }, + "node_modules/@editorjs/link": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@editorjs/link/-/link-2.6.2.tgz", + "integrity": "sha512-3cPx6M4ZvwDDvsi0E0fvMR3rvveAV/C0GRo1JLeZJ9cG9QgyoNolj4eu5Eqx3/r1XTC/he54qYEIZ/Dc4Lr4Ow==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@codexteam/icons": "^0.0.4" + } + }, + "node_modules/@editorjs/link/node_modules/@codexteam/icons": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.4.tgz", + "integrity": "sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q==", + "license": "MIT" + }, + "node_modules/@editorjs/list": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@editorjs/list/-/list-2.0.8.tgz", + "integrity": "sha512-/EJNvpeJYa1YDtYa85ug9R3sbDyI5ZlMHQ2bIh5S9iPa19qXe45jk6kgcew+jMNQq3j4NS4Q6YeeFbU1QkNMWw==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.3.2" + } + }, + "node_modules/@editorjs/list/node_modules/@codexteam/icons": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.3.3.tgz", + "integrity": "sha512-cp7mkZPgmBuSxigTm3Vb+DtVHYeX7qXfQd7o05vcLD8Ag5WvRlol2QSn5P10k0CDAJwmkH9nQGQLBycErS9lsQ==", + "license": "MIT" + }, + "node_modules/@editorjs/paragraph": { + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@editorjs/paragraph/-/paragraph-2.11.7.tgz", + "integrity": "sha512-qD6bbWvRc4VvP0mXDOm+hOhzzhUYR9ZjcAvgCuKWcCbUMpCvhVF1s8NX40zdjekPi6JEnuHTamCncTrSzVsVhw==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.0.4" + } + }, + "node_modules/@editorjs/paragraph/node_modules/@codexteam/icons": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.4.tgz", + "integrity": "sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q==", + "license": "MIT" + }, + "node_modules/@editorjs/quote": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/@editorjs/quote/-/quote-2.7.6.tgz", + "integrity": "sha512-D01KUMSDj2r+6Z+xjDkQqI+y6URpeHCvj0+P4pah+GtkG040lWjFb2H4pgHFXuol2cbfyAoraYSw85fuPheCvw==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.3.2", + "@editorjs/dom": "^0.0.5" + } + }, + "node_modules/@editorjs/quote/node_modules/@codexteam/icons": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.3.3.tgz", + "integrity": "sha512-cp7mkZPgmBuSxigTm3Vb+DtVHYeX7qXfQd7o05vcLD8Ag5WvRlol2QSn5P10k0CDAJwmkH9nQGQLBycErS9lsQ==", + "license": "MIT" + }, + "node_modules/@editorjs/quote/node_modules/@editorjs/dom": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@editorjs/dom/-/dom-0.0.5.tgz", + "integrity": "sha512-SZ78Gwpkp3EUhjBIp0lSojeQ35V9acF8SubJsMeOH/vlOUE40GOnvvwWZnF05lO7bIB0dOHhhJy4N7IIAWxP2w==", + "license": "MIT", + "dependencies": { + "@editorjs/helpers": "^0.0.4" + } + }, + "node_modules/@editorjs/quote/node_modules/@editorjs/helpers": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@editorjs/helpers/-/helpers-0.0.4.tgz", + "integrity": "sha512-ieg3dzo2m1/ELze/RMNADiAiC5amXxIlVXoJ5vvXITOu/p/dPsrF+Oi3h5gBYvtGk9vg5LJUSG5YWU0tBUO1tw==", + "license": "MIT" + }, + "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/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "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/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "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/format/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==", + "license": "MIT" + }, + "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/@fast-csv/parse/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==", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "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/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "optional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@parcel/watcher/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@parcel/watcher/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==", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@parcel/watcher/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "optional": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@parcel/watcher/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==", + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@prerenderer/prerenderer": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@prerenderer/prerenderer/-/prerenderer-0.7.2.tgz", + "integrity": "sha512-zWG3uFnrQWDJQoSzGB8bOnNhJCgIiylVYDFBP7Nw2LqngHOqwvpdBtGSjfajC8+fdR/iB2FqMqe27cfdmf/8TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "express": "^4.16.2", + "http-proxy-middleware": "^0.18.0", + "portfinder": "^1.0.13" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@prerenderer/renderer-puppeteer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@prerenderer/renderer-puppeteer/-/renderer-puppeteer-0.2.0.tgz", + "integrity": "sha512-sC8WBcYcXbqm6premzCcUNDRROtAwBtBewUuzHyKcYDqU6InqjfpUQEXdIlhikN0gvqzlJy1+c7OJSfNYi4/tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "promise-limit": "^2.5.0", + "puppeteer": "^1.7.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "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/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.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/trigger": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.6.tgz", + "integrity": "sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==", + "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.44.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.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@studio-freight/lenis": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/@studio-freight/lenis/-/lenis-1.0.42.tgz", + "integrity": "sha512-HJAGf2DeM+BTvKzHv752z6Z7zy6bA643nZM7W88Ft9tnw2GsJSp6iJ+3cekjyMIWH+cloL2U9X82dKXgdU8kPg==", + "deprecated": "The '@studio-freight/lenis' package has been renamed to 'lenis'. Please update your dependencies: npm install lenis and visit the documentation: https://www.npmjs.com/package/lenis" + }, + "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.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "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.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz", + "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==", + "license": "MIT" + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/hoist-non-react-statics/node_modules/@types/react": { + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", + "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/node": { + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", + "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "devOptional": true + }, + "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.3.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.21.tgz", + "integrity": "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "devOptional": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "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/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "dev": true, + "dependencies": { + "@babel/core": "^7.26.10", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@weekwood/editorjs-video": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@weekwood/editorjs-video/-/editorjs-video-1.0.2.tgz", + "integrity": "sha512-Ov31N1vzJok4V/6BZCo5h+oNMgIHJDRhoYL8ywnV3t+RrHIoffgCJeByC44AX6qfFb2J894qjdAqDS0KdcCqTw==", + "license": "MIT", + "dependencies": { + "react-player": "^2.9.0" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "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.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "adler32": "bin/adler32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-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/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/antd": { + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.25.2.tgz", + "integrity": "sha512-7R2nUvlHhey7Trx64+hCtGXOiy+DTUs1Lv5bwbV1LzEIZIhWb0at1AM6V3K108a5lyoR9n7DX3ptlLF7uYV/DQ==", + "dependencies": { + "@ant-design/colors": "^7.2.0", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.6", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.2.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.50.5", + "rc-tabs": "~15.6.1", + "rc-textarea": "~1.10.0", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.0", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.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==", + "optional": 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/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "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/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/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dependencies": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "optional": true + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "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.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "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/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary": { + "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.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "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/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==" + }, + "node_modules/body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-rsa/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/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/browserify-sign/node_modules/readable-stream/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/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, + "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.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "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==", + "license": "(MIT OR Apache-2.0)", + "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-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/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/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "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/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cacache/node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "dev": true, + "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.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", + "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/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/cfb/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/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": "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/cheerio": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha512-9LDHQy1jHc/eXMzPN6/oah9Qba4CjdKECC7YYEE/2zge/tsGwt19NQp5NFdfd5Lx6TZlyC5SXNQkG41P9r6XDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "optional": 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/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "optional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/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==", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/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==", + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cipher-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==", + "dependencies": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "bin": { + "codepage": "bin/codepage.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + }, + "node_modules/codex-notifier": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codex-notifier/-/codex-notifier-1.1.2.tgz", + "integrity": "sha512-DCp6xe/LGueJ1N5sXEwcBc3r3PyVkEEDNWCVigfvywAkeXcZMk9K41a31tkEFBW0Ptlwji6/JlAb49E3Yrxbtg==", + "license": "MIT" + }, + "node_modules/codex-tooltip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/codex-tooltip/-/codex-tooltip-1.0.5.tgz", + "integrity": "sha512-IuA8LeyLU5p1B+HyhOsqR6oxyFQ11k3i9e9aXw40CrHFTRO2Y1npNBVU3W1SvhKAbUU7R/YikUBdcYFP0RcJag==", + "license": "MIT" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" + }, + "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/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/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/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "engines": { + "node": ">=0.10.0" + } + }, + "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.42.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz", + "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==", + "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/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/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-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-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dev": true, + "license": "BSD-like", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", + "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "1.0.0-alpha.29" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "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/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/devtools-detect": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/devtools-detect/-/devtools-detect-4.0.2.tgz", + "integrity": "sha512-LfvHOc/a72gt4OvHOGFK51VmOeTM9Q5uuEeKX+k5oVWZM3qDoLBFVbdhjk7zXX54FuQ370L7OpmxQbNStT+7Gw==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "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-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/dompurify": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.8.tgz", + "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/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/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.155", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", + "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/enhanced-resolve/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/enquire.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==" + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "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.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "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==", + "license": "MIT" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "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, + "license": "MIT", + "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.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "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": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "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.1", + "@humanwhocodes/config-array": "^0.13.0", + "@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.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "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.3.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.5.tgz", + "integrity": "sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA==", + "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/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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/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/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/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/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/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/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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "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/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==", + "dev": true, + "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/espree/node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/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/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "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/exceljs/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/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-history-api-fallback": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/express-history-api-fallback/-/express-history-api-fallback-2.2.1.tgz", + "integrity": "sha512-swxwm3aP8vrOOvlzOdZvHlSZtJGwHKaY94J6AkrAgCTmcbko3IRwbkhLv2wKV1WeZhjxX58aLMpP3atDBnKuZg==", + "dev": true, + "license": "ISC" + }, + "node_modules/express/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "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==" + }, + "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/fast-png": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz", + "integrity": "sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==", + "license": "MIT", + "dependencies": { + "@types/pako": "^2.0.3", + "iobuffer": "^5.3.2", + "pako": "^2.1.0" + } + }, + "node_modules/fast-png/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported." + }, + "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/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", + "optional": true + }, + "node_modules/filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/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/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.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/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/framer-motion": { + "version": "12.17.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.17.0.tgz", + "integrity": "sha512-2hISKgDk49yCLStwG1wf4Kdy/D6eBw9/eRNaWFIYoI9vMQ/Mqd1Fz+gzVlEtxJmtQ9y4IWnXm19/+UXD3dAYAA==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.17.0", + "motion-utils": "^12.12.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/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/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-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs-write-stream-atomic/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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/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/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.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "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/gsap": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.13.0.tgz", + "integrity": "sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "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/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highland": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/highland/-/highland-2.13.0.tgz", + "integrity": "sha512-zGZBcgAHPY2Zf9VG9S5IrlcC7CH9ELioXVtp9T5bU2a4fP2zIsA+Y8pV/n/h2lMwbWMHTX0I0xN0ODJ3Pd3aBQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "util-deprecate": "^1.0.2" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "license": "MIT" + }, + "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.3", + "resolved": "https://registry.npmjs.org/html2pdf.js/-/html2pdf.js-0.10.3.tgz", + "integrity": "sha512-RcB1sh8rs5NT3jgbN5zvvTmkmZrsUrxpZ/RI8TMbvuReNZAdJZG5TMfA2TBP6ZXxpXlWf9NB/ciLXVb6W2LbRQ==", + "license": "MIT", + "dependencies": { + "es6-promise": "^4.2.5", + "html2canvas": "^1.0.0", + "jspdf": "^3.0.0" + } + }, + "node_modules/html2pdf.js/node_modules/dompurify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz", + "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/html2pdf.js/node_modules/jspdf": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.3.tgz", + "integrity": "sha512-eURjAyz5iX1H8BOYAfzvdPfIKK53V7mCpBTe7Kb16PaM8JSXEcUQNBQaiWMI8wY5RvNOPj4GccMjTlfwRBd+oQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.9", + "fast-png": "^6.2.0", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.11", + "core-js": "^3.6.0", + "dompurify": "^3.2.4", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "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/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", + "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "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==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "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/informed": { + "version": "4.65.0", + "resolved": "https://registry.npmjs.org/informed/-/informed-4.65.0.tgz", + "integrity": "sha512-6OL7nh9PnX5AC6QfBZ0BDtFTO35brLwCckgP+FO0VLFKgA7/5Pxz0OV4WPR8NDYaeLc7mUXM+L7ctOvcCwtkjQ==", + "optionalDependencies": { + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "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/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/iobuffer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz", + "integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==", + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "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.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.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==", + "devOptional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number/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/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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "engines": { + "node": ">=4" + } + }, + "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/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "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==", + "dev": true, + "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-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "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": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jspdf": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.2.tgz", + "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.5.4", + "html2canvas": "^1.0.0-rc.5" + } + }, + "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/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/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": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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/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/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/load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dev": true + }, + "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/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true, + "license": "MIT" + }, + "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/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true, + "license": "MPL-2.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/memory-fs/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/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalcss": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/minimalcss/-/minimalcss-0.8.1.tgz", + "integrity": "sha512-a+kbRVvxz+oQf43pweflM38KvcvVuTvv3v6a8UgVbfS7E2rktSJSf8kfbGToSXgbiBDP83WTh8MWL6PdT9ljag==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio": "1.0.0-rc.2", + "css-tree": "1.0.0-alpha.28", + "csso": "~3.5.0", + "filesize": "^3.5.11", + "minimist": "^1.2.0", + "puppeteer": "^1.8.0" + }, + "bin": { + "minimalcss": "bin/minimalcss.js" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "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/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/motion-dom": { + "version": "12.17.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.17.0.tgz", + "integrity": "sha512-FA6/c70R9NKs3g41XDVONzmUUrEmyaifLVGCWtAmHP0usDnX9W+RN/tmbC4EUl0w6yLGvMTOwnWCFVgA5luhRg==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.12.1" + } + }, + "node_modules/motion-utils": { + "version": "12.12.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.12.1.tgz", + "integrity": "sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==", + "license": "MIT" + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/nan": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "optional": 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==", + "dev": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/node-libs-browser/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/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "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/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/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/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "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-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parallel-transform/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/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-asn1/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "optional": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pbkdf2": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pbkdf2/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "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==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "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/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "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/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "node_modules/promise-limit": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/promise-limit/-/promise-limit-2.7.0.tgz", + "integrity": "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==", + "dev": true, + "license": "ISC" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz", + "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==", + "deprecated": "< 24.15.0 is no longer supported", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "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.react": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", + "integrity": "sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "engines": { + "node": ">=0.4.x" + } + }, + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "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.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "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.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "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.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "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.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "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.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "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.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.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.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "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.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "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": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "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.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "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.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "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.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "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.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "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": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.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.50.5", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.50.5.tgz", + "integrity": "sha512-FDZu8aolhSYd3v9KOc3lZOVAU77wmRRu44R0Wfb8Oj1dXRUsloFaXMSl6f7yuWZUxArJTli7k8TEOX2mvhDl4A==", + "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.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.6.1.tgz", + "integrity": "sha512-/HzDV1VqOsUWyuC0c6AkxVYFjvx9+rFPKZ32ejxX0Uc7QCzcEjTA9/xMgv4HemPKwzBNX8KhGVbbumDjnj92aA==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.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.10.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.0.tgz", + "integrity": "sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.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.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "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.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.0.tgz", + "integrity": "sha512-pAzlPnyiFn1GCtEybEG2m9nXNzQyWXqWV2xFYCmDxjN9HzyjS5Pz2F+pbNdYw8mMJsixLEKLG0wVy9vOGxJMJA==", + "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.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.18.6", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.6.tgz", + "integrity": "sha512-TQ5SsutL3McvWmmxqQtMIbfeoE3dGjJrRSfKekgby7WQMpPIFvv4ghytp5Z0s3D8Nik9i9YNOCqHBfk86AwgAA==", + "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.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "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-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-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-excel-renderer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-excel-renderer/-/react-excel-renderer-1.1.0.tgz", + "integrity": "sha512-bxQdl7CLQmC3ughWUyMuzVPgjnssiQWi/3hGzq7bJ39wkBUT1E7gr8uh3PaJMG+AqYPx91qBFhDwzzNzZGKADA==", + "dependencies": { + "react": "^16.7.0", + "webpack": "^4.12.0", + "xlsx": "^0.14.1" + } + }, + "node_modules/react-excel-renderer/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "node_modules/react-excel-renderer/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/react-excel-renderer/node_modules/xlsx": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.5.tgz", + "integrity": "sha512-s/5f4/mjeWREmIWZ+HtDfh/rnz51ar+dZ4LWKZU3u9VBx2zLdSIWTdXgoa52/pnZ9Oe/Vu1W1qzcKzLVe+lq4w==", + "dependencies": { + "adler-32": "~1.2.0", + "cfb": "^1.1.2", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", + "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", + "license": "Apache-2.0", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.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": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-player": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.16.1.tgz", + "integrity": "sha512-mxP6CqjSWjidtyDoMOSHVPdhX0pY16aSvw5fVr44EMaT7X5Xz46uQ4b/YBm1v2x+3hHkB9PmjEEkmbHb9PXQ4w==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.0.0", + "load-script": "^1.0.0", + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" + }, + "peerDependencies": { + "react": ">=16.6.0" + } + }, + "node_modules/react-qr-code": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.15.tgz", + "integrity": "sha512-MkZcjEXqVKqXEIMVE0mbcGgDpkfSdd8zhuzXEl9QzYeNcw8Hq2oVIzDLWuZN2PQBwM5PWjc2S31K8Q1UbcFMfw==", + "dependencies": { + "prop-types": "^15.8.1", + "qr.js": "0.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "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-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-slick": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.29.0.tgz", + "integrity": "sha512-TGdOKE+ZkJHHeC4aaoH85m8RnFyWqdqRfAGkhd6dirmATXMZWAxOpTLmw2Ll/jPTQ3eEG7ercFr/sbzdeYCJXA==", + "dependencies": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-snap": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/react-snap/-/react-snap-1.23.0.tgz", + "integrity": "sha512-spmg2maHSedLrn6QBAfLJkyMqeeffLTIs7h40pS1copW2xBrajx4HEAcanm+7IVGO6SYCPoGwvbU3U30UFN25g==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-css": "4.2.1", + "express": "4.16.4", + "express-history-api-fallback": "2.2.1", + "highland": "2.13.0", + "html-minifier": "3.5.21", + "minimalcss": "0.8.1", + "mkdirp": "0.5.1", + "puppeteer": "^1.8.0", + "serve-static": "1.13.2", + "sourcemapped-stacktrace-node": "2.1.8" + }, + "bin": { + "react-snap": "run.js" + }, + "engines": { + "node": ">= 8.6.0" + } + }, + "node_modules/react-snap/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-snap/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "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==", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "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.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "optional": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "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": "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/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "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/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/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/ripemd160/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==", + "license": "MIT", + "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/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/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/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "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-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.89.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.0.tgz", + "integrity": "sha512-ld+kQU8YTdGNjOLfRWBzewJpU5cwEv/h5yyqlSeJcj6Yh8U4TDA9UA5FPicqDz/xgRPWRSYIQNiFks21TbA9KQ==", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "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/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "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==", + "dev": true, + "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/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sha.js/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", + "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", + "peerDependencies": { + "jquery": ">=1.8.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/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/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.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/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/sourcemapped-stacktrace-node": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace-node/-/sourcemapped-stacktrace-node-2.1.8.tgz", + "integrity": "sha512-xQOqfT5mquKLBp+H06WTeGYEQh7OF5wa44IPHbh+qNdTP15xSzxwISPml1xCweJ6DExDpDDxXe/P34wP+GdDrg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es6-promise": "^4.1.1", + "isomorphic-fetch": "^2.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 8.6.0" + } + }, + "node_modules/sourcemapped-stacktrace-node/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-type": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/split-type/-/split-type-0.3.4.tgz", + "integrity": "sha512-otEk9vnD8qwfLsk3Lx0gz+qRkNIJCx0mlyL47ImP/DjMuV39d75Lpfwjn9fHteDRz0aoOblSzQjSNT9+Sswxcg==" + }, + "node_modules/ssf": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", + "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", + "dependencies": { + "frac": "~1.1.2" + }, + "bin": { + "ssf": "bin/ssf.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "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/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-browserify/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/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/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/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "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.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "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/swiper": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-10.3.1.tgz", + "integrity": "sha512-24Wk3YUdZHxjc9faID97GTu6xnLNia+adMt6qMTZG/HgdSUt4fS0REsGUXJOgpTED0Amh/j+gRGQxsLayJUlBQ==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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/terser": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz", + "integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "license": "BSD-2-Clause", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/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/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/to-buffer/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/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/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.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.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" + }, + "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/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/ua-parser-js": { + "version": "1.0.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", + "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", + "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" + } + ], + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-cookie": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz", + "integrity": "sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.3.3", + "cookie": "^0.4.0" + } + }, + "node_modules/universal-cookie/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "engines": { + "node": ">=0.10.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/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/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "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.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", + "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", + "dev": true, + "license": "MIT", + "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-plugin-prerender": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vite-plugin-prerender/-/vite-plugin-prerender-1.0.8.tgz", + "integrity": "sha512-DSfzhm6LlIlN4QFHPCa3Vi6mCLeODpQnlBHar7LttLOEXykPspP8QZtknCCzYFRCf2176Wj+A0X/lwl/MXNnJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@prerenderer/prerenderer": "^0.7.2", + "@prerenderer/renderer-puppeteer": "^0.2.0", + "chalk": "^4.1.2", + "debug": "^4.3.3", + "html-minifier": "^3.5.16", + "mkdirp": "^1.0.4" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-prerender/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-plugin-prerender/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vite-plugin-prerender/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-sitemap": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/vite-plugin-sitemap/-/vite-plugin-sitemap-0.8.2.tgz", + "integrity": "sha512-bqIw6NVOXg6je81lzX8Lm0vjf8/QSAp8di8fYQzZ3ZdVicOm8+6idBGALJiy1R1FiXNIK8rgORO6HBqXyHW+iQ==", + "dev": true + }, + "node_modules/vite/node_modules/rollup": { + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/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==", + "optional": true, + "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/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webfontloader": { + "version": "1.6.28", + "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", + "integrity": "sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ==", + "license": "Apache-2.0" + }, + "node_modules/webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dependencies": { + "errno": "~0.1.7" + } + }, + "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/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "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/xlsx/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/xlsx/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/xlsx/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/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "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/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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..b03db30 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "pozo", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "postbuild": "echo 'Skipping react-snap'", + "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "reactSnap": { + "source": "dist", + "inlineCss": false, + "puppeteerArgs": [ + "--no-sandbox" + ], + "skipThirdPartyRequests": true, + "routes": [ + "/", + "/signin", + "/signup", + "/dashboard", + "/features", + "/pricing", + "/contact-us", + "/blog" + ] + }, + "dependencies": { + "@editorjs/code": "^2.9.3", + "@editorjs/editorjs": "^2.31.0", + "@editorjs/embed": "^2.7.6", + "@editorjs/header": "^2.8.8", + "@editorjs/image": "^2.10.3", + "@editorjs/link": "^2.6.2", + "@editorjs/list": "^2.0.8", + "@editorjs/paragraph": "^2.11.7", + "@editorjs/quote": "^2.7.6", + "@reduxjs/toolkit": "^1.9.5", + "@studio-freight/lenis": "^1.0.42", + "@weekwood/editorjs-video": "^1.0.2", + "antd": "^5.4.4", + "aos": "^2.3.4", + "axios": "^1.4.0", + "bowser": "^2.11.0", + "classnames": "^2.3.2", + "crypto-js": "^4.1.1", + "devtools-detect": "^4.0.2", + "exceljs": "^4.3.0", + "framer-motion": "^12.17.0", + "google-maps-react": "^2.0.6", + "gsap": "^3.13.0", + "html2canvas": "^1.4.1", + "html2pdf.js": "^0.10.3", + "informed": "^4.44.1", + "jquery": "^3.7.1", + "jspdf": "^2.5.1", + "moment": "^2.29.4", + "qrcode.react": "^4.2.0", + "react": "^18.2.0", + "react-color": "^2.19.3", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", + "react-excel-renderer": "^1.1.0", + "react-helmet-async": "^2.0.5", + "react-icons": "^4.8.0", + "react-qr-code": "^2.0.15", + "react-redux": "^8.0.5", + "react-router-dom": "^6.11.0", + "react-slick": "^0.29.0", + "rollup-plugin-terser": "^7.0.2", + "sass": "^1.62.0", + "slick-carousel": "^1.8.1", + "split-type": "^0.3.4", + "swiper": "^10.2.0", + "universal-cookie": "^4.0.4", + "uuid": "^11.1.0", + "webfontloader": "^1.6.28", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react": "^4.0.0-beta.0", + "eslint": "^8.38.0", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "react-snap": "^1.23.0", + "vite": "^4.3.0", + "vite-plugin-prerender": "^1.0.8", + "vite-plugin-sitemap": "^0.8.2" + } +} diff --git a/public/fav.ico b/public/fav.ico new file mode 100644 index 0000000..6cf2c66 Binary files /dev/null and b/public/fav.ico differ diff --git a/public/favlogo 1.png b/public/favlogo 1.png new file mode 100644 index 0000000..f354431 Binary files /dev/null and b/public/favlogo 1.png differ diff --git a/public/og/Signin-og.jpg b/public/og/Signin-og.jpg new file mode 100644 index 0000000..0d1acf8 Binary files /dev/null and b/public/og/Signin-og.jpg differ diff --git a/public/og/blog-og.jpg b/public/og/blog-og.jpg new file mode 100644 index 0000000..3773383 Binary files /dev/null and b/public/og/blog-og.jpg differ diff --git a/public/og/contact-og.jpg b/public/og/contact-og.jpg new file mode 100644 index 0000000..41d0fea Binary files /dev/null and b/public/og/contact-og.jpg differ diff --git a/public/og/default-og.jpg b/public/og/default-og.jpg new file mode 100644 index 0000000..a5b63f3 Binary files /dev/null and b/public/og/default-og.jpg differ diff --git a/public/og/home.jpg b/public/og/home.jpg new file mode 100644 index 0000000..bdd7e76 Binary files /dev/null and b/public/og/home.jpg differ diff --git a/public/og/pricing-og.jpg b/public/og/pricing-og.jpg new file mode 100644 index 0000000..73a6a10 Binary files /dev/null and b/public/og/pricing-og.jpg differ diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..aff3fff --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,33 @@ +User-agent: * + +# Allow top-level site content and important pages +Allow: / +Allow: /features +Allow: /pricing +Allow: /contact-us +Allow: /blog + +# Allow common public asset folders +Allow: /assets/ +Allow: /images/ +Allow: /css/ +Allow: /js/ + +# Disallow admin, build and development files +Disallow: /admin +Disallow: /AdminPanel +Disallow: /*.env +Disallow: /src/ +Disallow: /dist/ +Disallow: /node_modules/ + +# Sitemap location (replace if your production domain differs) +Sitemap: https://www.pozo.app/sitemap.xml + +# Crawl delay (optional) +Crawl-delay: 1 + + +# Notes: +# - This file is served from /public when using Vite. Ensure production deploy serves this file at https://your-domain/robots.txt +# - Robots rules are advisory; protect sensitive routes server-side as well. 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/robots.txt b/robots.txt new file mode 100644 index 0000000..51fd4bd --- /dev/null +++ b/robots.txt @@ -0,0 +1,28 @@ +User-agent: * + +# Allow important pages +Allow: / +Allow: /features +Allow: /pricing +Allow: /contact-us +Allow: /blog + +# Allow assets +Allow: /assets/ +Allow: /images/ +Allow: /css/ +Allow: /js/ + +# Disallow sensitive folders +Disallow: /admin +Disallow: /AdminPanel +Disallow: /*.env +Disallow: /src/ +Disallow: /dist/ +Disallow: /node_modules/ + +# Sitemap +Sitemap: https://www.pozo.app/sitemap.xml + +# Crawl delay +Crawl-delay: 1 \ No newline at end of file diff --git a/server.js b/server.js new file mode 100644 index 0000000..f38dee2 --- /dev/null +++ b/server.js @@ -0,0 +1,104 @@ +// server.js - IIS Node.js Proxy for React + .NET Backend +const express = require('express'); +const path = require('path'); +const { createProxyMiddleware } = require('http-proxy-middleware'); + +const app = express(); +const PORT = process.env.PORT || 3001; +const isProduction = process.env.NODE_ENV === 'production'; + +// Configuration +const config = { + distPath: path.join(__dirname, 'Update Common - Vignesh', 'dist'), + dotnetApiUrl: process.env.DOTNET_API_URL || 'http://localhost:5000' +}; + +console.log('🚀 Starting PozoApp Server...'); +console.log('📦 Environment:', isProduction ? 'Production' : 'Development'); +console.log('📁 Serving React from:', config.distPath); + +// Middleware - Serve static files from React build +app.use(express.static(config.distPath, { + maxAge: isProduction ? '1d' : 0, + etag: true +})); + +// Proxy .NET API calls +app.use('/api', createProxyMiddleware({ + target: config.dotnetApiUrl, + changeOrigin: true, + pathRewrite: { + '^/api': '/api' // Keep /api prefix + }, + onProxyReq: (proxyReq, req, res) => { + console.log('🔗 API Proxy:', req.method, req.url, '→', config.dotnetApiUrl); + }, + onError: (err, req, res) => { + console.error('❌ Proxy error:', err.message); + res.status(500).send('Backend API unavailable'); + } +})); + +// Health check endpoint +app.get('/health', (req, res) => { + res.json({ + status: 'OK', + environment: process.env.NODE_ENV, + timestamp: new Date().toISOString() + }); +}); + +// React SPA - Handle all frontend routes +// Clean URLs without /home/ prefix +const reactRoutes = [ + '/', + '/blog', + '/pricing', + '/contact-us', + '/signin', + '/faq', + '/testimonials', + '/privacy-policy', + '/cookie-policy', + '/about-us', + '/live-session', + '/adminpanel', + '/landing-page/*', + '/setting/*', + '/:appName' // Dynamic app routes (bakery, restaurant, etc.) +]; + +// Serve index.html for all non-API routes +app.get('*', (req, res) => { + const indexPath = path.join(config.distPath, 'index.html'); + + // Log for debugging + console.log('📄 Serving React SPA for:', req.url); + + res.sendFile(indexPath, (err) => { + if (err) { + console.error('❌ Error serving index.html:', err); + res.status(500).send('Error loading application'); + } + }); +}); + +// Error handling +app.use((err, req, res, next) => { + console.error('❌ Server Error:', err); + res.status(500).send('Internal Server Error'); +}); + +// Start server +app.listen(PORT, () => { + console.log(`✅ PozoApp Server listening on port ${PORT}`); + console.log(`🌐 Access at: http://localhost:${PORT}`); + console.log(`📊 Clean URLs enabled (no /home/ prefix)`); +}); + +// Graceful shutdown +process.on('SIGTERM', () => { + console.log('🛑 SIGTERM received, shutting down gracefully...'); + process.exit(0); +}); + diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..236d27a --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,60 @@ + + + + + + https://www.pozo.app/ + 2025-10-13 + weekly + 1.0 + + + + + + https://www.pozo.app/pricing + 2025-10-13 + weekly + 0.8 + + + https://www.pozo.app/contact-us + 2025-10-13 + monthly + 0.6 + + + + + https://www.pozo.app/blog + 2025-10-13 + weekly + 0.7 + + + + https://www.pozo.app/signin + 2025-10-13 + weekly + 0.7 + + + + + diff --git a/src/.env.development b/src/.env.development new file mode 100644 index 0000000..f5b3b36 --- /dev/null +++ b/src/.env.development @@ -0,0 +1,18 @@ +ENV_BASE_URL='/' +ENV_API_URL='http://192.168.1.37:8013' +ENV_API_URL_TOKEN='http://192.168.1.37:8001' +# ENV_API_URL_TOKEN='https://www.pozo.dev/JwtToken' +# ENV_API_URL='https://www.pozo.dev/pozo-common-api' +# ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.app/pozo-common-image-api/" +ENV_API_URL_RETAIL='http://192.168.1.37:8012/' +# ENV_API_URL_TOKEN='https://api.pozo.app/JwtToken' +# ENV_API_URL='https://api.pozo.app/pozo-common-api' +# ENV_API_URL_RETAIL='https://api.pozo.app/pozo-retail-api' +ENV_IMAGE_UPLOAD_API_URL="http://192.168.1.38/" +ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d" +ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b" +ENV_MAIN_BASE_URL='http://192.168.1.16:3000' +ENV_MAIN_REDIRECT_URL='/apps/retail/app-page/home' +ENV_EMAIL_API='http://192.168.1.37:8014' +ENV_IMAGE_UPLOAD_API_URL="http://192.168.1.38/" + diff --git a/src/.env.production b/src/.env.production new file mode 100644 index 0000000..cf28bae --- /dev/null +++ b/src/.env.production @@ -0,0 +1,42 @@ +#221 server + +# ENV_BASE_URL='/home/' +# ENV_API_URL='http://api.pozo.co.in/Pozocommonapi_UnderTest' +# # ENV_API_URL='http://api.pozo.co.in/Pozocommonapi' +# 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://pozo.co.in/' +# ENV_MAIN_REDIRECT_URL='/apps/retail/app-page/home' + +# live server(#173 server) +# ENV_BASE_URL='/home/' +# ENV_API_URL_TOKEN='https://api.pozo.app/JwtToken' +# ENV_API_URL='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://www.pozo.app' +# ENV_MAIN_REDIRECT_URL='/apps/retail/app-page/home' +# ENV_PAYMENT_URL='https://pozo.app/paymentgateway/PozoPaymentGateway' +# ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway' +# ENV_EMAIL_API='https://api.pozo.app/pozo-sms-email-template-api' +# ENV_API_URL_RETAIL='https://api.pozo.app/pozo-retail-api' + +#172 server + +ENV_BASE_URL='/home/' +ENV_API_URL_TOKEN='https://www.pozo.dev/JwtToken' +ENV_API_URL='https://www.pozo.dev/pozo-common-api' +ENV_API_URL_RETAIL='https://www.pozo.dev/pozo-retail-api' +ENV_IMAGE_UPLOAD_API_URL="https://www.pozo.dev/pozo-common-image-api" +ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d" +ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b" +ENV_MAIN_BASE_URL='https://www.pozo.dev' +ENV_MAIN_REDIRECT_URL='/apps/retail/app-page/home' +ENV_PAYMENT_URL='https://pozo.app/paymentgateway/PozoPaymentGateway' +ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway' +ENV_EMAIL_API='https://www.pozo.dev/pozo-sms-email-template-api' + + + diff --git a/src/AdminPanel/AdminPanel.jsx b/src/AdminPanel/AdminPanel.jsx new file mode 100644 index 0000000..4f3e72a --- /dev/null +++ b/src/AdminPanel/AdminPanel.jsx @@ -0,0 +1,298 @@ +import React, { useState } from "react"; +import { useNavigate } from "react-router-dom"; +import "./AdminPanel.scss"; +import { + FaTh, + FaUser, + FaUsers, + FaCalendarAlt, + FaBullseye, + FaVideo, + FaChevronRight, + FaPlus, + FaList, + FaSortDown, + FaArrowLeft, + FaRedo, + FaSignOutAlt, + FaCog, + FaGift, + FaGlobe, + FaImage, + FaMobile, + FaQuestionCircle, + FaBullhorn, + FaFootballBall, + FaBars, + FaTimes, +} from "react-icons/fa"; +import { BsPostcardFill } from "react-icons/bs"; +import { HiOutlineHome } from "react-icons/hi2"; + +import { useAdminPanel } from "./AdminPanelContext"; +import BannerSectionForm from "./AdminPanelForms/BannerSectionForm"; +import CTASectionForm from "./AdminPanelForms/CTASectionForm"; +import EcosystemForm from "./AdminPanelForms/EcosystemForm"; +import FaqSectionForm from "./AdminPanelForms/FaqSectionForm"; +import FooterForm from "./AdminPanelForms/FooterForm"; +import HeroSectionForm from "./AdminPanelForms/HeroSectionForm"; +import OfferingsForm from "./AdminPanelForms/OfferingsForm"; +import TrendingAppsForm from "./AdminPanelForms/TrendingAppsForm"; +import AppDemo from "./AdminPanelForms/AppDemo"; +import BlogForm from "./AdminPanelForms/BlogForm"; +import SeoForm from "./AdminPanelForms/SeoForm"; +import SEO from "../Components/SEO/SEO"; +import { clearSession, getSession } from "../Services/others"; +import { GenerateLogout } from "../features/signInPage/signInPage"; +import { useDispatch } from "react-redux"; +const subDirectory = import.meta.env.BASE_URL; + +const AdminPanel = () => { + // Default to first option (HeroSectionForm) + const [selectedId, setSelectedId] = useState(0); + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const navigate = useNavigate(); + const dispatch = useDispatch(); + + const UserType = getSession("UserType"); + console.log(UserType, "UserTypeUserType") + + const sidebarOptions = [ + // { id: 1, title: "Dashboard", subtitle: "Overview", icon: }, + { + id: 0, + title: "Blog", + subtitle: "Post Content Control", + icon: , + component: BlogForm, + key: "BlogSection", + }, + { + id: 10, + title: "SEO", + subtitle: "Content Management", + icon: , + component: SeoForm, + key: "SEOForm", + }, + // { + // id: 1, + // title: "HeroSection", + // subtitle: "Hero Section Management", + // icon: , + // component: HeroSectionForm, + // key: "HeroSection", + // }, + // { + // id: 2, + // title: "Offerings", + // subtitle: "Offering Section Management", + // icon: , + // component: OfferingsForm, + // key: "OfferingSection", + // }, + // { + // id: 3, + // title: "Industries", + // subtitle: "Ecosystem Management", + // icon: , + // component: EcosystemForm, + // key: "Industries", + // }, + // { + // id: 4, + // title: "AppDemo", + // subtitle: "Video Section Management", + // icon: , + // component: AppDemo, + // key: "VideoDemo", + // }, + // { + // id: 5, + // title: "BannerSection", + // subtitle: "Banner Section Management", + // icon: , + // component: BannerSectionForm, + // key: "BannerSection", + // }, + // { + // id: 6, + // title: "TrendingApps", + // subtitle: "Trending Apps Management", + // icon: , + // component: TrendingAppsForm, + // key: "TrendingApps", + // }, + // { + // id: 7, + // title: "FaqSection", + // subtitle: "FAQ Management", + // icon: , + // component: FaqSectionForm, + // key: "FAQSection", + // }, + // { + // id: 8, + // title: "CTASection", + // subtitle: "Call-to-Action Management", + // icon: , + // component: CTASectionForm, + // key: "CTASection", + // }, + // { + // id: 9, + // title: "Footer", + // subtitle: "Footer Management", + // icon: , + // component: FooterForm, + // key: "FooterSection", + // }, + ]; + + const currentSection = sidebarOptions.find( + (option) => option.id === selectedId + ); + + const handleSideBarSelect = (option) => { + setSelectedId(option?.id); + setIsMobileMenuOpen(false); // Close mobile menu on selection + }; + + const handleSignOut = async () => { + const UserId = getSession("UserId"); + const status = "N"; + const res = await dispatch(GenerateLogout({ UserId, status })).unwrap(); + if (res?.data?.statusCode === 1) { + clearSession(); + navigate(`${subDirectory}`); + } + } + + return ( + <> + +
+ {/* Mobile Menu Toggle */} +
+
+ Admin Panel +
+ +
+ + {/* Sidebar Navigation */} +
+
+
+ +

Admin Panel

+
+
+ + + +
+
+
SA
+
+ + Marketing Administrator + + Super Admin +
+
+ +
+
+ + {/* Mobile Overlay */} + {isMobileMenuOpen && ( +
setIsMobileMenuOpen(false)} + >
+ )} + + {/* Main Content */} +
+ {/* Top Header with Breadcrumbs */} +
+
+ Dashboard + {currentSection && ( + <> + + {currentSection.title} Management + + )} +
+
UserType === "Super Admin" ? navigate(`${subDirectory}landing-page/home`) : navigate(`${subDirectory}`)} + > + Back to Home +
+
+ + {/* Content Area */} +
+ {currentSection?.component ? ( + + ) : ( +
+
+ +
+

Welcome to Admin Panel

+

Select a section from the sidebar to get started

+
+ )} +
+
+
+ + ); +}; + +export default AdminPanel; diff --git a/src/AdminPanel/AdminPanel.scss b/src/AdminPanel/AdminPanel.scss new file mode 100644 index 0000000..b949800 --- /dev/null +++ b/src/AdminPanel/AdminPanel.scss @@ -0,0 +1,1264 @@ +// Modern Admin Panel with Trending UI/UX +.admin-panel-container { + display: flex; + height: 100vh; + font-family: + "NeueMontreal", + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + "Roboto", + "Helvetica Neue", + sans-serif; + background: linear-gradient(135deg, #f5f7fa 0%, #e8eef5 100%); + color: #1a202c; + letter-spacing: -0.01em; + + @media (max-width: 768px) { + flex-direction: column; + } + + // Sidebar Styles - Clean Modern White Theme + .admin-panel-sidebar { + width: 290px; + background: white; + color: #1a202c; + display: flex; + flex-direction: column; + box-shadow: 2px 0 20px rgba(0, 0, 0, 0.08); + position: relative; + border-right: 1px solid #e2e8f0; + + .admin-panel-sidebar-header { + padding: 18px 16px; + border-bottom: 1px solid #e2e8f0; + + .admin-panel-logo { + display: flex; + align-items: center; + gap: 14px; + + svg { + font-size: 1.7rem; + color: #5255c8; + } + + h1 { + margin: 0; + font-size: 1.3rem; + font-weight: 700; + color: #1e293b; + letter-spacing: -0.02em; + font-family: "Poppins", sans-serif; + } + } + } + + .admin-panel-sidebar-nav { + flex: 1; + padding: 12px 9px; + overflow-y: auto; + scrollbar-width: thin; + scroll-behavior: smooth; + + &::-webkit-scrollbar { + width: 4px; + } + + &::-webkit-scrollbar-track { + background: #f1f5f9; + } + + &::-webkit-scrollbar-thumb { + background: #cbd5e1; + border-radius: 4px; + + &:hover { + background: #94a3b8; + } + } + + .admin-panel-nav-item { + display: flex; + align-items: center; + padding: 12px 16px; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + margin: 2px 0; + border-radius: 12px; + background-color: #f8fafc; + + &:hover { + background: #e8f4ff; + transform: translateX(2px); + } + + &.active { + background: #1e40af; + box-shadow: 0 2px 8px rgba(30, 64, 175, 0.15); + transform: translateX(0); + + .admin-panel-nav-icon { + color: white; + transform: scale(1.05); + } + + .admin-panel-nav-content { + .admin-panel-nav-title { + color: white; + font-weight: 500; + } + + .admin-panel-nav-subtitle { + color: rgba(255, 255, 255, 0.9); + } + } + + &::after { + content: ""; + position: absolute; + right: 12px; + top: 50%; + transform: translateY(-50%); + width: 6px; + height: 6px; + background: white; + border-radius: 50%; + box-shadow: 0 0 6px rgba(255, 255, 255, 0.8); + } + } + + .admin-panel-nav-icon { + font-size: 1.35rem; + color: #5255c8; + margin-right: 16px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + align-items: center; + justify-content: center; + } + + .admin-panel-nav-content { + flex: 1; + + .admin-panel-nav-title { + display: block; + font-size: 0.9375rem; + font-weight: 500; + color: #374151; + // margin-bottom: 0.25rem; + letter-spacing: -0.01em; + transition: all 0.3s ease; + font-family: "Poppins", sans-serif; + } + + .admin-panel-nav-subtitle { + display: block; + font-size: 0.75rem; + color: #6b7280; + font-weight: 400; + letter-spacing: 0.01em; + transition: all 0.3s ease; + font-family: "NeueMontreal", sans-serif; + } + } + } + } + + .admin-panel-sidebar-footer { + padding: 16px 16px 14px 16px; + border-top: 1px solid #e2e8f0; + + .admin-panel-user-profile { + display: flex; + align-items: center; + padding: 0; + background: #f8fafc; + border-radius: 12px; + + .admin-panel-user-avatar { + width: 40px; + height: 40px; + background: #5255c8; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 500; + font-size: 0.9rem; + color: white; + margin-right: 12px; + } + + .admin-panel-user-info { + flex: 1; + + .admin-panel-user-name { + display: block; + font-size: 0.9rem; + font-weight: 500; + color: #374151; + font-family: "Poppins", sans-serif; + } + + .admin-panel-user-role { + display: block; + font-size: 0.8rem; + color: #6b7280; + font-family: "NeueMontreal", sans-serif; + } + } + } + + .admin-panel-signout-btn { + margin: 16px 0 0 0; + width: 100%; + transition: all 0.3s ease; + display: flex; + align-items: center; + gap: 10px; + text-align: center; + justify-content: center; + padding: 8px 12px; + font-family: "Poppins"; + border: none; + background-color: #ced0ff; + color: #1c22c5; + border-radius: 6px; + border: 1px solid #b9bbff; + cursor: pointer; + svg { + display: flex; + } + + &:hover { + color: #c91818; + } + } + } + } + + // Main Content Styles + .admin-panel-main-content { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + + // Top Header + .admin-panel-top-header { + background: white; + padding: 10px 16px; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + + .admin-panel-breadcrumbs { + display: flex; + align-items: center; + gap: 8px; + font-size: 0.7rem; + color: #64748b; + font-family: "Poppins", sans-serif; + + .admin-panel-breadcrumb-arrow { + font-size: 0.75rem; + color: #94a3b8; + font-family: "NeueMontreal", sans-serif; + } + + span:last-child { + color: #1e293b; + font-weight: 500; + } + } + + .admin-panel-header-actions { + display: flex; + gap: 12px; + + button { + background: transparent; + border: 1px solid #5255c8; + color: #5255c8; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + font-size: 0.775rem; + font-family: "NeueMontreal", sans-serif; + display: flex; + align-items: center; + gap: 8px; + transition: all 0.2s ease; + + &:hover { + background: #f9fafb; + border-color: #9ca3af; + } + } + } + } + + // Main Header - Modern Design + .admin-panel-main-header { + background: white; + padding: 16px 16px; + border-bottom: 1px solid #e5e7eb; + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); + + .admin-panel-header-left { + display: flex; + align-items: center; + gap: 20px; + + .admin-panel-header-icon { + width: 50px; + height: 50px; + background: linear-gradient(135deg, #1e40af 0%, #5470cc 100%); + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 1.5rem; + box-shadow: 0 8px 20px rgba(99, 102, 241, 0.25); + position: relative; + + &::before { + content: ""; + position: absolute; + inset: -2px; + background: linear-gradient(135deg, #5255c8, #8b5cf6, #a855f7); + border-radius: 18px; + z-index: -1; + opacity: 0.3; + filter: blur(8px); + } + } + + .admin-panel-header-content { + h1 { + margin: 0; + font-size: 1.3rem; + font-weight: 800; + color: #000; + letter-spacing: -0.03em; + line-height: 1.4; + font-family: "Poppins", sans-serif; + } + + p { + color: #64748b; + font-size: 0.7rem; + font-weight: 400; + letter-spacing: -0.01em; + font-family: "Poppins", sans-serif; + } + } + } + + .admin-panel-create-btn { + background: linear-gradient(135deg, #5255c8 0%, #7c80f3 100%); + color: white; + border: none; + padding: 10px 16px; + border-radius: 8px; + font-weight: 400; + font-size: 14px; + cursor: pointer; + font-family: "Poppins", sans-serif; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + align-items: center; + gap: 10px; + box-shadow: 0 4px 12px rgba(99, 102, 241, 0.25); + position: relative; + overflow: hidden; + + &::before { + content: ""; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + transition: left 0.5s; + } + + &:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(99, 102, 241, 0.35); + + &::before { + left: 100%; + } + } + + &:active { + transform: translateY(0); + } + } + } + + // Tab Navigation + .admin-panel-tab-navigation { + background: white; + padding: 12px 20px; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + + .admin-panel-tab-buttons { + display: flex; + gap: 8px; + + .admin-panel-tab-btn { + padding: 8px 16px; + border: none; + background: transparent; + color: #64748b; + font-weight: 500; + cursor: pointer; + border-radius: 6px; + transition: all 0.2s ease; + font-family: "Poppins", sans-serif; + + &.active { + background: #f1f5f9; + color: #1e293b; + } + + &:hover:not(.active) { + background: #f8fafc; + color: #475569; + } + } + } + + .admin-panel-tab-controls { + display: flex; + align-items: center; + gap: 16px; + + .admin-panel-sort-dropdown { + position: relative; + display: flex; + align-items: center; + + .admin-panel-dropdown-icon { + position: absolute; + right: 12px; + color: #64748b; + font-size: 0.875rem; + pointer-events: none; + z-index: 1; + font-family: "NeueMontreal", sans-serif; + } + + select { + appearance: none; + background: white; + border: 1px solid #d1d5db; + padding: 8px 32px 8px 12px; + border-radius: 6px; + font-size: 0.875rem; + color: #374151; + cursor: pointer; + min-width: 140px; + font-family: "NeueMontreal", sans-serif; + + &:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); + } + } + } + + .admin-panel-view-toggle { + display: flex; + background: #f1f5f9; + border-radius: 6px; + padding: 2px; + + .admin-panel-view-btn { + background: transparent; + border: none; + padding: 8px; + cursor: pointer; + border-radius: 4px; + color: #64748b; + transition: all 0.2s ease; + + &.active { + background: white; + color: #1e293b; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } + + &:hover:not(.active) { + color: #475569; + } + } + } + } + } + + // Content Area + .admin-panel-content-area { + flex: 1; + overflow-y: auto; + background: #f8fafc; + + // Remove existing form styling and make it clean + .hero-section-form, + .offerings-form, + .ecosystem-form, + .trending-apps-form, + .faq-form, + .CTASectionFormMaster, + .FooterFormMaster, + .banner-section-form { + background: transparent; + padding: 0; + border-radius: 0; + box-shadow: none; + margin: 0; + + .hero-section-header, + .offerings-header, + .ecosystem-header, + .trending-apps-header, + .faq-header, + .cta-header, + .footer-header, + .banner-section-header { + display: none; + } + + .form-container, + .offeringsContent, + .ecosystemContent, + .form-inputs, + .faq-inputs, + .cta-form, + .footer-form, + .banner-content { + background: transparent; + padding: 0; + border-radius: 0; + box-shadow: none; + border: none; + } + } + } + + // Placeholder Content + .admin-panel-placeholder-content { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 64px 32px; + text-align: center; + + .admin-panel-placeholder-icon { + width: 80px; + height: 80px; + background: linear-gradient(135deg, #e2e8f0, #cbd5e1); + border-radius: 20px; + display: flex; + align-items: center; + justify-content: center; + color: #64748b; + font-size: 2rem; + margin-bottom: 32px; + } + + h2 { + margin: 0 0 16px 0; + font-size: 1.5rem; + font-weight: 600; + color: #1e293b; + font-family: "Poppins", sans-serif; + } + + p { + margin: 0; + color: #64748b; + font-size: 1rem; + font-family: "Poppins", sans-serif; + } + } + + // Modal Overlay + .admin-panel-modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; + padding: 32px; + } + + .admin-panel-create-modal { + background: white; + border-radius: 12px; + width: 100%; + max-width: 600px; + max-height: 90vh; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2); + + .admin-panel-modal-header { + padding: 24px 32px; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + background: #f8fafc; + + h2 { + margin: 0; + font-size: 1.25rem; + font-weight: 600; + color: #1e293b; + font-family: "Poppins", sans-serif; + } + + .admin-panel-close-btn { + background: none; + border: none; + font-size: 1.5rem; + color: #64748b; + cursor: pointer; + padding: 4px; + border-radius: 4px; + transition: all 0.2s ease; + + &:hover { + background: #e2e8f0; + color: #374151; + } + } + } + + .admin-panel-modal-content { + padding: 32px; + overflow-y: auto; + max-height: calc(90vh - 80px); + + // Style the form components inside modal + .hero-section-form, + .offerings-form, + .ecosystem-form, + .trending-apps-form, + .faq-form, + .CTASectionFormMaster, + .FooterFormMaster, + .banner-section-form { + .form-container, + .offeringsContent, + .ecosystemContent, + .form-inputs, + .faq-inputs, + .cta-form, + .footer-form, + .banner-content { + background: transparent; + padding: 0; + border: none; + box-shadow: none; + } + + // Hide data display sections in modal + .hero-data-display, + .apps-display, + .added-titles, + .saved-posters, + .added-banners, + .added-faqs, + .apps-display, + .admin-cards-container { + display: none; + } + } + } + } + } + + // Mobile Header (hidden on desktop) + .admin-panel-mobile-header { + display: none; + justify-content: space-between; + align-items: center; + padding: 16px; + background: white; + border-bottom: 1px solid #e2e8f0; + position: sticky; + top: 0; + z-index: 100; + + .admin-panel-mobile-logo { + display: flex; + align-items: center; + gap: 8px; + font-size: 1.1rem; + font-weight: 600; + color: #1e293b; + + svg { + color: #5255c8; + font-size: 1.2rem; + } + } + + .admin-panel-mobile-toggle { + background: none; + border: none; + font-size: 1.2rem; + color: #5255c8; + cursor: pointer; + padding: 6px; + border-radius: 6px; + transition: all 0.2s ease; + + &:hover { + background: #edeeff; + color: #3f45ff; + } + svg { + display: flex; + } + } + } + + // Mobile Overlay + .admin-panel-mobile-overlay { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 150; + } + + // Responsive Design + @media (max-width: 1024px) { + .admin-panel-sidebar { + width: 240px; + } + + .admin-panel-main-content { + .admin-panel-main-header, + .admin-panel-tab-navigation, + .admin-panel-top-header { + padding: 16px 24px; + } + } + } + + @media (max-width: 768px) { + .admin-panel-mobile-header { + display: flex; + } + + .admin-panel-mobile-overlay { + display: block; + } + + .admin-panel-sidebar { + position: fixed; + top: 0; + left: -290px; + width: 290px; + height: 100vh; + z-index: 200; + transition: left 0.3s ease; + box-shadow: 2px 0 20px rgba(0, 0, 0, 0.15); + + &.mobile-open { + left: 0; + } + } + + .admin-panel-main-content { + width: 100%; + + .admin-panel-top-header { + padding: 12px 16px; + + .admin-panel-breadcrumbs { + font-size: 0.8rem; + } + } + + .admin-panel-main-header { + flex-direction: column; + gap: 1rem; + align-items: stretch; + padding: 16px; + + .admin-panel-header-left { + justify-content: center; + + .admin-panel-header-content { + text-align: center; + + h1 { + font-size: 1.1rem; + } + + p { + font-size: 0.8rem; + } + } + } + + .admin-panel-create-btn { + width: 100%; + justify-content: center; + } + } + + .admin-panel-tab-navigation { + flex-direction: column; + gap: 16px; + align-items: stretch; + padding: 12px 16px; + + .admin-panel-tab-buttons { + overflow-x: auto; + + .admin-panel-tab-btn { + white-space: nowrap; + min-width: 100px; + } + } + + .admin-panel-tab-controls { + justify-content: space-between; + flex-wrap: wrap; + gap: 12px; + } + } + + .admin-panel-modal-overlay { + padding: 16px; + } + + .admin-panel-create-modal { + max-height: 95vh; + + .admin-panel-modal-header { + padding: 16px 20px; + + h2 { + font-size: 1.1rem; + } + } + + .admin-panel-modal-content { + padding: 20px; + } + } + } + } + + @media (max-width: 480px) { + .admin-panel-main-content { + .admin-panel-top-header, + .admin-panel-main-header, + .admin-panel-tab-navigation { + padding: 12px; + } + + .admin-panel-main-header { + .admin-panel-header-left { + .admin-panel-header-icon { + width: 40px; + height: 40px; + font-size: 1.2rem; + } + } + } + } + + .admin-panel-create-modal { + margin: 8px; + max-height: calc(100vh - 16px); + + .admin-panel-modal-content { + padding: 16px; + } + } + } +} + +// Modal Form Styles +.admin-panel-create-modal-form { + .form-group { + margin-bottom: 24px; + + label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #374151; + font-size: 0.875rem; + font-family: "NeueMontreal", sans-serif; + } + + input, + textarea, + select { + width: 100%; + padding: 12px; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 0.875rem; + transition: all 0.2s ease; + font-family: "NeueMontreal", sans-serif; + + &:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); + } + + &.error { + border-color: #ef4444; + } + + &::placeholder { + color: #9ca3af; + } + } + + textarea { + resize: vertical; + min-height: 100px; + } + + .error-text { + display: block; + color: #ef4444; + font-size: 0.75rem; + margin-top: 4px; + font-family: "NeueMontreal", sans-serif; + } + + .image-mode-toggle { + display: flex; + margin-bottom: 12px; + background: #f3f4f6; + border-radius: 6px; + padding: 2px; + + .mode-btn { + flex: 1; + padding: 8px 16px; + border: none; + background: transparent; + color: #6b7280; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + border-radius: 4px; + transition: all 0.2s ease; + + &.active { + background: white; + color: #374151; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } + + &:hover:not(.active) { + color: #374151; + } + } + } + } + + .form-actions { + display: flex; + gap: 16px; + margin-top: 32px; + padding-top: 24px; + border-top: 1px solid #e5e7eb; + + button { + flex: 1; + padding: 12px 24px; + border-radius: 6px; + font-size: 0.875rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + font-family: "NeueMontreal", sans-serif; + + &.cancel-btn { + background: #f3f4f6; + color: #374151; + border: 1px solid #d1d5db; + + &:hover { + background: #e5e7eb; + } + } + + &.save-btn { + background: #3b82f6; + color: white; + border: 1px solid #3b82f6; + + &:hover { + background: #2563eb; + } + } + } + } +} + +// Modern Card-based layout for data display +.admin-panel-cards-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); + gap: 28px; + margin-top: 24px; + + @media (max-width: 768px) { + grid-template-columns: 1fr; + gap: 20px; + } +} + +.admin-panel-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.05), + 0 4px 12px rgba(0, 0, 0, 0.03); + border: 1px solid #e5e7eb; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: linear-gradient(90deg, #5255c8, #8b5cf6, #a855f7); + opacity: 0; + transition: opacity 0.3s ease; + } + + &:hover { + transform: translateY(-4px); + box-shadow: + 0 8px 20px rgba(0, 0, 0, 0.08), + 0 16px 40px rgba(0, 0, 0, 0.06); + border-color: #d1d5db; + + &::before { + opacity: 1; + } + } + + .card-image { + width: 100%; + height: 180px; + overflow: hidden; + background: #f1f5f9; + + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + + .card-content { + padding: 24px; + + .card-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 16px; + margin-bottom: 16px; + + h3 { + margin: 0; + font-size: 1.125rem; + font-weight: 700; + color: #1e293b; + line-height: 1.4; + letter-spacing: -0.02em; + font-family: "Poppins", sans-serif; + } + + .status-badge { + padding: 6px 14px; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + white-space: nowrap; + text-transform: uppercase; + letter-spacing: 0.5px; + font-family: "NeueMontreal", sans-serif; + + &.active { + background: linear-gradient(135deg, #dcfce7, #bbf7d0); + color: #166534; + box-shadow: 0 2px 8px rgba(22, 101, 52, 0.15); + } + + &.inactive { + background: linear-gradient(135deg, #fef3c7, #fde68a); + color: #92400e; + box-shadow: 0 2px 8px rgba(146, 64, 14, 0.15); + } + } + } + + .card-description { + color: #64748b; + font-size: 0.9375rem; + line-height: 1.6; + margin-bottom: 20px; + display: -webkit-box; + -webkit-line-clamp: 3; + line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + font-weight: 400; + font-family: "Poppins", sans-serif; + } + + .card-meta { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + padding-top: 12px; + border-top: 1px solid #f1f5f9; + + .priority-badge { + padding: 4px 12px; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 500; + font-family: "NeueMontreal", sans-serif; + + &.high { + background: #fee2e2; + color: #991b1b; + } + + &.medium { + background: #fef3c7; + color: #92400e; + } + + &.low { + background: #dcfce7; + color: #166534; + } + } + + .date { + color: #94a3b8; + font-size: 0.75rem; + font-family: "NeueMontreal", sans-serif; + } + } + + .card-actions { + display: flex; + gap: 10px; + + button { + flex: 1; + padding: 10px 16px; + border: 1.5px solid #e5e7eb; + background: white; + color: #475569; + border-radius: 10px; + font-size: 0.8125rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-family: "NeueMontreal", sans-serif; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + + &:hover { + background: #f8fafc; + border-color: #cbd5e1; + transform: translateY(-1px); + } + + &.primary { + background: linear-gradient(135deg, #5255c8, #8b5cf6); + color: white; + border-color: transparent; + box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25); + + &:hover { + box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35); + transform: translateY(-2px); + } + } + + &.danger { + background: linear-gradient(135deg, #ef4444, #dc2626); + color: white; + border-color: transparent; + box-shadow: 0 2px 8px rgba(239, 68, 68, 0.25); + + &:hover { + box-shadow: 0 4px 12px rgba(239, 68, 68, 0.35); + transform: translateY(-2px); + } + } + + &:active { + transform: translateY(0); + } + } + } + } +} + +.backtohomefromAdminpanel { + font-family: "Poppins"; + font-size: 12px; + gap: 4px; + align-items: center; + display: flex; + cursor: pointer; + svg { + display: flex; + } +} diff --git a/src/AdminPanel/AdminPanel.scss.backup b/src/AdminPanel/AdminPanel.scss.backup new file mode 100644 index 0000000..62060a2 --- /dev/null +++ b/src/AdminPanel/AdminPanel.scss.backup @@ -0,0 +1,976 @@ +// Modern Admin Panel with Trending UI/UX +.admin-panel { + display: flex; + height: 100vh; + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif; + background: linear-gradient(135deg, #f5f7fa 0%, #e8eef5 100%); + color: #1a202c; + letter-spacing: -0.01em; + + // Sidebar Styles - Modern Dark Theme + .sidebar { + width: 290px; + background: linear-gradient(180deg, #0f172a 0%, #1e1b4b 100%); + color: white; + display: flex; + flex-direction: column; + box-shadow: 8px 0 40px rgba(0, 0, 0, 0.15); + position: relative; + + &::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(90deg, #5255c8, #8b5cf6, #ec4899); + } + + .sidebar-header { + padding: 2.5rem 1.75rem 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.08); + + .logo { + display: flex; + align-items: center; + gap: 0.875rem; + + svg { + font-size: 2rem; + color: #818cf8; + filter: drop-shadow(0 0 8px rgba(129, 140, 248, 0.4)); + } + + h1 { + margin: 0; + font-size: 1.5rem; + font-weight: 700; + background: linear-gradient(135deg, #ffffff 0%, #a5b4fc 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + letter-spacing: -0.02em; + } + } + } + + .sidebar-nav { + flex: 1; + padding: 1rem 0; + overflow-y: auto; + + .nav-item { + display: flex; + align-items: center; + padding: 1rem 1.5rem; + cursor: pointer; + transition: all 0.3s ease; + position: relative; + margin: 0.25rem 0; + + &:hover { + background: rgba(255, 255, 255, 0.05); + } + + &.active { + background: linear-gradient(135deg, #5255c8, #8b5cf6); + box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); + + .nav-icon { + color: white; + } + + .nav-content { + .nav-title { + color: white; + } + .nav-subtitle { + color: rgba(255, 255, 255, 0.8); + } + } + } + + .nav-icon { + font-size: 1.25rem; + color: #94a3b8; + margin-right: 1rem; + transition: color 0.3s ease; + } + + .nav-content { + flex: 1; + + .nav-title { + display: block; + font-size: 0.95rem; + font-weight: 600; + color: #e2e8f0; + margin-bottom: 0.25rem; + } + + .nav-subtitle { + display: block; + font-size: 0.8rem; + color: #94a3b8; + } + } + + .active-indicator { + width: 4px; + height: 20px; + background: white; + border-radius: 2px; + position: absolute; + right: 0; + } + } + } + + .sidebar-footer { + padding: 1.5rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + + .user-profile { + display: flex; + align-items: center; + margin-bottom: 1rem; + + .user-avatar { + width: 40px; + height: 40px; + background: linear-gradient(135deg, #8b5cf6, #ec4899); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + font-size: 0.9rem; + margin-right: 0.75rem; + } + + .user-info { + flex: 1; + + .user-name { + display: block; + font-size: 0.9rem; + font-weight: 600; + color: white; + margin-bottom: 0.25rem; + } + + .user-role { + display: block; + font-size: 0.8rem; + color: #94a3b8; + } + } + } + + .signout-btn { + width: 100%; + background: transparent; + border: 1px solid rgba(255, 255, 255, 0.2); + color: white; + padding: 0.75rem 1rem; + border-radius: 8px; + cursor: pointer; + font-size: 0.9rem; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; + + &:hover { + background: rgba(255, 255, 255, 0.1); + border-color: rgba(255, 255, 255, 0.3); + } + } + } + } + + // Main Content Styles + .main-content { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + + // Top Header + .top-header { + background: white; + padding: 1rem 2rem; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + + .breadcrumbs { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.9rem; + color: #64748b; + + .breadcrumb-arrow { + font-size: 0.75rem; + color: #94a3b8; + } + + span:last-child { + color: #1e293b; + font-weight: 500; + } + } + + .header-actions { + display: flex; + gap: 0.75rem; + + button { + background: transparent; + border: 1px solid #d1d5db; + color: #374151; + padding: 0.5rem 1rem; + border-radius: 6px; + cursor: pointer; + font-size: 0.875rem; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.2s ease; + + &:hover { + background: #f9fafb; + border-color: #9ca3af; + } + } + } + } + + // Main Header + .main-header { + background: white; + padding: 2rem; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + + .header-left { + display: flex; + align-items: center; + gap: 1rem; + + .header-icon { + width: 48px; + height: 48px; + background: linear-gradient(135deg, #667eea, #764ba2); + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 1.25rem; + } + + .header-content { + h1 { + margin: 0; + font-size: 1.75rem; + font-weight: 700; + color: #1e293b; + } + + p { + margin: 0.25rem 0 0 0; + color: #64748b; + font-size: 0.95rem; + } + } + } + + .create-btn { + background: linear-gradient(135deg, #1e40af, #1d4ed8); + color: white; + border: none; + padding: 0.875rem 1.5rem; + border-radius: 10px; + font-weight: 600; + font-size: 0.95rem; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 0.5rem; + + &:hover { + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(30, 64, 175, 0.3); + } + } + } + + // Tab Navigation + .tab-navigation { + background: white; + padding: 1rem 2rem; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + + .tab-buttons { + display: flex; + gap: 0.5rem; + + .tab-btn { + padding: 0.5rem 1rem; + border: none; + background: transparent; + color: #64748b; + font-weight: 500; + cursor: pointer; + border-radius: 6px; + transition: all 0.2s ease; + + &.active { + background: #f1f5f9; + color: #1e293b; + } + + &:hover:not(.active) { + background: #f8fafc; + color: #475569; + } + } + } + + .tab-controls { + display: flex; + align-items: center; + gap: 1rem; + + .sort-dropdown { + position: relative; + display: flex; + align-items: center; + + .dropdown-icon { + position: absolute; + right: 0.75rem; + color: #64748b; + font-size: 0.875rem; + pointer-events: none; + z-index: 1; + } + + select { + appearance: none; + background: white; + border: 1px solid #d1d5db; + padding: 0.5rem 2rem 0.5rem 0.75rem; + border-radius: 6px; + font-size: 0.875rem; + color: #374151; + cursor: pointer; + min-width: 140px; + + &:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); + } + } + } + + .view-toggle { + display: flex; + background: #f1f5f9; + border-radius: 6px; + padding: 2px; + + .view-btn { + background: transparent; + border: none; + padding: 0.5rem; + cursor: pointer; + border-radius: 4px; + color: #64748b; + transition: all 0.2s ease; + + &.active { + background: white; + color: #1e293b; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } + + &:hover:not(.active) { + color: #475569; + } + } + } + } + } + + // Content Area + .content-area { + flex: 1; + padding: 2rem; + overflow-y: auto; + background: #f8fafc; + + // Remove existing form styling and make it clean + .hero-section-form, + .offerings-form, + .ecosystem-form, + .trending-apps-form, + .faq-form, + .CTASectionFormMaster, + .FooterFormMaster, + .banner-section-form { + background: transparent; + padding: 0; + border-radius: 0; + box-shadow: none; + margin: 0; + + .hero-section-header, + .offerings-header, + .ecosystem-header, + .trending-apps-header, + .faq-header, + .cta-header, + .footer-header, + .banner-section-header { + display: none; + } + + .form-container, + .offeringsContent, + .ecosystemContent, + .form-inputs, + .faq-inputs, + .cta-form, + .footer-form, + .banner-content { + background: transparent; + padding: 0; + border-radius: 0; + box-shadow: none; + border: none; + } + } + } + + // Placeholder Content + .placeholder-content { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 4rem 2rem; + text-align: center; + + .placeholder-icon { + width: 80px; + height: 80px; + background: linear-gradient(135deg, #e2e8f0, #cbd5e1); + border-radius: 20px; + display: flex; + align-items: center; + justify-content: center; + color: #64748b; + font-size: 2rem; + margin-bottom: 2rem; + } + + h2 { + margin: 0 0 1rem 0; + font-size: 1.5rem; + font-weight: 600; + color: #1e293b; + } + + p { + margin: 0; + color: #64748b; + font-size: 1rem; + } + } + + // Modal Overlay + .modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; + padding: 2rem; + } + + .create-modal { + background: white; + border-radius: 12px; + width: 100%; + max-width: 600px; + max-height: 90vh; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2); + + .modal-header { + padding: 1.5rem 2rem; + border-bottom: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + background: #f8fafc; + + h2 { + margin: 0; + font-size: 1.25rem; + font-weight: 600; + color: #1e293b; + } + + .close-btn { + background: none; + border: none; + font-size: 1.5rem; + color: #64748b; + cursor: pointer; + padding: 0.25rem; + border-radius: 4px; + transition: all 0.2s ease; + + &:hover { + background: #e2e8f0; + color: #374151; + } + } + } + + .modal-content { + padding: 2rem; + overflow-y: auto; + max-height: calc(90vh - 80px); + + // Style the form components inside modal + .hero-section-form, + .offerings-form, + .ecosystem-form, + .trending-apps-form, + .faq-form, + .CTASectionFormMaster, + .FooterFormMaster, + .banner-section-form { + .form-container, + .offeringsContent, + .ecosystemContent, + .form-inputs, + .faq-inputs, + .cta-form, + .footer-form, + .banner-content { + background: transparent; + padding: 0; + border: none; + box-shadow: none; + } + + // Hide data display sections in modal + .hero-data-display, + .apps-display, + .added-titles, + .saved-posters, + .added-banners, + .added-faqs, + .apps-display, + .admin-cards-container { + display: none; + } + } + } + } + } + + // Responsive Design + @media (max-width: 1024px) { + .sidebar { + width: 240px; + } + + .main-content { + .main-header, + .tab-navigation, + .top-header { + padding: 1rem 1.5rem; + } + + .content-area { + padding: 1.5rem; + } + } + } + + @media (max-width: 768px) { + flex-direction: column; + + .sidebar { + width: 100%; + height: auto; + flex-direction: row; + overflow-x: auto; + + .sidebar-nav { + flex: 1; + display: flex; + padding: 0; + + .nav-item { + min-width: 150px; + flex-shrink: 0; + } + } + + .sidebar-footer { + display: none; + } + } + + .main-content { + .main-header { + flex-direction: column; + gap: 1rem; + align-items: stretch; + + .header-left { + justify-content: center; + } + + .create-btn { + width: 100%; + justify-content: center; + } + } + + .tab-navigation { + flex-direction: column; + gap: 1rem; + align-items: stretch; + + .tab-controls { + justify-content: space-between; + } + } + + .content-area { + padding: 1rem; + } + + .modal-overlay { + padding: 1rem; + } + + .create-modal { + max-height: 95vh; + } + } + } +} + +// Modal Form Styles +.create-modal-form { + .form-group { + margin-bottom: 1.5rem; + + label { + display: block; + margin-bottom: 0.5rem; + font-weight: 600; + color: #374151; + font-size: 0.875rem; + } + + input, + textarea, + select { + width: 100%; + padding: 0.75rem; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 0.875rem; + transition: all 0.2s ease; + font-family: inherit; + + &:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); + } + + &.error { + border-color: #ef4444; + } + + &::placeholder { + color: #9ca3af; + } + } + + textarea { + resize: vertical; + min-height: 100px; + } + + .error-text { + display: block; + color: #ef4444; + font-size: 0.75rem; + margin-top: 0.25rem; + } + + .image-mode-toggle { + display: flex; + margin-bottom: 0.75rem; + background: #f3f4f6; + border-radius: 6px; + padding: 2px; + + .mode-btn { + flex: 1; + padding: 0.5rem 1rem; + border: none; + background: transparent; + color: #6b7280; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + border-radius: 4px; + transition: all 0.2s ease; + + &.active { + background: white; + color: #374151; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } + + &:hover:not(.active) { + color: #374151; + } + } + } + } + + .form-actions { + display: flex; + gap: 1rem; + margin-top: 2rem; + padding-top: 1.5rem; + border-top: 1px solid #e5e7eb; + + button { + flex: 1; + padding: 0.75rem 1.5rem; + border-radius: 6px; + font-size: 0.875rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + + &.cancel-btn { + background: #f3f4f6; + color: #374151; + border: 1px solid #d1d5db; + + &:hover { + background: #e5e7eb; + } + } + + &.save-btn { + background: #3b82f6; + color: white; + border: 1px solid #3b82f6; + + &:hover { + background: #2563eb; + } + } + } + } +} + +// Card-based layout for data display +.admin-cards-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 1.5rem; + margin-top: 1.5rem; + + @media (max-width: 768px) { + grid-template-columns: 1fr; + } +} + +.admin-card { + background: white; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); + border: 1px solid #e2e8f0; + transition: all 0.3s ease; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); + } + + .card-image { + width: 100%; + height: 180px; + overflow: hidden; + background: #f1f5f9; + + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + + .card-content { + padding: 1.25rem; + + .card-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 1rem; + margin-bottom: 0.75rem; + + h3 { + margin: 0; + font-size: 1.1rem; + font-weight: 600; + color: #1e293b; + line-height: 1.4; + } + + .status-badge { + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 500; + white-space: nowrap; + + &.active { + background: #dcfce7; + color: #166534; + } + + &.inactive { + background: #fef3c7; + color: #92400e; + } + } + } + + .card-description { + color: #64748b; + font-size: 0.875rem; + line-height: 1.5; + margin-bottom: 1rem; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + } + + .card-meta { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; + padding-top: 0.75rem; + border-top: 1px solid #f1f5f9; + + .priority-badge { + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 500; + + &.high { + background: #fee2e2; + color: #991b1b; + } + + &.medium { + background: #fef3c7; + color: #92400e; + } + + &.low { + background: #dcfce7; + color: #166534; + } + } + + .date { + color: #94a3b8; + font-size: 0.75rem; + } + } + + .card-actions { + display: flex; + gap: 0.5rem; + + button { + flex: 1; + padding: 0.5rem 0.75rem; + border: 1px solid #d1d5db; + background: white; + color: #374151; + border-radius: 6px; + font-size: 0.75rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + + &:hover { + background: #f9fafb; + border-color: #9ca3af; + } + + &.primary { + background: #3b82f6; + color: white; + border-color: #3b82f6; + + &:hover { + background: #2563eb; + } + } + + &.danger { + background: #ef4444; + color: white; + border-color: #ef4444; + + &:hover { + background: #dc2626; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/AdminPanel/AdminPanelContext.jsx b/src/AdminPanel/AdminPanelContext.jsx new file mode 100644 index 0000000..b4b8bb7 --- /dev/null +++ b/src/AdminPanel/AdminPanelContext.jsx @@ -0,0 +1,223 @@ +import React, { createContext, useContext, useState } from 'react' + +const AdminPanelContext = createContext() + +export const useAdminPanel = () => { + const context = useContext(AdminPanelContext) + if (!context) { + throw new Error('useAdminPanel must be used within AdminPanelProvider') + } + return context +} + +export const AdminPanelProvider = ({ children }) => { + const [sectionData, setSectionData] = useState({ + BannerSectionForm: [ + { + id: 1, + title: 'Summer Sale Banner', + description: 'Promotional banner for summer sale campaign', + image: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 22, 2024' + } + ], + CTASectionForm: [ + { + id: 1, + title: 'Get Started CTA', + description: 'Primary call-to-action for new users', + image: 'https://images.unsplash.com/photo-1559136555-9303baea8ebd?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 21, 2024' + } + ], + EcosystemForm: [ + { + id: 1, + title: 'Smart City Solutions', + description: 'Comprehensive urban development platform integrating IoT, data analytics, and citizen engagement.', + image: 'https://images.unsplash.com/photo-1449824913935-59a10b8d2000?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 21, 2024' + }, + { + id: 2, + title: 'Healthcare Innovation Hub', + description: 'Connected healthcare ecosystem with telemedicine, AI diagnostics, and patient management.', + image: 'https://images.unsplash.com/photo-1559757148-5c350d0d3c56?w=400&h=300&fit=crop', + active: true, + priority: 'medium', + date: 'Dec 20, 2024' + } + ], + FaqSectionForm: [ + { + id: 1, + title: 'How to Get Started', + description: 'Step-by-step guide for new users to begin using our platform', + image: 'https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 20, 2024' + } + ], + FooterForm: [ + { + id: 1, + title: 'Main Footer', + description: 'Primary footer with contact information and links', + image: 'https://images.unsplash.com/photo-1557804506-669a67965ba0?w=400&h=300&fit=crop', + active: true, + priority: 'medium', + date: 'Dec 19, 2024' + } + ], + HeroSectionForm: [ + { + id: 1, + title: 'Support the Environment', + description: 'Environmental conservation through waste management, and sustainable practices for a better future.', + image: 'https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?w=400&h=300&fit=crop', + active: true, + priority: 'medium', + date: 'Dec 19, 2024' + }, + { + id: 2, + title: 'Water, Sanitation & Hygiene', + description: 'Providing clean water access, sanitation facilities, hygiene education to improve community health and wellbeing.', + image: 'https://images.unsplash.com/photo-1559027615-cd4628902d4a?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 18, 2024' + } + ], + OfferingsForm: [ + { + id: 1, + title: 'Digital Transformation', + description: 'Comprehensive digital solutions to modernize your business operations and enhance customer experience.', + image: 'https://images.unsplash.com/photo-1551434678-e076c223a692?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 18, 2024' + }, + { + id: 2, + title: 'Cloud Infrastructure', + description: 'Scalable cloud solutions for secure data storage, processing, and seamless business operations.', + image: 'https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=400&h=300&fit=crop', + active: true, + priority: 'medium', + date: 'Dec 17, 2024' + } + ], + TrendingAppsForm: [ + { + id: 1, + name: 'PozoPay', + description: 'Secure mobile payment solution with advanced encryption and fraud protection.', + icon: 'https://images.unsplash.com/photo-1563013544-824ae1b704d3?w=100&h=100&fit=crop', + category: 'Finance', + rating: 4.8, + downloads: '1.2M', + status: 'active', + priority: 'high', + date: 'Dec 22, 2024' + }, + { + id: 2, + name: 'SmartInventory', + description: 'AI-powered inventory management system with real-time tracking and analytics.', + icon: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=100&h=100&fit=crop', + category: 'Business', + rating: 4.6, + downloads: '850K', + status: 'active', + priority: 'medium', + date: 'Dec 21, 2024' + }, + { + id: 3, + name: 'HealthTracker', + description: 'Comprehensive health monitoring app with wearable device integration.', + icon: 'https://images.unsplash.com/photo-1559757175-0eb30cd8c063?w=100&h=100&fit=crop', + category: 'Health', + rating: 4.9, + downloads: '2.1M', + status: 'active', + priority: 'high', + date: 'Dec 20, 2024' + } + ], + AppDemo: [ + { + id: 1, + title: 'Product Demo Video', + description: 'Comprehensive demonstration of our latest product features and capabilities', + image: 'https://images.unsplash.com/photo-1574717024653-61fd2cf4d44d?w=400&h=300&fit=crop', + active: true, + priority: 'high', + date: 'Dec 19, 2024' + } + ] + }) + + const addItem = (sectionKey, item) => { + setSectionData(prev => ({ + ...prev, + [sectionKey]: [...prev[sectionKey], { ...item, id: Date.now() }] + })) + } + + const updateItem = (sectionKey, itemId, updatedItem) => { + setSectionData(prev => ({ + ...prev, + [sectionKey]: prev[sectionKey].map(item => + item.id === itemId ? { ...item, ...updatedItem } : item + ) + })) + } + + const deleteItem = (sectionKey, itemId) => { + setSectionData(prev => ({ + ...prev, + [sectionKey]: prev[sectionKey].filter(item => item.id !== itemId) + })) + } + + const toggleItemStatus = (sectionKey, itemId) => { + setSectionData(prev => ({ + ...prev, + [sectionKey]: prev[sectionKey].map(item => + item.id === itemId ? { ...item, active: !item.active } : item + ) + })) + } + + const updateSectionData = (sectionKey, newData) => { + setSectionData(prev => ({ + ...prev, + [sectionKey]: newData + })) + } + + const value = { + sectionData, + addItem, + updateItem, + deleteItem, + toggleItemStatus, + updateSectionData + } + + return ( + + {children} + + ) +} diff --git a/src/AdminPanel/AdminPanelForms/AppDemo.jsx b/src/AdminPanel/AdminPanelForms/AppDemo.jsx new file mode 100644 index 0000000..4e358b3 --- /dev/null +++ b/src/AdminPanel/AdminPanelForms/AppDemo.jsx @@ -0,0 +1,280 @@ +import React, { useState, useEffect } from 'react' +import { Popconfirm, message } from 'antd' +import { useAdminPanel } from '../AdminPanelContext' +import { DefaultModal } from '../../Components/Modal/DefaultModal' +import "../Styles/AppDemo.scss" + +const AppDemo = () => { + const { sectionData, updateSectionData } = useAdminPanel() + const videoData = sectionData.AppDemo || [] + const [isModalOpen, setIsModalOpen] = useState(false) + const [title, setTitle] = useState('') + const [file, setFile] = useState(null) + const [editingIndex, setEditingIndex] = useState(-1) + const [fileError, setFileError] = useState('') + const [previewUrls, setPreviewUrls] = useState(new Map()) + + useEffect(() => { + return () => { + previewUrls.forEach(url => URL.revokeObjectURL(url)) + } + }, []) + + const openModal = () => { + setIsModalOpen(true) + } + + const closeModal = () => { + // Clean up preview URL + const prevUrl = previewUrls.get('preview') + if (prevUrl) { + URL.revokeObjectURL(prevUrl) + setPreviewUrls(new Map(previewUrls.delete('preview'))) + } + + setIsModalOpen(false) + setTitle('') + setFile(null) + setEditingIndex(-1) + setFileError('') + } + + const handleClear = () => { + setTitle('') + setFile(null) + setFileError('') + } + + const handleFileChange = (e) => { + const selectedFile = e.target.files[0] + if (selectedFile) { + // Clean up previous preview URL + const prevUrl = previewUrls.get('preview') + if (prevUrl) URL.revokeObjectURL(prevUrl) + + // Create new preview URL + const newUrl = URL.createObjectURL(selectedFile) + setPreviewUrls(new Map(previewUrls.set('preview', newUrl))) + + setFile(selectedFile) + if (fileError) setFileError('') + if (!title) { + setTitle(selectedFile.name.replace(/\.[^/.]+$/, '')) + } + } + } + + const handleSave = () => { + if (!file) { + setFileError('Video file is required') + message.error('Please select a video file') + return + } + setFileError('') + + const newVideo = { + id: editingIndex >= 0 ? videoData[editingIndex].id : Date.now(), + title: title.trim() || file.name, + file: file, + active: true, + createdAt: editingIndex >= 0 ? videoData[editingIndex].createdAt : new Date().toLocaleDateString() + } + + if (editingIndex >= 0) { + const updatedVideos = videoData.map((video, index) => index === editingIndex ? newVideo : video) + updateSectionData('AppDemo', updatedVideos) + setEditingIndex(-1) + message.success('Video updated!') + } else { + updateSectionData('AppDemo', [...videoData, newVideo]) + message.success('Video added!') + } + + closeModal() + } + + const handleDelete = (index) => { + const updatedVideos = videoData.filter((_, i) => i !== index) + updateSectionData('AppDemo', updatedVideos) + message.success('Video deleted') + } + + const handleEdit = (index) => { + const video = videoData[index] + setTitle(video.title) + setFile(video.file) + setEditingIndex(index) + openModal() + } + + const handleToggleActive = (index) => { + const updated = [...videoData] + updated[index].active = !updated[index].active + updateSectionData('AppDemo', updated) + message.success('Status updated') + } + + return ( +
+ {/* Header Section */} +
+
+ {/*
+ 🎥 +
*/} +
+

Video Management

+

Manage and organize your video content.

+
+
+ +
+ + {/* Tab Navigation */} +
+
+ + +
+
+
+ +
+
+ + +
+
+
+ + {/* Content Area */} + {videoData.length > 0 ? ( +
+
+ {videoData.map((video, index) => ( +
+
+

{video.title || video.file?.name || 'Untitled Video'}

+
+ + handleDelete(index)} + okText="Yes" + cancelText="No" + > + + + +
+
+
+
+ {video.file instanceof File ? ( + + ) : ( +
Video not available
+ )} +
+

Created: {video.date || video.createdAt}

+

+ Status: {video.active ? 'Active' : 'Inactive'} +

+
+
+ ))} +
+
+ ) : ( +
+
+ 🎥 +
+

No Videos Found

+

Get started by uploading your first video

+
+ )} + + {/* Modal */} + = 0 ? 'Edit Video' : 'Upload New Video'} + handleCancel={closeModal} + handleSubmit={handleSave} + buttonText={editingIndex >= 0 ? 'Update Video' : 'Add Video'} + width={600} + destroyOnClose={true} + > +
+
+ + setTitle(e.target.value)} + placeholder='Enter video title' + autoFocus + /> +
+ +
+ + + {fileError && {fileError}} + {file && file instanceof File && ( +
+

Selected: {file.name}

+ +
+ )} +
+ +
+ + + +
+
+
+
+ ) +} + +export default AppDemo diff --git a/src/AdminPanel/AdminPanelForms/BannerSectionForm.jsx b/src/AdminPanel/AdminPanelForms/BannerSectionForm.jsx new file mode 100644 index 0000000..629d95c --- /dev/null +++ b/src/AdminPanel/AdminPanelForms/BannerSectionForm.jsx @@ -0,0 +1,259 @@ +import React, { useState } from 'react' +import { Popconfirm, message } from 'antd' +import { useAdminPanel } from '../AdminPanelContext' +import { DefaultModal } from '../../Components/Modal/DefaultModal' +import "../Styles/BannerSectionForm.scss" + +const BannerSectionForm = () => { + const { sectionData, updateSectionData } = useAdminPanel() + const bannerData = sectionData.BannerSectionForm || [] + const [isModalOpen, setIsModalOpen] = useState(false) + const [title, setTitle] = useState('') + const [description, setDescription] = useState('') + const [editingIndex, setEditingIndex] = useState(-1) + const [titleError, setTitleError] = useState('') + const [descriptionError, setDescriptionError] = useState('') + + const openModal = () => { + setIsModalOpen(true) + } + + const closeModal = () => { + setIsModalOpen(false) + setTitle('') + setDescription('') + setEditingIndex(-1) + setTitleError('') + setDescriptionError('') + } + + const handleClear = () => { + setTitle('') + setDescription('') + setTitleError('') + setDescriptionError('') + } + + const handleSave = () => { + let hasError = false + + if (!title.trim()) { + setTitleError('Title is required') + hasError = true + } else { + setTitleError('') + } + + if (!description.trim()) { + setDescriptionError('Description is required') + hasError = true + } else { + setDescriptionError('') + } + + if (hasError) { + message.error('Please fix the highlighted fields') + return + } + + const newBanner = { + id: editingIndex >= 0 ? bannerData[editingIndex].id : Date.now(), + title: title.trim(), + description: description.trim(), + active: true, + createdAt: editingIndex >= 0 ? bannerData[editingIndex].createdAt : new Date().toLocaleDateString() + } + + if (editingIndex >= 0) { + const updatedBanners = bannerData.map((banner, index) => index === editingIndex ? newBanner : banner) + updateSectionData('BannerSectionForm', updatedBanners) + setEditingIndex(-1) + message.success('Banner updated!') + } else { + updateSectionData('BannerSectionForm', [...bannerData, newBanner]) + message.success('Banner added!') + } + + closeModal() + } + + + + const handleDelete = (index) => { + const updatedBanners = bannerData.filter((_, i) => i !== index) + updateSectionData('BannerSectionForm', updatedBanners) + message.success('Banner deleted') + } + + const handleEdit = (index) => { + const banner = bannerData[index] + setTitle(banner.title) + setDescription(banner.description) + setEditingIndex(index) + openModal() + } + + const handleToggleActive = (index) => { + const updated = [...bannerData] + updated[index].active = !updated[index].active + updateSectionData('BannerSectionForm', updated) + message.success('Status updated') + } + + return ( +
+ {/* Header Section */} +
+
+ {/*
+ 🏷️ +
*/} +
+

Banner Management

+

Manage and organize your banner content and settings.

+
+
+ +
+ + {/* Tab Navigation */} +
+
+ + +
+
+
+ +
+
+ + +
+
+
+ + {/* Content Area */} + {bannerData.length > 0 ? ( +
+
+ {bannerData.map((banner, index) => ( +
+
+

{banner.title}

+
+ + handleDelete(index)} + okText="Yes" + cancelText="No" + > + + + +
+
+
+

Description: {banner.description || 'No description'}

+

Created: {banner.date || banner.createdAt}

+

+ Status: {banner.active ? 'Active' : 'Inactive'} +

+
+
+ ))} +
+
+ ) : ( +
+
+ 🏷️ +
+

No Banners Found

+

Get started by creating your first banner

+
+ )} + + {/* Modal */} + = 0 ? 'Edit Banner' : 'Create New Banner'} + handleCancel={closeModal} + handleSubmit={handleSave} + buttonText={editingIndex >= 0 ? 'Update Banner' : 'Add Banner'} + width={700} + destroyOnClose={true} + > +
+
+ + { + setTitle(e.target.value) + if (titleError) setTitleError('') + }} + placeholder='Enter banner title' + className={titleError ? 'error' : ''} + autoFocus + /> + {titleError && {titleError}} +
+ +
+ + +
+ `; + + const input = wrapper.querySelector('.header-input'); + const select = wrapper.querySelector('.header-level'); + const hint = wrapper.querySelector('.seo-hint'); + + const autoResize = () => { + input.style.height = 'auto'; + input.style.height = (input.scrollHeight || 47) + 'px'; + }; + + const updateStyle = () => { + const level = parseInt(select.value); + const fontSize = level === 1 ? '32px' : level === 2 ? '24px' : level === 3 ? '18px' : '16px'; + input.style.fontSize = fontSize; + autoResize(); + + // SEO hints + const hints = { + 1: '⚠️ Use only one H1 per page', + 2: '✅ Great for main sections', + 3: '📝 Perfect for subsections', + 4: '📄 For minor headings' + }; + hint.textContent = hints[level] || ''; + }; + + select.addEventListener('change', updateStyle); + input.addEventListener('input', autoResize); + updateStyle(); + autoResize(); + + this.wrapper = wrapper; + return wrapper; + } + + save(blockContent) { + const input = blockContent.querySelector('.header-input'); + const select = blockContent.querySelector('.header-level'); + + return { + text: input.value, + level: parseInt(select.value) + }; + } + + static get sanitize() { + return { + text: {}, + level: false + }; + } +} \ No newline at end of file diff --git a/src/editor/tools/Bookmark.jsx b/src/editor/tools/Bookmark.jsx new file mode 100644 index 0000000..cc96e59 --- /dev/null +++ b/src/editor/tools/Bookmark.jsx @@ -0,0 +1,287 @@ +import axios from "axios"; +import CryptoJS from "crypto-js"; +import { getSession } from "../../Services/others"; // your session util + +const mainDirectory = import.meta.env.ENV_MAIN_BASE_URL +const commonAPIUrl = import.meta.env.ENV_API_URL + +export default class Bookmark { + constructor({ data } = {}) { + this.data = data || {}; + this.wrapper = null; + } + + /** Fetch SEO data for external URLs */ + async fetchSEOData(url) { + try { + const proxyUrl = `https://api.codetabs.com/v1/proxy?quest=${encodeURIComponent(url)}`; + const response = await fetch(proxyUrl); + const html = await response.text(); + + const parser = new DOMParser(); + const doc = parser.parseFromString(html, "text/html"); + + const title = + doc.querySelector('meta[property="og:title"]')?.content || + doc.querySelector('meta[name="twitter:title"]')?.content || + doc.querySelector("title")?.textContent || + new URL(url).hostname; + + const description = + doc.querySelector('meta[property="og:description"]')?.content || + doc.querySelector('meta[name="twitter:description"]')?.content || + doc.querySelector('meta[name="description"]')?.content || + `Visit ${new URL(url).hostname}`; + + const image = + doc.querySelector('meta[property="og:image"]')?.content || + doc.querySelector('meta[name="twitter:image"]')?.content || + ""; + + return { title: title.trim(), description: description.trim(), image, url }; + } catch (error) { + const hostname = new URL(url).hostname; + return { + title: hostname.replace("www.", "").split(".")[0].toUpperCase(), + description: `Visit ${hostname}`, + image: `https://www.google.com/s2/favicons?domain=${hostname}&sz=64`, + url, + }; + } + } + + static get toolbox() { + return { + title: "Bookmark", + icon: '', + description: "Create link previews with title, description and image", + }; + } + + async loadPublishedBlogs(blogSelect) { + try { + const auth = sessionStorage?.getItem('auth'); + const mobileNo = getSession("MobileNo"); + + const response = await axios.get(`${commonAPIUrl}/Blog?request.published=Y`, { + headers: { + Authorization: auth, + MobileNo: mobileNo, + }, + }); + + const blogs = response?.data?.data || []; + blogSelect.innerHTML = ``; + blogs.forEach((blog) => { + + const option = document.createElement("option"); + option.value = `${mainDirectory}/home/blog/${blog?.Slug}` || "#"; + option.dataset.title = blog?.BlogTitle || "Untitled"; + option.dataset.desc = blog?.BlogSubtitle || "No description"; + option.textContent = `📝 ${blog?.BlogTitle}`; + blogSelect.appendChild(option); + }); + + } catch (error) { + console.error("Error fetching blogs:", error); + blogSelect.innerHTML = ``; + } + } + + render() { + const hasData = this.data.title && this.data.url; + + const w = document.createElement("div"); + + if (hasData) { + w.innerHTML = ` + `; + + const card = w.querySelector(".link-preview-card"); + card.onclick = () => window.open(this.data.url, "_blank"); + } else { + w.innerHTML = ` +
+
+
+ + +
+ +
+ +
+ + + + +
+
`; + + const urlInput = w.querySelector(".b-url"); + const previewCard = w.querySelector(".preview-card"); + const tabExternal = w.querySelector(".tab-external"); + const tabInternal = w.querySelector(".tab-internal"); + const externalForm = w.querySelector(".external-form"); + const internalForm = w.querySelector(".internal-form"); + const blogSelect = w.querySelector(".blog-select"); + + this.loadPublishedBlogs(blogSelect); + + // Tab switching + tabExternal.addEventListener("click", () => { + tabExternal.style.background = "#3b82f6"; + tabExternal.style.color = "white"; + tabInternal.style.background = "white"; + tabInternal.style.color = "#64748b"; + externalForm.style.display = "block"; + internalForm.style.display = "none"; + previewCard.style.display = "none"; + }); + + tabInternal.addEventListener("click", () => { + tabInternal.style.background = "#3b82f6"; + tabInternal.style.color = "white"; + tabExternal.style.background = "white"; + tabExternal.style.color = "#64748b"; + externalForm.style.display = "none"; + internalForm.style.display = "block"; + previewCard.style.display = "none"; + }); + + // Blog post selection + blogSelect.addEventListener("change", async (e) => { + const selectedOption = e.target.selectedOptions[0]; + if (!selectedOption.value) return; + + const url = selectedOption.value; + + const previewCard = w.querySelector(".preview-card"); + const titleEl = w.querySelector(".preview-title"); + const descEl = w.querySelector(".preview-desc"); + const urlEl = w.querySelector(".preview-url"); + const imgEl = w.querySelector(".preview-img"); + const placeholder = w.querySelector(".img-placeholder"); + + previewCard.style.display = "flex"; + titleEl.textContent = "Loading SEO data..."; + descEl.textContent = "Please wait..."; + urlEl.textContent = new URL(url).hostname; + + try { + // 🧠 Fetch SEO metadata manually + const seoData = await this.fetchSEOData(url); + + titleEl.textContent = seoData.title; + descEl.textContent = seoData.description; + urlEl.textContent = new URL(url).hostname; + + if (seoData.image) { + imgEl.src = seoData.image; + imgEl.style.display = "block"; + placeholder.style.display = "none"; + } else { + imgEl.style.display = "none"; + placeholder.style.display = "flex"; + } + + // Allow user to open the URL + previewCard.onclick = () => window.open(url, "_blank"); + } catch (err) { + console.error("SEO fetch failed:", err); + titleEl.textContent = selectedOption.dataset.title || "Unknown Title"; + descEl.textContent = selectedOption.dataset.desc || "No description available"; + imgEl.style.display = "none"; + placeholder.style.display = "flex"; + } + }); + + // External link SEO fetching + let debounceTimer; + urlInput.addEventListener("input", (e) => { + const url = e.target.value.trim(); + clearTimeout(debounceTimer); + + if (url && url.match(/^https?:\/\/.+/)) { + const hostname = new URL(url).hostname; + + previewCard.style.display = "flex"; + w.querySelector(".preview-title").textContent = "Loading..."; + w.querySelector(".preview-desc").textContent = "Fetching SEO data..."; + w.querySelector(".preview-url").textContent = hostname; + + debounceTimer = setTimeout(async () => { + try { + const seoData = await this.fetchSEOData(url); + + w.querySelector(".preview-title").textContent = seoData.title; + w.querySelector(".preview-desc").textContent = seoData.description; + w.querySelector(".preview-url").textContent = hostname; + + const img = w.querySelector(".preview-img"); + const placeholder = w.querySelector(".img-placeholder"); + + if (seoData.image) { + img.src = seoData.image; + img.style.display = "block"; + placeholder.style.display = "none"; + } + + previewCard.onclick = () => window.open(url, "_blank"); + } catch { + w.querySelector(".preview-title").textContent = "Failed to load SEO data"; + w.querySelector(".preview-desc").textContent = `Visit ${hostname}`; + } + }, 1500); + } else { + previewCard.style.display = "none"; + } + }); + } + + this.wrapper = w; + return w; + } + + save(el) { + const urlInput = el.querySelector(".b-url"); + const titleEl = el.querySelector(".preview-title"); + const descEl = el.querySelector(".preview-desc"); + const imgEl = el.querySelector(".preview-img"); + + return { + url: urlInput ? urlInput.value : this.data.url || "", + title: titleEl ? titleEl.textContent : this.data.title || "", + description: descEl ? descEl.textContent : this.data.description || "", + image: imgEl ? imgEl.src : this.data.image || "", + }; + } +} diff --git a/src/editor/tools/CTA.js b/src/editor/tools/CTA.js new file mode 100644 index 0000000..393b2a1 --- /dev/null +++ b/src/editor/tools/CTA.js @@ -0,0 +1,32 @@ +export default class CTA { + constructor({ data } = {}) { this.data = data || {}; this.wrapper = null; } + static get toolbox() { return { title: "Call to action", icon: '' }; } + render() { + const w = document.createElement("div"); + w.className = "editor-cta"; + w.innerHTML = ` +
+ + +
+ + + +
+
`; + this.wrapper = w; return w; + } + save(el) { + return { + heading: (el.querySelector(".e-cta-heading") || {}).value || "", + subheading: (el.querySelector(".e-cta-subheading") || {}).value || "", + buttonText: (el.querySelector(".e-cta-btntext") || {}).value || "", + buttonUrl: (el.querySelector(".e-cta-btnurl") || {}).value || "", + style: (el.querySelector(".e-cta-style") || {}).value || "primary" + }; + } + validate(d) { return (d.heading && d.buttonText && d.buttonUrl); } +} \ No newline at end of file diff --git a/src/editor/tools/Callout.js b/src/editor/tools/Callout.js new file mode 100644 index 0000000..9ee726c --- /dev/null +++ b/src/editor/tools/Callout.js @@ -0,0 +1,21 @@ +export default class Callout { + constructor({ data } = {}) { this.data = data || {}; this.wrapper = null; } + static get toolbox() { return { title: "Callout", icon: '' }; } + render() { + const w = document.createElement("div"); + w.innerHTML = ` +
+
+ + +
+
`; + this.wrapper = w; return w; + } + save(el) { + return { + emoji: (el.querySelector(".e-call-emoji") || {}).value || "💡", + text: (el.querySelector(".e-call-text") || {}).value || "" + }; + } +} diff --git a/src/editor/tools/EmailContent.js b/src/editor/tools/EmailContent.js new file mode 100644 index 0000000..56a0312 --- /dev/null +++ b/src/editor/tools/EmailContent.js @@ -0,0 +1,19 @@ +export default class EmailContent { + constructor({ data } = {}) { this.data = data || {}; this.wrapper = null; } + static get toolbox() { return { title: "Email content", icon: '' }; } + render() { + const w = document.createElement("div"); + w.innerHTML = ` +
+ + +
`; + this.wrapper = w; return w; + } + save(el) { + return { + subject: (el.querySelector(".e-email-subject") || {}).value || "", + bodyHtml: (el.querySelector(".e-email-body") || {}).value || "" + }; + } +} \ No newline at end of file diff --git a/src/editor/tools/InlineLink.js b/src/editor/tools/InlineLink.js new file mode 100644 index 0000000..1d6c652 --- /dev/null +++ b/src/editor/tools/InlineLink.js @@ -0,0 +1,87 @@ +export default class InlineLink { + static get isInline() { + return true; + } + + static get shortcut() { + return 'CMD+SHIFT+L'; + } + + static get sanitize() { + return { + a: { + href: true, + target: '_blank', + rel: 'noopener noreferrer' + } + }; + } + + constructor({ api }) { + this.api = api; + this.button = null; + this.state = false; + } + + render() { + this.button = document.createElement('button'); + this.button.type = 'button'; + this.button.innerHTML = ''; + this.button.classList.add('ce-inline-tool'); + + return this.button; + } + + surround(range) { + if (this.state) { + this.unwrap(range); + return; + } + + this.wrap(range); + } + + wrap(range) { + const selectedText = range.extractContents(); + const url = prompt('Enter URL:', 'https://'); + + if (url && url !== 'https://') { + const link = document.createElement('a'); + link.href = url; + link.target = '_blank'; + link.rel = 'noopener noreferrer'; + link.appendChild(selectedText); + + range.insertNode(link); + + this.api.selection.expandToTag(link); + } else { + range.insertNode(selectedText); + } + } + + unwrap(range) { + const link = this.api.selection.findParentTag('A'); + const text = range.extractContents(); + + link.remove(); + range.insertNode(text); + } + + checkState() { + const link = this.api.selection.findParentTag('A'); + this.state = !!link; + + if (this.state) { + this.button.classList.add('ce-inline-tool--active'); + } else { + this.button.classList.remove('ce-inline-tool--active'); + } + + return this.state; + } + + static get title() { + return 'Link'; + } +} \ No newline at end of file diff --git a/src/editor/tools/Separator.js b/src/editor/tools/Separator.js new file mode 100644 index 0000000..08f90bf --- /dev/null +++ b/src/editor/tools/Separator.js @@ -0,0 +1,60 @@ +export default class Separator { + constructor({ data } = {}) { + this.data = data || {}; + } + + static get toolbox() { + return { title: "Separator", icon: '' }; + } + + render() { + const wrapper = document.createElement("div"); + wrapper.innerHTML = ` +
+ +
+ ${this.getPreview(this.data.style || 'line')} +
+
+ `; + + const select = wrapper.querySelector('.separator-style'); + const preview = wrapper.querySelector('.separator-preview'); + + select.addEventListener('change', (e) => { + preview.innerHTML = this.getPreview(e.target.value); + }); + + return wrapper; + } + + getPreview(style) { + switch (style) { + case 'dots': + return '
• • •
'; + case 'stars': + return '
★ ★ ★
'; + case 'space': + return '
'; + case 'line': + default: + return '
'; + } + } + + save(blockContent) { + const select = blockContent.querySelector('.separator-style'); + return { + style: select ? select.value : 'line' + }; + } + + static get isReadOnlySupported() { + return true; + } +} \ No newline at end of file diff --git a/src/editor/tools/SimpleLink.js b/src/editor/tools/SimpleLink.js new file mode 100644 index 0000000..f8d3334 --- /dev/null +++ b/src/editor/tools/SimpleLink.js @@ -0,0 +1,71 @@ +export default class SimpleLink { + constructor({ data } = {}) { + this.data = data || {}; + } + + static get toolbox() { + return { title: 'Link', icon: '' }; + } + + render() { + const wrapper = document.createElement('div'); + wrapper.innerHTML = ` +
+ + +
+ +
+ +
+ `; + + const textInput = wrapper.querySelector('.link-text'); + const urlInput = wrapper.querySelector('.link-url'); + const targetInput = wrapper.querySelector('.link-target'); + const preview = wrapper.querySelector('.preview-text'); + + const updatePreview = () => { + const text = textInput.value || 'Link text'; + const url = urlInput.value || '#'; + preview.innerHTML = `${text}`; + }; + + textInput.addEventListener('input', updatePreview); + urlInput.addEventListener('input', updatePreview); + updatePreview(); + + return wrapper; + } + + save(blockContent) { + const textInput = blockContent.querySelector('.link-text'); + const urlInput = blockContent.querySelector('.link-url'); + const targetInput = blockContent.querySelector('.link-target'); + + return { + text: textInput.value, + url: urlInput.value, + target: targetInput.checked ? '_blank' : '_self' + }; + } + + validate(data) { + return data.text && data.url; + } +} \ No newline at end of file diff --git a/src/editor/tools/TableOfContents.js b/src/editor/tools/TableOfContents.js new file mode 100644 index 0000000..7ae3c89 --- /dev/null +++ b/src/editor/tools/TableOfContents.js @@ -0,0 +1,83 @@ +export default class TableOfContents { + constructor({ data, api } = {}) { + this.data = data || {}; + this.api = api; + this.wrapper = null; + } + + static get toolbox() { + return { title: "Index", icon: '' }; + } + + render() { + const w = document.createElement("div"); + w.innerHTML = ` +
+
+
+ 📑 Table of Contents + +
+ +
+ ${this.generatePreview()} +
+
+
`; + + const generateBtn = w.querySelector('.i-generate'); + generateBtn.addEventListener('click', () => { + this.generateFromContent(); + }); + + this.wrapper = w; + return w; + } + + generatePreview() { + if (!this.data.items || this.data.items.length === 0) { + return 'Click Generate to create index from bookmarks and headings'; + } + + const style = this.data.style || 'numbered'; + const listItems = this.data.items.map((item, i) => { + const prefix = style === 'numbered' ? `${i + 1}. ` : '• '; + return `
${prefix}${item.title}
`; + }).join(''); + + return listItems; + } + + generateFromContent() { + if (!this.api) return; + + const blocks = this.api.blocks.getBlocksCount(); + const items = []; + + for (let i = 0; i < blocks; i++) { + const block = this.api.blocks.getBlockByIndex(i); + const blockData = block.save(); + + if (blockData.tool === 'header' && blockData.data.text) { + const anchor = blockData.data.text.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); + items.push({ title: blockData.data.text, anchor }); + } else if (blockData.tool === 'bookmark' && blockData.data.title && blockData.data.anchor) { + items.push({ title: blockData.data.title, anchor: blockData.data.anchor }); + } + } + + this.data.items = items; + const preview = this.wrapper.querySelector('.i-preview'); + preview.innerHTML = this.generatePreview(); + } + + save(el) { + return { + style: (el.querySelector(".i-style") || {}).value || "numbered", + items: this.data.items || [] + }; + } +} \ No newline at end of file diff --git a/src/editor/tools/Video.js b/src/editor/tools/Video.js new file mode 100644 index 0000000..179d995 --- /dev/null +++ b/src/editor/tools/Video.js @@ -0,0 +1,40 @@ +export default class Video { + constructor({ data } = {}) { + this.data = data || {}; + this.wrapper = null; + } + + static get toolbox() { + return { title: "Video", icon: '' }; + } + + render() { + const w = document.createElement("div"); + w.innerHTML = ` +
+
+ + +
+ + +
+
+
`; + this.wrapper = w; + return w; + } + + save(el) { + return { + url: (el.querySelector(".v-url") || {}).value || "", + caption: (el.querySelector(".v-caption") || {}).value || "", + autoplay: (el.querySelector(".v-autoplay") || {}).checked || false, + controls: (el.querySelector(".v-controls") || {}).checked !== false + }; + } +} \ No newline at end of file diff --git a/src/editor/tools/index.js b/src/editor/tools/index.js new file mode 100644 index 0000000..c40dd5c --- /dev/null +++ b/src/editor/tools/index.js @@ -0,0 +1,9 @@ +export { default as Callout } from './Callout.js'; +export { default as CTA } from './CTA.js'; +export { default as EmailContent } from './EmailContent.js'; +export { default as Separator } from './Separator.js'; +export { default as BetterHeader } from './BetterHeader.js'; +export { default as SimpleLink } from './SimpleLink.js'; +export { default as Bookmark } from './Bookmark.jsx'; +export { default as Video } from './Video.js'; +export { default as TableOfContents } from './TableOfContents.js'; \ No newline at end of file diff --git a/src/features/ActivationKeyGeneration/ActivationkeyGeneration.js b/src/features/ActivationKeyGeneration/ActivationkeyGeneration.js new file mode 100644 index 0000000..255c6ee --- /dev/null +++ b/src/features/ActivationKeyGeneration/ActivationkeyGeneration.js @@ -0,0 +1,51 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getActiveAppCompanyData = createAsyncThunk('appAccess/getActiveAppCompanyData', async (AppId) => { + + return await axiosInstanceData.get(`/appAccess?AppId=${AppId?.AppId}`) + +}); + +export const getActiveBranchData = createAsyncThunk('appAccess/getActiveBranchData', async ({AppId,CompId}) => { + + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}&CompId=${CompId}`) + +}); + +export const getAppCompanyDataUsers = createAsyncThunk('appAccess/getAppCompanyData', async ({AppId,CompId,BranchId}) => { + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}&CompId=${CompId}&BranchId=${BranchId}`) + +}); + +//---changes Due To All Users Needed Including the Admin + +export const getBranchBasedUsers = createAsyncThunk('appAccess/getAppCompanyData', async ({Type,BranchId}) => { + return await axiosInstanceData.get(`/login?Type=${Type}&BranchId=${BranchId}`) + +}); + +export const ActivationKeyGenerationpost = createAsyncThunk('ActivationKeyGeneration', async (PostData) => { + return await axiosInstanceData.post(`/UserKeyGeneration`,PostData) +}); + +export const getActivationKeyGeneration = createAsyncThunk('getActivationKeyGeneration', async () => { + return await axiosInstanceData.get(`/UserKeyGeneration`) +}); + +export const getConfigNames = createAsyncThunk('configMaster/getConfigNames', async ({TypeName}) => { + if(TypeName != null && TypeName != undefined){ + return await axiosInstanceData.get(`/configMaster?TypeName=${TypeName}`); + } +}) + +export const ActivationKeyGenerationput = createAsyncThunk('ActivationKeyGenerationput',async(Putdata) =>{ + return await axiosInstanceData.put(`/UserKeyGeneration`,Putdata) +}) + +export const ActivationKeyGenerationdelete = createAsyncThunk('ActivationKeyGenerationdelete',async(Deletedata) =>{ + return await axiosInstanceData.delete(`/UserKeyGeneration?UniqueId=${Deletedata?.UniqueId}&ActiveStatus=${Deletedata?.ActiveStatus}&Reason=${Deletedata.Reason}&updatedBy=${Deletedata.updatedBy}`) +}) \ 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..ef1e714 --- /dev/null +++ b/src/features/AdminPanel/AdminPanel.js @@ -0,0 +1,42 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData, axiosRetailInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const postAdminPanel = createAsyncThunk('adminPanel/postAdminPanel', async (data) => { + return await axiosInstanceData.post(`/HomePage`, data) +}) + +export const putAdminPanel = createAsyncThunk('adminPanel/putAdminPanel', async (data) => { + return await axiosInstanceData.put(`/HomePage`, data) +}) + +export const getAdminPanel = createAsyncThunk('adminPanel/getAdminPanel', async ({ sectionName }) => { + if (sectionName !== null && sectionName !== undefined) { + return await axiosInstanceData.get(`/HomePage?SectionName=${sectionName}`) + } +}) + +// const initialState = { +// 'breadCrumb': [] +// } + +// const centerPageSlice = createSlice({ +// name: 'centerPage', +// initialState, +// reducers: { +// changeBreadCrumb: (state, action) => { +// const { items } = action?.payload +// state.breadCrumb = items +// }, +// emptyBreadCrumb: (state, action) => { +// state.breadCrumb = [] +// } +// } +// }) + +// export const { changeBreadCrumb, emptyBreadCrumb } = centerPageSlice.actions; + +// export const breadCrumbSelector = state => state.centerPage?.breadCrumb; + +// export default centerPageSlice.reducer; \ No newline at end of file diff --git a/src/features/ApplicationPreferenceMapping/applicationPreference.js b/src/features/ApplicationPreferenceMapping/applicationPreference.js new file mode 100644 index 0000000..2a3abb3 --- /dev/null +++ b/src/features/ApplicationPreferenceMapping/applicationPreference.js @@ -0,0 +1,19 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import { axiosInstanceData } from "../AuthenticationTokens/AuthenticationToken"; + +export const postapplicationPrefernce = createAsyncThunk( + "applicationPrefernce/postapplicationPrefernce", + async (postData) => { + return await axiosInstanceData.post( + `/ApplicationPreferenceMapping`, + postData + ); + } +); +export const getapplicationPrefernce = createAsyncThunk( + "applicationPrefernce/postapplicationPrefernce", + async () => { + return await axiosInstanceData.get(`/ApplicationPreferenceMapping`); + } +); diff --git a/src/features/AuthenticationTokens/AuthenticationToken.js b/src/features/AuthenticationTokens/AuthenticationToken.js new file mode 100644 index 0000000..1dba8f4 --- /dev/null +++ b/src/features/AuthenticationTokens/AuthenticationToken.js @@ -0,0 +1,169 @@ +import axios from "axios"; +import { getSession, clearSession, TokendecryptedValuesFun } from "../../Services/others"; + +const apiUrl = import.meta.env.ENV_API_URL; +const ApiUrlRetail = import.meta.env.ENV_API_URL_RETAIL; + + +const subDirectory = import.meta.env.BASE_URL; +const EmailApiUrl = import.meta.env.ENV_EMAIL_API; + + + +const axiosInstance = axios.create({ + baseURL: apiUrl, +}); + +const axiosRetailInstance = axios.create({ + baseURL: ApiUrlRetail, +}); + + +const axiosInstanceEMAIL_SMS = axios.create({ + baseURL: EmailApiUrl, +}); + +const getToken = () => { + return new Promise((resolve) => { + let token = sessionStorage.getItem("auth"); + + if (token) { + resolve(token); + } else { + const tokenInterval = setInterval(() => { + token = sessionStorage.getItem("auth"); + if (token) { + clearInterval(tokenInterval); + resolve(token); + } + }, 100); + } + }); +}; + +const addAuthHeader = async (config) => { + + const token = await getToken(); + + if (token) { + config.headers["Authorization"] = `Bearer ${token}`; + } + + let encryptedMobileno = sessionStorage.getItem("MobileNo"); + let encryptedSessionId = sessionStorage.getItem("SessionId"); + + + let Mobileno = encryptedSessionId + ? TokendecryptedValuesFun(encryptedMobileno) + : "1000000001"; + + + config.headers["Mobileno"] = Mobileno != null && Mobileno != undefined ? Mobileno : "1000000001"; + console.log("addAuthHeader", config) + return config; +}; + +axiosInstance.interceptors.request.use(addAuthHeader, (error) => { + return Promise.reject(error); +}); +axiosInstanceEMAIL_SMS.interceptors.request.use(addAuthHeader, (error) => { + return Promise.reject(error); +}); +axiosRetailInstance.interceptors.request.use(addAuthHeader, (error) => { + console.error('Error in request interceptor:', error); + return Promise.reject(error); +}); +function showNotification(message) { + const notification = document.createElement('div'); + notification.innerText = message; + notification.style.cssText = ` + position: fixed; + top: 10%; + left: 50%; + transform: translate(-50%, -50%); + background-color: #f03e3e; + color: white; + padding: 15px 30px; + border-radius: 8px; + font-family: Arial, sans-serif; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + z-index: 1000; + opacity: 0; + transition: opacity 0.3s ease; + `; + + document.body.appendChild(notification); + + // Show the notification + setTimeout(() => { + notification.style.opacity = 1; + }, 10); + + // Remove the notification after 3 seconds + setTimeout(() => { + notification.style.opacity = 0; + setTimeout(() => notification.remove(), 300); + }, 2000); +} +const responseErrorHandler = async (error) => { + if ((error.response && error.response.status === 401)) { + showNotification("Your session has expired. Please log in again to continue."); + + setTimeout(() => { + if (getSession('UserId')) { + const Generate = "N"; + fetch(`${apiUrl}/Logout`, { + method: "PUT", + headers: { + "Content-Type": "application/json", + "Authorization": sessionStorage.getItem("auth") ? sessionStorage.getItem("auth") : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", + "Mobileno": getSession('MobileNo') ? getSession('MobileNo') : "1000000001", + }, + body: JSON.stringify({ "UserId": getSession('UserId'), "Generate": Generate, "RequestMode":"DW" }), + }) + .then((response) => { + if (!response.ok) { + throw new Error(`Error: ${response.status}`); + } + return response.json(); + }) + .then((data) => { + if (data?.statusCode === 1) { + clearSession(); + window.location.href = `${subDirectory}`; + } + }) + .catch((error) => { + console.error("Error:", error); + }); + } + // else { + // clearSession(); + // window.location.href = `${subDirectory}`; + // } + }, 2000); + + } + // else { + // alert("An error occurred. Please try again later."); + // } + return Promise.reject(error); +}; + +axiosInstance.interceptors.response.use( + (response) => response, // On success, just return the response + responseErrorHandler // Handle errors +); +axiosInstanceEMAIL_SMS.interceptors.response.use( + (response) => response, // On success, just return the response + responseErrorHandler // Handle errors +); + +axiosRetailInstance.interceptors.response.use( + (response) => response, // On success, just return the response + responseErrorHandler // Handle errors +); + +export const axiosRetailInstanceData = axiosRetailInstance; +export const axiosInstanceData = axiosInstance; +export const axiosInstanceEMAIL_SMSData = axiosInstanceEMAIL_SMS; diff --git a/src/features/Blog/Blog.js b/src/features/Blog/Blog.js new file mode 100644 index 0000000..a23f402 --- /dev/null +++ b/src/features/Blog/Blog.js @@ -0,0 +1,50 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData } from "../AuthenticationTokens/AuthenticationToken"; +import axios from "axios"; +const apiUrl = import.meta.env.ENV_API_URL; +const uploadApiUrl = import.meta.env.ENV_IMAGE_UPLOAD_API_URL; +const axiosInstance = axios.create({ + baseURL: apiUrl, + headers: { + "Content-Type": "application/json", + }, +}); +export const postBlog = createAsyncThunk("blog/postBlog", async (data) => { + return await axiosInstanceData.post("/Blog", data); +}); + +export const putBlog = createAsyncThunk("blog/putBlog", async (data) => { + return await axiosInstanceData.put("/Blog", data); +}); + +export const deleteBlog = createAsyncThunk("blog/deleteBlog", async (data) => { + return await axiosInstanceData.delete( + `/Blog?blogId=${data?.blogId}&activeStatus=${data?.activeStatus + }&updatedBy=${data?.updatedBy || 1}` + ); +}); + +export const getBlog = createAsyncThunk("blog/getBlog", async () => { + return await axiosInstanceData.get("/Blog"); +}); + +export const getPublishedBlogs = createAsyncThunk( + "blog/getPublishedBlogs", + async () => { + return await axiosInstance.get("/Blog?published=Y"); + } +); + +export const getPublishedBlogsBySlug = createAsyncThunk( + "blog/getPublishedBlogs", + async ({ slug }) => { + return await axiosInstance.get(`/Blog?slug=${slug}`); + } +); + +export const postComments = createAsyncThunk( + "blog/postComments", + async (data) => { + return await axiosInstance.post(`/Comments`, data); + } +); diff --git a/src/features/DeviceAppName/Appversion.js b/src/features/DeviceAppName/Appversion.js new file mode 100644 index 0000000..0c84b95 --- /dev/null +++ b/src/features/DeviceAppName/Appversion.js @@ -0,0 +1,34 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getConfigDeviceNames = createAsyncThunk('AppVersion/getConfigNames', async () => { + + return await axiosInstanceData.get(`/configMaster?TypeName=Device App Name`); +}) + + +export const postDeviceVersion = createAsyncThunk('AppVersion/postDeviceVersion', async (postData) => { + + return await axiosInstanceData.post(`/AppVersions`, postData) +}) + + + +export const getDeviceVersion = createAsyncThunk('AppVersion/getDeviceVersion', async () => { + + return await axiosInstanceData.get(`/AppVersions?activeStatus=A`); +}) + + +export const getDeviceVersionManagement = createAsyncThunk('AppVersion/getDeviceVersionManagement', async (values) => { + + return await axiosInstanceData.get(`/AppVersionManagement?appId=${values?.appId}&compId=${values?.compId}&branchId=${values?.branchId}&appType=${values?.appType}`); +}) + +export const AppVersionManagementPost = createAsyncThunk('AppVersion/AppVersionManagementPost', async (putData) => { + + return await axiosInstanceData.put(`/AppVersionManagement`, putData) +}) + + + diff --git a/src/features/EmpRelieve/EmpRelieve.js b/src/features/EmpRelieve/EmpRelieve.js new file mode 100644 index 0000000..912aae4 --- /dev/null +++ b/src/features/EmpRelieve/EmpRelieve.js @@ -0,0 +1,26 @@ +import { createAsyncThunk } from '@reduxjs/toolkit'; +import { axiosRetailInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +export const getEmpRelieve = createAsyncThunk('Emp/getEmpRelieve', async ({CompId,UserId,AppId,BranchId}) => { + if (CompId != null && CompId != undefined && UserId != null && UserId != undefined && AppId != null && AppId != undefined && BranchId != null && BranchId != undefined) { + return await axiosRetailInstanceData.get(`/EmployeeRelieveInfo?appId=${AppId}&compId=${CompId}&branchId=${BranchId}&userId=${UserId}`); + } + } +); + +export const deleteEmpRelieve = createAsyncThunk('Emp/getEmpRelieve', async ({uniqueId,updatedBy,activeStatus}) => { + if (uniqueId != null && uniqueId != undefined && updatedBy != null && updatedBy != undefined && activeStatus != null && activeStatus != undefined ) { + return await axiosRetailInstanceData.delete(`/EmployeeRelieveInfo?uniqueId=${uniqueId}&updatedBy=${updatedBy}&activeStatus=${activeStatus}`); + } + } +); + +export const postEmpRelieve = createAsyncThunk('Emp/postEmpRelieve', async (postData) => { + return await axiosRetailInstanceData.post(`/EmployeeRelieveInfo`,postData); + } +); + +export const putEmpRelieve = createAsyncThunk('Emp/putEmpRelieve', async (putData) => { + return await axiosRetailInstanceData.put(`/EmployeeRelieveInfo`,putData); + } +); \ No newline at end of file diff --git a/src/features/LoyaltySettings/Loyaltysetting.js b/src/features/LoyaltySettings/Loyaltysetting.js new file mode 100644 index 0000000..be96e7a --- /dev/null +++ b/src/features/LoyaltySettings/Loyaltysetting.js @@ -0,0 +1,47 @@ +import axios from "axios"; +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getLoyaltyname = createAsyncThunk('Loyaltynamepost/LoyaltySettings',async() => { + return await axiosInstanceData.get('/LoyaltySettings',) +}) + +export const Loyaltynamepost = createAsyncThunk('Loyaltynamepost/LoyaltySettings',async(Postdata) => { + return await axiosInstanceData.post('/LoyaltySettings',Postdata) +}) + +export const Loyaltynameput = createAsyncThunk('Loyaltynamepost/LoyaltySettings',async(Postdata) => { + return await axiosInstanceData.put('/LoyaltySettings',Postdata) +}) + +export const delLoyaltyname = createAsyncThunk('Loyaltynamepost/LoyaltySettings',async(Deletedata) => { + return await axiosInstanceData.delete('/LoyaltySettings',{ params: Deletedata }) +}) + +export const getEmployeerefferal = createAsyncThunk('Employeerefferalpost',async()=>{ + return await axiosInstanceData.get('RefAppCommissions',) +}) + +export const Employeerefferalpost = createAsyncThunk('Employeerefferalpost',async(postData)=>{ + return await axiosInstanceData.post('RefAppCommissions',postData) +}) + +export const Employeerefferalput = createAsyncThunk('Employeerefferalpost',async(Postdata)=>{ + return await axiosInstanceData.put('RefAppCommissions',Postdata) +}) + +export const delEmployeerefferal = createAsyncThunk('Loyaltynamepost/LoyaltySettings',async(Deletedata) => { + return await axiosInstanceData.delete('/RefAppCommissions',{ params: Deletedata }) +}); + +export const RefferedEmployeeList = createAsyncThunk('RefPayments/RefferedEmployeeList',async()=>{ +return await axiosInstanceData.get('/RefPayments/UserList') +}); + +export const getPricingType = createAsyncThunk('getPricingType/getPricingType', async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Payment Type&ActiveStatus=A') +}); + +export const ReferredEmployePayPost = createAsyncThunk('ReferredEmployePayPost',async(PostData)=>{ + return await axiosInstanceData.post('RefPayments',PostData) +}); \ No newline at end of file diff --git a/src/features/LoyaltySettings/sss.js b/src/features/LoyaltySettings/sss.js new file mode 100644 index 0000000..dc36881 --- /dev/null +++ b/src/features/LoyaltySettings/sss.js @@ -0,0 +1,70 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { axiosInstanceData, axiosInstanceEMAIL_SMSData } from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getPricingType = createAsyncThunk('getPricingType/getPricingType', async (PricingId) => { + if (PricingId != null && PricingId != undefined) { + return await axiosInstanceData.get(`/pricingType?PricingId=${PricingId}`); + } +}); + +export const postInvoice = createAsyncThunk('postInvoice/userAppMap', async (postData) => { + + return await axiosInstanceData.post('/userAppMap', postData) +}) + + +export const postCCAvenuePaymentDetails = createAsyncThunk('postCCAvenuePaymentDetails/payment', async (postData) => { + + return await axiosInstanceData.post('/ccavenuePaymentDetails', postData) +}) + +export const getccavenuePaymentDetails = createAsyncThunk('getccavenuePaymentDetails', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails?activeStatus=A') +}) + +export const getPaymentMethod = createAsyncThunk('getPaymentMethod/getPaymentMethod', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails'); +}); +// +export const getallplanDtl = createAsyncThunk('getallplanDtl', async (data) => { + if (data?.AppId != null && data?.AppId != undefined && data?.UserId != null && data?.UserId != undefined) { + return await axiosInstanceData.get(`/AllDetailPlanMod?AppId=${data?.AppId}&UserId=${data?.UserId}`); + } +}); + +export const postDowngrade = createAsyncThunk('postDowngrade', async (postData) => { + + return await axiosInstanceData.post('/ModifySubcription', postData) +}) +export const putFeaturechange = createAsyncThunk('putFeaturechange', async (postData) => { + +return await axiosInstanceData.put('/ModifySubcription', postData) +}) + +export const getUsedplandata = createAsyncThunk('getUsedplandata', async (data) => { + if (data.AppId != null && data.AppId != undefined && data.UserId != null && data.UserId != undefined && data.type != null && data.type != undefined) { + return await axiosInstanceData.get(`/UserAppMap?AppId=${data.AppId}&UserId=${data.UserId}&type=${data.type}`) + } +}) + +export const putPaymentMethod = createAsyncThunk('putPaymentMethod/putPaymentMethod', async (putData) => { + return await axiosInstanceData.put('/PaymentSuccess', putData); +}); +export const postEmailApi = createAsyncThunk('postEmailApi/Email', async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post(`/Email`, postData) +}) +export const getEmployeRefferal = createAsyncThunk('getEmployeRefferal',async(data)=>{ + if (data.AppId != null && data.AppId != undefined && data.UserId != null && data.UserId != undefined && data.Type != null && data.Type != undefined) { + + return await axiosInstanceData.get(`/UserAppMap?AppID=${data.AppId}&UserId=${data.UserId}&Type=${data.Type}`) + + } +}) + + +export const getReferaluserdata = createAsyncThunk('getReferaluserdata',async(data)=>{ +return await axiosInstanceData.get(`/User?referralCode=${data.referralCode}`) +}) \ No newline at end of file diff --git a/src/features/MessageTemplates/MessageTemplate.js b/src/features/MessageTemplates/MessageTemplate.js new file mode 100644 index 0000000..3096460 --- /dev/null +++ b/src/features/MessageTemplates/MessageTemplate.js @@ -0,0 +1,44 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getMessagetemplateData = createAsyncThunk('messagetemplates/getBranchData', async () => { + return await axiosInstanceData.get('/messagetemplates') +}) + +export const postMessageTemplates = createAsyncThunk('messagetemplates/postMessageTemplates', async (postData) => { + + return await axiosInstanceData.post('/messagetemplates', postData) +}) + +export const putMessageTemplates = createAsyncThunk('messagetemplates/putMessageTemplates', async (putData) => { + + return await axiosInstanceData.put('/messagetemplates', putData) +}) + +const initialState = { + MessagetemplateData: [] +} + +const messagetemplateSlice = createSlice({ + name:'messagetemplate', + initialState, + extraReducers: builder => { + builder.addCase(getMessagetemplateData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.MessagetemplateData = action?.payload?.data?.data + } + else { + state.MessagetemplateData = [] + } + + }) + + } + +}) + +export const messagetemplateSelector = state => state.MessageTemplate?.MessagetemplateData +export default messagetemplateSlice.reducer; + diff --git a/src/features/ModuleAccess/moduleAccessApiSlice.js b/src/features/ModuleAccess/moduleAccessApiSlice.js new file mode 100644 index 0000000..f0ecff3 --- /dev/null +++ b/src/features/ModuleAccess/moduleAccessApiSlice.js @@ -0,0 +1,63 @@ +import { createEntityAdapter, createSelector } from "@reduxjs/toolkit"; +import { apiSlice } from '../api/apiSlice'; + +const moduleAccessDataAdapter = createEntityAdapter({ + sortComparer: (a,b) => b?.CreatedDate?.localeCompare(a?.CreatedDate) +}) + +const initialState = moduleAccessDataAdapter.getInitialState() + +const moduleAccessApi = apiSlice.injectEndpoints({ + + endpoints: (builder) => ({ + getStoreData: builder.query({ + query: () => '/company?ActiveStatus=A', + transformResponse: responseData => { + const data = responseData.data?.map((eachData, index) => { + eachData.id = index + return eachData + }) + // let data = [...responseData.data, {"hi": 'hello', CreatedDate: '2022-04-13T23:02:19.248Z'}] + return moduleAccessDataAdapter.setAll(initialState, data) + } + }), + getBranchData: builder.query({ + query: ( storeId ) => `/getBranchMaster?StoreId=${storeId}`, + transformResponse: responseData => { + const result = responseData.data?.map((eachBranch, index) => { + eachBranch.id = index + return eachBranch + }) + + return moduleAccessDataAdapter.setAll(initialState, result) + } + }) + }) + +}) + +export const { useGetStoreDataQuery, useGetBranchDataQuery } = moduleAccessApi; + +const getStoreDataResult = moduleAccessApi.endpoints.getStoreData.select() + +const getStoreDataSelector = createSelector(getStoreDataResult , storeData => storeData.data) + +export const { selectAll: storeDataSelector } = moduleAccessDataAdapter.getSelectors(state => getStoreDataSelector(state) ?? initialState) + +const getBranchDataResult = moduleAccessApi.endpoints.getBranchData.select() + +const getBranchDataSelector = createSelector(getBranchDataResult, branchData => branchData.data) + +export const { selectAll: branchDataSelector, selectEntities: branchDataSelectorData } = moduleAccessDataAdapter.getSelectors(state => getBranchDataSelector(state) ?? initialState) + +// export const selectModuleAccessData = state => { +// const adapterSelectors = moduleAccessDataAdapter.getSelectors(); +// return adapterSelectors.selectAll(state); +// } + + + + + + + diff --git a/src/features/ModuleAccess/moduleAccessSlice.js b/src/features/ModuleAccess/moduleAccessSlice.js new file mode 100644 index 0000000..43312dd --- /dev/null +++ b/src/features/ModuleAccess/moduleAccessSlice.js @@ -0,0 +1,713 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; +import { getSession } from "../../Services/others"; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +const initialState = { + selectedRole: getSession("UserType") === 'Admin' ? "Branch Admin" : "Sadmin", + selectedStore: null, + selectedAppName: null, + selectedBranch: null, + selectedApp: null, + selectedUser: null, + selectedEmpdesig: null, + allModules: [], + branchData: [], + appData: [], + userData: [], + AdminData: [], + EmpDesigData: [], + selectedUserData: {}, + selectedModuleBranch: [], + UserId: null, + AppAccess: {}, + CompAccess: {}, + BranchAccess: {}, + AppListData: {}, + CmpListData: {}, + BranchListData: {}, + PostDataValue: [], + // UserCount:null, + // FeatUserCount:null +}; + +export const getBranchDropModule = createAsyncThunk( + "moduleAccess/getBranchDropModule", + async ({ storeId }) => { + if (storeId != null && storeId != undefined) { + return await axiosInstanceData.get(`/branch?CompId=${storeId}`); + } + } +); + +export const getSadminUser = createAsyncThunk( + "moduleAccess/getSadminUser", + async () => { + return await axiosInstanceData.get('/login?Type=Super Admin User'); + } +); + +export const getStoreAdmin = createAsyncThunk( + "moduleAccess/getStoreAdmin", + async ({ storeId }) => { + if (storeId != null && storeId != undefined) { + return await axios.get(`${apiUrl}/company?UserId=${storeId}`); + } + } +); + +export const gettingAdminDropDown = createAsyncThunk( + "moduleAccess/gettingAdminDropDown", + async () => { + return await axiosInstanceData.get('/user?UserType=A'); + } +); + +export const getBranchAdmin = createAsyncThunk( + "moduleAccess/getBranchUser", + async ({ BranchId }) => { + if (BranchId != null && BranchId != undefined) { + return await axiosInstanceData.get(`/login?BranchId=${BranchId}&Type=E`); + } + } +); + +export const getAllModule = createAsyncThunk( + "moduleAccess/getAllModule", + async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Sub Module'); + // return await axios.get(`${config}/getModuleMaster`) + } +); + +export const getAllModuleActive = createAsyncThunk( + "moduleAccess/getAllModule", + async (AdminId) => { + if (AdminId != null && AdminId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${AdminId}&Type=A`); + } else { + return await axiosInstanceData.get( + '/configMaster?ActiveStatus=A&TypeName=Sub Module' + ); + } + // return await axios.get(`${config}/getModuleMaster?ActiveStatus=A`) + } +); + +export const getUserCount = createAsyncThunk( + "moduleAccess/getUserCount", + async ({ AppId, UserId }) => { + if (AppId != null && AppId != undefined && UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}&AppId=${AppId}`) + } + } +); + +export const getUserData = createAsyncThunk( + "moduleAccess/getUserData", + async ({ userId, BranchId }) => { + if (userId != null && userId != undefined && BranchId != null && BranchId != undefined) { + return await axiosInstanceData.get(`/login?UserId=${userId}&BranchId=${BranchId}`) + } else { + return await axiosInstanceData.get(`/login?UserId=${userId}`); + } + } +); + + +export const getAppDetails = createAsyncThunk( + "moduleAccess/getAppDetails", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&Type=AD`); + } + } +); + +export const getCompDetails = createAsyncThunk( + "moduleAccess/getCompDetails", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}`); + } + } +); + +export const getUserAppDetails = createAsyncThunk( + "moduleAccess/getUserAppDetails", + async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}`); + } + } +); + +export const postGateWayMaster = createAsyncThunk( + "moduleAccess/postGateWayMaster", + async (data) => { + if (data) { + return await axiosInstanceData.post(`/GatewayConfigMaster`, data); + } + } +); + +export const putGateWayMaster = createAsyncThunk( + "moduleAccess/putGateWayMaster", + async (data) => { + if (data) { + return await axiosInstanceData.put(`/GatewayConfigMaster`, data); + } + } +); + +export const getGateWayConfigData = createAsyncThunk( + "moduleAccess/getGateWayConfigData", + async (data) => { + const { ServiceType } = data + if (ServiceType !== null || ServiceType !== undefined) { + return await axiosInstanceData.get(`/GatewayConfigMaster?ServiceType=${ServiceType}&Type=S`); + } + } +); + +export const getActiveUserAppDetails = createAsyncThunk( + "moduleAccess/getActiveUserAppDetails", + async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}&ActiveStatus=A`); + } + } +); + +export const getUserAppStoreDetails = createAsyncThunk( + "moduleAccess/getUserAppStoreDetails", + async ({ StoreId, UserId, AppId }) => { + if (StoreId != null && StoreId != undefined && UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}&CompId=${StoreId}`); + } + } +); + +export const getActiveUserAppStoreDetails = createAsyncThunk( + "moduleAccess/getActiveUserAppStoreDetails", + async ({ StoreId, UserId, AppId }) => { + if (StoreId != null && StoreId != undefined && UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}&CompId=${StoreId}&ActiveStatus=A`); + } + + } +); + +export const getCmpDetails = createAsyncThunk( + "moduleAccess/getCmpDetails", + async ({ AppId, UserId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}&UserId=${UserId}`); + } + else if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}`); + } + + } +); + +export const getDesigDetails = createAsyncThunk( + "moduleAccess/getDesigDetails", + async ({ AppName, CompId, BranchId }) => { + if (AppName != null && AppName != undefined && CompId != null && CompId != undefined && BranchId != null && BranchId != undefined) { + return await axiosInstanceData.get(`/designation?AppName=${AppName}&CompId=${CompId}&BranchId=${BranchId}`); + } + + } +); +export const getAppDesigDetails = createAsyncThunk( + "moduleAccess/getAppDesigDetails", + async ({ AppId }) => { + if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}`); + } + + } +); + +export const getDesigUserDetails = createAsyncThunk( + "moduleAccess/getDesigUserDetails", + async ({ AppName, EmpDesig, CompId, BranchId }) => { + if (AppName != null && AppName != undefined && EmpDesig != null && EmpDesig != undefined && CompId != null && CompId != undefined && BranchId != null && BranchId != undefined) { + return await axiosInstanceData.get(`/designation?AppName=${AppName}&EmpDesig=${EmpDesig}&CompId=${CompId}&BranchId=${BranchId}`); + } + + } +); + + + +export const getBranchDetails = createAsyncThunk( + "moduleAccess/getBranchDetails", + async ({ CompId, AppId, UserId }) => { + if (AppId != null && AppId != undefined && UserId != null && UserId != undefined && CompId != null && CompId != undefined) { + return await axiosInstanceData.get(`/appAccess?CompId=${CompId}&AppId=${AppId}&UserId=${UserId}`); + } else if (AppId != null && AppId != undefined && CompId != null && CompId != undefined) { + return await axiosInstanceData.get(`/appAccess?CompId=${CompId}&AppId=${AppId}`); + } + } +); + + + +export const getBranchBasedOnStoreAndType = createAsyncThunk( + "moduleAccess/getBranchBasedOnStoreAndType", + async ({ storeId, BranchType, UserId }) => { + if (BranchType != null && BranchType != undefined && UserId != null && UserId != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}&UserId=${UserId}`); + } + else if (BranchType != null && BranchType != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}`); + + } + } +); + +export const getBranchBasedOnStoreAndTypeSadmin = createAsyncThunk( + "moduleAccess/getBranchBasedOnStoreAndType", + async ({ BranchType, UserId, Type, BranchId }) => { + if (UserId != null && UserId != undefined && BranchType != null && BranchType != undefined && Type != null && Type != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}&UserId=${UserId}&Type=${Type}` + ); + } + + else if (UserId != null && UserId != undefined && BranchType != null && BranchType != undefined && BranchId != null && BranchId != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}&UserId=${UserId}&BranchId=${BranchId}` + ); + } + else if (UserId != null && UserId != undefined && BranchType != null && BranchType != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}&UserId=${UserId}` + ); + } + else { + return await axios.get(`${apiUrl}/application?SubId=${BranchType}`); + } + } +); + +export const postModuleRights = createAsyncThunk( + "moduleAccess/postModuleRights", + async (postData) => { + + return await axiosInstanceData.post('/appAccess', postData); + } +); +export const postBranchModuleRights = createAsyncThunk( + "moduleAccess/postBranchModuleRights", + async (postData) => { + + return await axiosInstanceData.post('/appAccessBranch', postData); + } +); +export const deleteModuleRights = createAsyncThunk('moduleAccess/deleteModuleRights', async (deleteData) => { + + return await axiosInstanceData.delete('/appAccess', { params: deleteData }) +}) +export const deleteBranchModuleRights = createAsyncThunk('moduleAccess/deleteBranchModuleRights', async (deleteData) => { + + return await axiosInstanceData.delete('/appAccessBranch', { params: deleteData }) +}) + +export const getstoreData = createAsyncThunk( + "moduleAccess/getstoreData", + async (storeId) => { + if (storeId != null && storeId != undefined) { + return await axios.get(`${apiUrl}/company?UserId=${storeId}`); + } + } +); + + + +// export const + +const moduleAccess = createSlice({ + name: "moduleAccess", + initialState, + reducers: { + changeRole: (state, action) => { + const { id } = action?.payload; + state.selectedRole = id; + state.UserId = null; + state.selectedUser = null; + state.AppListData = {}; + state.CmpListData = {}; + state.BranchListData = {}; + }, + changeIntialRole: (state, action) => { + state.selectedRole = getSession("UserType") === 'Admin' ? "Branch Admin" : "Sadmin"; + }, + AddAppList: (state, action) => { + const { AppList } = action?.payload; + state.AppListData = AppList; + }, + + changeUserId: (state, action) => { + state.UserId = action?.payload; + }, + + changeAppAccess: (state, action) => { + state.AppAccess = action?.payload; + }, + + changePostData: (state, action) => { + state.PostDataValue = action?.payload; + }, + + changeCompAccess: (state, action) => { + state.CompAccess = action?.payload; + }, + changeBranchAccess: (state, action) => { + state.BranchAccess = action?.payload; + }, + + changeStore: (state, action) => { + const { storeId } = action?.payload; + state.selectedStore = storeId; + }, + + changeAppName: (state, action) => { + const { AppName } = action?.payload; + state.selectedAppName = AppName; + }, + + changeBranch: (state, action) => { + const { BranchId } = action?.payload; + state.selectedBranch = BranchId; + }, + changeApp: (state, action) => { + const { AppId } = action?.payload; + state.selectedApp = AppId; + }, + changeUser: (state, action) => { + + const { userId } = action?.payload; + state.selectedUser = userId; + }, + + changeEmpDesig: (state, action) => { + const { EmpDesig } = action?.payload; + state.selectedEmpdesig = EmpDesig; + }, + + emptyUserData: (state, action) => { + state.userData = []; + state.EmpDesigData = []; + }, + emptySelectedModule: (state, action) => { + state.selectedModuleBranch = []; + }, + emptyDataList: (state, action) => { + state.AppListData = {}; + state.CmpListData = {}; + state.BranchListData = {}; + }, + emptySelectedModuleBranch: (state, action) => { + state.AppListData = {}; + state.CmpListData = {}; + state.BranchListData = {}; + state.allModules = []; + state.selectedModuleBranch = []; + + }, + emptyModuleBranch: (state, action) => { + state.AppListData = {}; + state.CmpListData = {}; + state.BranchListData = {}; + // state.allModules=[]; + state.selectedModuleBranch = []; + + }, + emptyPostData: (state, action) => { + state.selectedUser = null; + state.selectedApp = null; + state.selectedBranch = null; + state.selectedStore = null; + state.selectedAppName = null; + state.selectedEmpdesig = null; + state.UserId = null; + state.userData = []; + state.EmpDesigData = []; + state.selectedUserData = {}; + state.selectedModuleBranch = []; + state.AppListData = {}; + state.CmpListData = {} + state.BranchListData = {} + state.appData = []; + state.branchData = []; + state.AppAccess = {}; + state.CompAccess = {}; + state.BranchAccess = {}; + state.PostDataValue = []; + + }, + emptySelectedIds: (state, action) => { + state.selectedApp = null; + state.selectedBranch = null; + state.selectedStore = null; + state.selectedEmpdesig = null; + state.selectedUser = null; + state.UserId = null; + }, + getSelectedBranch: (state, action) => { + state.selectedModuleBranch = state.selectedUserData[0]?.ModuleDetails; + }, + updateModuleAccessByModuleTypeId: (state, action) => { + const { AppId } = action?.payload; + + state.selectedModuleBranch = state.selectedModuleBranch.filter( + (eachData) => parseInt(eachData.AppId) != parseInt(AppId) + ); + }, + addModuleAccess: (state, action) => { + state.selectedModuleBranch.push(action?.payload); + }, + updateModuleAccessByBranchId: (state, action) => { + const { BranchId } = action?.payload; + state.selectedModuleBranch = state.selectedModuleBranch.filter( + (eachData) => eachData.AppId != BranchId + ); + }, + removeAppList: (state, action) => { + const { subCat } = action?.payload; + state.AppListData[subCat]?.map((eachApp) => { + + state.CmpListData[eachApp.AppName]?.map((eachCompany) => { + delete state.BranchListData[`${eachApp?.AppName}-${eachCompany?.CompName}`] + }) + delete state.CmpListData[eachApp.AppName] + }) + delete state.AppListData[subCat] + + + + + }, + removeCmpList: (state, action) => { + const { AppName } = action?.payload; + state.CmpListData[AppName]?.map((eachComp) => { + delete state.BranchListData[`${AppName}-${eachComp?.CompName}`] + }) + delete state.CmpListData[AppName] + }, + removeBranchList: (state, action) => { + const { CompName } = action?.payload; + delete state.BranchListData[CompName] + }, + removeBranchAccess: (state, action) => { + const { branchAccessData } = action?.payload; + delete state.BranchAccess[branchAccessData] + }, + removeCompanyAccess: (state, action) => { + const { companyAccessData } = action?.payload; + delete state.CompAccess[companyAccessData] + }, + removeAppAccess: (state, action) => { + const { appAccessData } = action?.payload; + delete state.AppAccess[appAccessData] + }, + + removePostDataValue: (state, action) => { + const postDatas = action?.payload; + if (postDatas.CompId && postDatas.AppId) { + state.PostDataValue.map((deleteData, index) => { + + if (deleteData?.AppId == postDatas.AppId && deleteData?.CompId == postDatas.CompId) { + delete state.PostDataValue[index] + } + }) + + } + + else if (postDatas.AppId) { + state.PostDataValue.map((deleteData, index) => { + if (deleteData?.AppId == postDatas.AppId) { + delete state.PostDataValue[index] + } + }) + } + else if (postDatas.CompId && postDatas.BranchId) { + state.PostDataValue.map((deleteData, index) => { + if (deleteData?.BranchId == postDatas.BranchId && deleteData?.CompId == postDatas.CompId) { + delete state.PostDataValue[index] + } + }) + + } + } + // gettingAdmin : (state, action) => { + // state.AdminData = state.AdminData.filter((eachData) => eachData.ActiveStatus=='A') + // } + }, + extraReducers: (builder) => { + builder.addCase(getBranchDropModule.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.branchData = action?.payload?.data?.data; + } else { + state.branchData = []; + } + }); + + builder.addCase(getAppDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.appData = action?.payload?.data?.data; + } else { + state.appData = []; + } + }); + + builder.addCase(gettingAdminDropDown.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.AdminData = action?.payload?.data?.data; + } else { + state.AdminData = []; + } + }); + + builder.addCase(getDesigUserDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.EmpDesigData = action?.payload?.data?.data; + } else { + state.EmpDesigData = []; + } + }); + + builder.addCase(getSadminUser.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.userData = action?.payload?.data?.data; + } else { + state.userData = []; + } + }); + builder.addCase(getAllModuleActive.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.allModules = action?.payload?.data?.data; + } else { + state.allModules = []; + } + }); + builder.addCase(getStoreAdmin.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.userData = action?.payload?.data?.data; + } else { + state.userData = []; + } + }); + builder.addCase(getBranchAdmin.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.userData = action?.payload?.data?.data; + } else { + state.userData = []; + } + }); + builder.addCase(getUserData.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.selectedUserData = action?.payload?.data?.data; + state.selectedModuleBranch = action?.payload?.data?.data[0]?.ModuleDetails + ? action?.payload?.data?.data[0]?.ModuleDetails + : []; + // .filter( (eachData) => eachData.moduleAccess == 'Y') + } else { + state.selectedUserData = {}; + state.selectedModuleBranch = []; + } + }); + builder.addCase(getBranchBasedOnStoreAndType.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.AppListData[action?.payload?.data?.data[0]['SubCategoryName']] = action?.payload?.data?.data + } + }); + + builder.addCase(getCmpDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.CmpListData[action?.payload?.data?.data[0]['AppName']] = action?.payload?.data?.data + } + }); + + builder.addCase(getBranchDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.BranchListData[`${action?.payload?.data?.data[0]['AppName']}-${action?.payload?.data?.data[0]['CompName']}`] = action?.payload?.data?.data + } + }); + + + + }, +}); + +export const { + changeRole, + changeAppName, + changeStore, + changeBranch, + changeApp, + changeUser, + changeEmpDesig, + emptyUserData, + emptySelectedModule, + emptyPostData, + changeIntialRole, + emptySelectedModuleBranch, + emptyModuleBranch, + emptyDataList, + emptySelectedIds, + updateModuleAccessByModuleTypeId, + addModuleAccess, + updateModuleAccessByBranchId, + changeUserId, + changeAppAccess, + changePostData, + changeCompAccess, + changeBranchAccess, + AddAppList, + removeAppList, + removeCmpList, + removeBranchList, + removePostDataValue, + removeBranchAccess, + removeCompanyAccess, + removeAppAccess, +} = moduleAccess.actions; + + +export const selectRoleSelector = (state) => state.moduleAccess?.selectedRole; +export const selectedStoreSelector = (state) => + state.moduleAccess?.selectedStore; +export const selectedAppNameSelector = (state) => + state.moduleAccess?.selectedAppName; +export const selectedEmpDesigSelector = (state) => + state.moduleAccess?.selectedEmpdesig; +export const selectedBranchIdSelector = (state) => + state.moduleAccess?.selectedBranch; +export const selectedAppIdSelector = (state) => + state.moduleAccess?.selectedApp; +export const selectedUserSelector = (state) => state.moduleAccess?.selectedUser; +export const selectBranchData = (state) => state.moduleAccess?.branchData; +export const selectAppData = (state) => state.moduleAccess?.appData; +export const userDataSelector = (state) => state.moduleAccess?.userData; +export const allModuleSelector = (state) => state.moduleAccess?.allModules; +export const selectedUserDataSelector = (state) => + state.moduleAccess?.selectedUserData; +export const selectedModuleBranchSelector = (state) => + state.moduleAccess?.selectedModuleBranch; +export const gettingAdminSelector = (state) => state.moduleAccess?.AdminData; +export const gettingEmpDesigSelector = (state) => state.moduleAccess?.EmpDesigData; +export const gettingUserId = (state) => state.moduleAccess?.UserId; +export const gettingAppAccess = (state) => state.moduleAccess?.AppAccess; +export const gettingCompAccess = (state) => state.moduleAccess?.CompAccess; +export const gettingBranchAccess = (state) => state.moduleAccess?.BranchAccess; +export const gettingAppListSelector = (state) => state.moduleAccess?.AppListData; +export const gettingCmpListSelector = (state) => state.moduleAccess?.CmpListData; +export const gettingBranchListSelector = (state) => state.moduleAccess?.BranchListData; +export const gettingPostDataValue = (state) => state.moduleAccess?.PostDataValue; +// export const gettingUserCount = (state) => state.moduleAccess?.UserCount; +// export const gettingFeatUserCount = (state) => state.moduleAccess?.FeatUserCount; + +export default moduleAccess.reducer; diff --git a/src/features/Navbar/Navbar.js b/src/features/Navbar/Navbar.js new file mode 100644 index 0000000..ed27c8a --- /dev/null +++ b/src/features/Navbar/Navbar.js @@ -0,0 +1,35 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getNavListData = createAsyncThunk('navbar/getNavlist', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=Navbar') +}) + + +const initialState = { + Navlist: [] +} + +const getNavListDataSlice = createSlice({ + name:'Navlist', + initialState, + extraReducers: builder => { + builder.addCase(getMessagetemplateData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.MessagetemplateData = action?.payload?.data?.data + } + else { + state.MessagetemplateData = [] + } + + }) + + } + +}) + +export const NavlistSelector = state => state.Navlist?.Navlist +export default getNavListDataSlice.reducer; + diff --git a/src/features/PaymentPdfPageCommon/paymentPdfPageCommon.jsx b/src/features/PaymentPdfPageCommon/paymentPdfPageCommon.jsx new file mode 100644 index 0000000..a69d32b --- /dev/null +++ b/src/features/PaymentPdfPageCommon/paymentPdfPageCommon.jsx @@ -0,0 +1,37 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getUserMappDetails = createAsyncThunk('getUserMappDetails/getUserMappDetails', async (BookingId) => { + if(BookingId !=null && BookingId !=undefined){ + return await axiosInstanceData.get(`/userAppMap?UniqueId=${BookingId}`); + } + }); + + +const initialState = { + UserMappDetails: [] +} + +const UserMappDetailsSlice = createSlice({ + name:'getUserMappDetails', + initialState, + extraReducers: builder => { + builder.addCase(getUserMappDetails.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.priceData = action?.payload?.data?.data + } + else { + state.UserMappDetails = [] + } + + }) + } + +}) + +export const UserMappDetailsSelector = state => state.UserMappDetails?.UserMappDetails + + + + +export default UserMappDetailsSlice.reducer; \ No newline at end of file diff --git a/src/features/SEO/seo.js b/src/features/SEO/seo.js new file mode 100644 index 0000000..e487db3 --- /dev/null +++ b/src/features/SEO/seo.js @@ -0,0 +1,59 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; +const uploadApiUrl = import.meta.env.ENV_IMAGE_UPLOAD_API_URL; + +export const postSeo = createAsyncThunk('Seo/postSeo', async (data) => { + return await axiosInstanceData.post('/Seo', data) +}) + +export const putSeo = createAsyncThunk('Seo/putSeo', async (data) => { + return await axiosInstanceData.put('/Seo', data) +}) + +export const getSeo = createAsyncThunk('Seo/getSeo', async ({ PageId }) => { + return await axiosInstanceData.get(`/Seo?pageId=${PageId}`) +}) + +export const getSeoByTitle = createAsyncThunk('Seo/getSeoByTitle', async ({ MetaTitle }) => { + return await axiosInstanceData.get(`/Seo?metaTitle=${MetaTitle}`) +}) + +export const getAllSeo = createAsyncThunk('Seo/getAllSeo', async () => { + return await axiosInstanceData.get(`/Seo`) +}) + +const initialState = { + seoData: [], + loading: false, + error: null +} + +const seoSlice = createSlice({ + name: 'seo', + initialState, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(getSeo.pending, (state) => { + state.loading = true; + }) + .addCase(getSeo.fulfilled, (state, action) => { + state.loading = false; + state.seoData = action.payload?.data?.data || []; + }) + .addCase(getSeo.rejected, (state, action) => { + state.loading = false; + state.error = action.error.message; + }) + .addCase(postSeo.fulfilled, (state, action) => { + state.loading = false; + }) + .addCase(putSeo.fulfilled, (state, action) => { + state.loading = false; + }); + } +}) + +export default seoSlice.reducer; diff --git a/src/features/SmsCountAssigned/smsCountassign.js b/src/features/SmsCountAssigned/smsCountassign.js new file mode 100644 index 0000000..30141b6 --- /dev/null +++ b/src/features/SmsCountAssigned/smsCountassign.js @@ -0,0 +1,23 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + + +export const getSMSCount = createAsyncThunk('SMSCount/getSMSCount', async () => { + return await axiosInstanceData.get(`/SMSAssign`) +}) + + +export const postSMSCount = createAsyncThunk('SMSCount/postSMSCount', async (postData) => { + + return await axiosInstanceData.post(`/SMSAssign`, postData) +}) + +export const putSMSCount = createAsyncThunk('SMSCount/putSMSCount', async (putData) => { + + return await axiosInstanceData.put(`/SMSAssign`, putData) +}) + + diff --git a/src/features/api/apiSlice.js b/src/features/api/apiSlice.js new file mode 100644 index 0000000..b6c1bd3 --- /dev/null +++ b/src/features/api/apiSlice.js @@ -0,0 +1,11 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' + +const apiUrl = import.meta.env.ENV_API_URL + +export const apiSlice = createApi({ + baseQuery: fetchBaseQuery({baseUrl: apiUrl}), + tagTypes: ['Post', 'User'], + endpoints: builder => ({}) +}) + + diff --git a/src/features/appAccessPage/appAccessPage.js b/src/features/appAccessPage/appAccessPage.js new file mode 100644 index 0000000..d56c5ac --- /dev/null +++ b/src/features/appAccessPage/appAccessPage.js @@ -0,0 +1,106 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + + +export const getActiveAppCompanyData = createAsyncThunk('appAccess/getActiveAppCompanyData', async (AppAccessData) => { + if (AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&ActiveStatus=A`) + } + else if (AppAccessData?.AppId != null && AppAccessData?.AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}`) + } +}) + +export const getActiveAppBranchData = createAsyncThunk('appAccess/getActiveAppBranchData', async (AppAccessData) => { + if (AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined && AppAccessData?.CompId != null && AppAccessData?.CompId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&CompId=${AppAccessData?.CompId}&ActiveStatus=A`) + } +}) + +export const getCompanyData = createAsyncThunk('appAccess/getCompanyData', async ({ CompId }) => { + if (CompId != null && CompId != undefined) { + return await axios.get(`${apiUrl}/company?CompId=${CompId}`) + } +}) +export const getfeatconstrains = createAsyncThunk('getfeatconstrains', async (data) => { + if(data?.AppId != null && data?.AppId != undefined && data?.UserId != null && data?.UserId != undefined && data?.UniqueId != null && data?.UniqueId != undefined && data?.PricingId != null && data?.PricingId != undefined){ + return await axiosInstanceData.get(`/UserAppMap?AppId=${data?.AppId}&UserId=${data?.UserId}&UniqueId=${data?.UniqueId}&PricingId=${data?.PricingId}`); + } +}); + +export const getallplanDtl = createAsyncThunk('getallplanDtl', async (datas) => { + if(datas?.AppId != null && datas?.AppId != undefined && datas?.UserId != null && datas?.UserId != undefined){ + return await axiosInstanceData.get(`/AllDetailPlanMod?AppId=${datas?.AppId}&UserId=${datas?.UserId}`); + + } +}); + +export const postDowngrade = createAsyncThunk('postDowngrade', async (postData) => { + return await axiosInstanceData.post(`/ModifySubcription`, postData) +}) + +export const putFeaturechange = createAsyncThunk('putFeaturechange', async (putData) => { + return await axiosInstanceData.put(`/ModifySubcription`, putData) +}) +export const getAppCompanyData = createAsyncThunk('appAccess/getAppCompanyData', async (AppAccessData) => { +if(AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined && AppAccessData?.CompId != undefined && AppAccessData?.CompId != null&& AppAccessData?.BrId != null ) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&CompId=${AppAccessData?.CompId}&BrId=${AppAccessData?.BrId} `) +} +else if(AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined && AppAccessData?.CompId != undefined && AppAccessData?.CompId != null) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&CompId=${AppAccessData?.CompId}`) +} +else if (AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined && AppAccessData?.Type !=null) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&Type=A`) + } +else if ( AppAccessData?.UserId != null && AppAccessData?.UserId != undefined ) { + return await axiosInstanceData.get(`/appAccess?userId=${AppAccessData?.UserId}`) +} +}) +export const getAppCompanyDataUsers = createAsyncThunk('appAccess/getAppCompanyData', async (AppAccessData) => { + if(AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined && AppAccessData?.CompId != undefined && AppAccessData?.CompId != null&& AppAccessData?.BrId != null ) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&CompId=${AppAccessData?.CompId}&BranchId=${AppAccessData?.BrId}`) + +} + +}) +const initialState = { + appCompanyData: [], + appBranchData: [], +} + +const appAccessSlice = createSlice({ + name: 'appAccess', + initialState, + extraReducers: builder => { + builder.addCase(getActiveAppCompanyData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.appCompanyData = action?.payload?.data?.data + } + else { + state.appCompanyData = [] + } + + }) + builder.addCase(getActiveAppBranchData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.appBranchData = action?.payload?.data?.data + } + else { + state.appBranchData = [] + } + + }) + + + } + +}) + + +export const appCompanyDataSelector = state => state.appAccessPage?.appCompanyData +export const appBranchDataSelector = state => state.appAccessPage?.appBranchData + +export default appAccessSlice.reducer; \ No newline at end of file diff --git a/src/features/appMenu/appMenu.js b/src/features/appMenu/appMenu.js new file mode 100644 index 0000000..e7b318f --- /dev/null +++ b/src/features/appMenu/appMenu.js @@ -0,0 +1,93 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + + +export const getAppMenu = createAsyncThunk('appMenu/getAppMenu', async (AppId) => { + if(AppId != null && AppId != undefined){ + return await axiosInstanceData.get(`/appMenu?AppId=${AppId}`) + } +}) + +export const getLevelOneMenu = createAsyncThunk('appMenu/getLevelOneMenu', async ({AppId,Level}) => { + if(AppId != null && AppId != undefined && Level != null && Level != undefined){ + return await axiosInstanceData.get(`/appMenu?AppId=${AppId}&Level=${Level}`) + } +}) + +export const getLevelTwoMenu = createAsyncThunk('appMenu/getLevelTwoMenu', async ({AppId,Level,Level1Id}) => { + if(AppId != null && AppId != undefined && Level != null && Level != undefined && Level1Id != null && Level1Id != undefined){ + return await axiosInstanceData.get(`/appMenu?AppId=${AppId}&Level=${Level}&Level1Id=${Level1Id}`) + } +}) + +export const getLevelThreeMenu = createAsyncThunk('appMenu/getLevelThreeMenu', async ({AppId,Level,Level1Id,Level2Id}) => { + if(AppId != null && AppId != undefined && Level != null && Level != undefined && Level1Id != null && Level1Id != undefined && Level2Id != null && Level2Id != undefined){ + return await axiosInstanceData.get(`/appMenu?AppId=${AppId}&Level=${Level}&Level1Id=${Level1Id}&Level2Id=${Level2Id}`) + } +}) + +export const getAppMenuList = createAsyncThunk('appMenu/getAppMenuList', async () => { + return await axiosInstanceData.get(`/appMenu`) +}) + +export const getApplication = createAsyncThunk('appMenu/application', async () => { + return await axios.get(`${apiUrl}/application`) +}) + +export const postAppMenu = createAsyncThunk('appMenu/postCompanyData', async (postData) => { + + return await axiosInstanceData.post(`/appMenu`, postData) +}) + +export const putAppMenu= createAsyncThunk('appMenu/putCompanyData', async (putData) => { + + return await axiosInstanceData.put(`/appMenu`, putData) +}) + +export const deleteAppMenu = createAsyncThunk('appMenu/deleteCompanyData', async (deleteData) => { + if(deleteData?.MenuId && deleteData?.ActiveStatus && deleteData?.UpdatedBy){ + return await axiosInstanceData.delete(`/appMenu?MenuId=${deleteData?.MenuId}&ActiveStatus=${deleteData?.ActiveStatus}&UpdatedBy=${deleteData?.UpdatedBy}`) + } +}) + + +const initialState = { + appData: [], + appListData:[], +} + +const appMenuSlice = createSlice({ + name:'appMenu', + initialState, + extraReducers: builder => { + builder.addCase(getAppMenu.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.appData = action?.payload?.data?.data + } + else { + state.appData = [] + } + + }) + builder.addCase(getAppMenuList.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.appListData = action?.payload?.data?.data + } + else { + state.appListData = [] + } + + }) + } + +}) + +export const appDataSelector = state => state.appData?.appData +export const appMenuListDataSelector = state => state.appListData?.appListData + + + +export default appMenuSlice.reducer; \ No newline at end of file diff --git a/src/features/appMenuAccess/appMenuAccess.js b/src/features/appMenuAccess/appMenuAccess.js new file mode 100644 index 0000000..355f69c --- /dev/null +++ b/src/features/appMenuAccess/appMenuAccess.js @@ -0,0 +1,47 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + +export const getSadminUser = createAsyncThunk( + "appMenuAccess/getSadminUser", + async () => { + return await axiosInstanceData.get('/login?Type=Super Admin User'); + } +); + +export const getApplications = createAsyncThunk( + "appMenuAccess/getApplications", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}`); + } + } +); + +export const getMenu = createAsyncThunk( + "appMenuAccess/getMenu", + async ({ AppId }) => { + if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appMenu?AppId=${AppId}`); + } + } +); + +export const getPreviousMenu = createAsyncThunk( + "appMenuAccess/getPreviousMenu", + async ({ AppId, UserId }) => { + if (AppId != null && AppId != undefined && UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/AppMenuAccess?AppId=${AppId}&UserId=${UserId}`); + } + } +); + +export const postAppMenuAccess = createAsyncThunk('appMenuAccess/postAppMenuAccess', async (postData) => { + + return await axiosInstanceData.post(`/AppMenuAccess`, postData) +}) + +export const putAppMenuAccess = createAsyncThunk('appMenuAccess/putAppMenuAccess', async (putData) => { + + return await axiosInstanceData.put(`/AppMenuAccess`, putData) +}) diff --git a/src/features/appPage/centerPage.js b/src/features/appPage/centerPage.js new file mode 100644 index 0000000..e945bb9 --- /dev/null +++ b/src/features/appPage/centerPage.js @@ -0,0 +1,34 @@ +import { createSlice } from '@reduxjs/toolkit'; + + +const initialState = { + 'breadCrumb': [] +} + +const centerPageSlice = createSlice({ + name:'centerPage', + initialState, + reducers: { + changeBreadCrumb: (state, action) => { + const { items } =action?.payload + state.breadCrumb = items + }, + emptyBreadCrumb:(state,action)=>{ + state.breadCrumb = [] + } + } +}) + +export const { changeBreadCrumb,emptyBreadCrumb } = centerPageSlice.actions; + +export const breadCrumbSelector = state => state.centerPage?.breadCrumb; + +export default centerPageSlice.reducer; + + + + + + + + diff --git a/src/features/applicationImagePage/applicationImagePage.js b/src/features/applicationImagePage/applicationImagePage.js new file mode 100644 index 0000000..8e18f5f --- /dev/null +++ b/src/features/applicationImagePage/applicationImagePage.js @@ -0,0 +1,49 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +const apiUrl = import.meta.env.ENV_API_URL; + +export const getApplicationImageData = createAsyncThunk('applicationImage/getApplicationImageData', async () => { + return await axiosInstanceData.get('/appImage') +}) + +export const postApplicationImageData = createAsyncThunk('applicationImage/postApplicationImageData', async (postData) => { + + return await axiosInstanceData.post('/appImage', postData) +}) + +export const putApplicationImageData = createAsyncThunk('applicationImage/putApplicationImageData', async (putData) => { + + return await axiosInstanceData.put('/appImage', putData) +}) + +export const deleteApplicationImageData = createAsyncThunk('applicationImage/deleteApplicationImageData', async (deleteData) => { + + return await axiosInstanceData.delete('/appImage', { params: deleteData }) +}) + +const initialState = { + applicationImageData: [] +} + +const applicationImageSlice = createSlice({ + name:'applicationImage', + initialState, + extraReducers: builder => { + builder.addCase(getApplicationImageData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.applicationImageData = action?.payload?.data?.data + } + else { + state.applicationImageData = [] + } + }) + } + +}) + +export const applicationImageDataSelector = state => state.applicationImagePage?.applicationImageData + + + +export default applicationImageSlice.reducer; \ No newline at end of file diff --git a/src/features/applicationPage/applicationPage.js b/src/features/applicationPage/applicationPage.js new file mode 100644 index 0000000..557f767 --- /dev/null +++ b/src/features/applicationPage/applicationPage.js @@ -0,0 +1,99 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getApplicationData = createAsyncThunk('application/getApplicationData', async () => { + return await axios.get(`${apiUrl}/application`) +}) + +export const getActiveApplicationData = createAsyncThunk('application/getActiveApplicationData', async () => { + return await axios.get(`${apiUrl}/application?ActiveStatus=A`) +}) + +export const postApplicationData = createAsyncThunk('application/postApplicationData', async (postData) => { + + return await axiosInstanceData.post('/application', postData) +}) + +export const putApplicationData = createAsyncThunk('application/putApplicationData', async (putData) => { + + return await axiosInstanceData.put('/application', putData) +}) + +export const deleteApplicationData = createAsyncThunk('application/deleteApplicationData', async (deleteData) => { + + return await axiosInstanceData.delete('/application', { params: deleteData }) +}) + +export const getCategoryData = createAsyncThunk('configMaster/getCategoryData', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=Module') +}) + +export const getSubCategoryData = createAsyncThunk('configMaster/getSubCategoryData', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=Sub Module') +}) +export const getMasterData = createAsyncThunk('configMaster/getSubCategoryData', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=Master Access') +}) + +const initialState = { + applicationData: [], + applicationActiveData: [], + categoryData:[], + subCategoryData:[] +} + +const applicationSlice = createSlice({ + name:'application', + initialState, + extraReducers: builder => { + builder.addCase(getApplicationData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.applicationData = action?.payload?.data?.data + } + else { + state.applicationData = [] + } + + }) + builder.addCase(getActiveApplicationData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.applicationActiveData = action?.payload?.data?.data + } + else { + state.applicationActiveData = [] + } + + }) + builder.addCase(getCategoryData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.categoryData = action?.payload?.data?.data + } + else { + state.categoryData = [] + } + + }) + builder.addCase(getSubCategoryData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.subCategoryData = action?.payload?.data?.data + } + else { + state.subCategoryData = [] + } + + }) + } + +}) + +export const applicationDataSelector = state => state.applicationPage?.applicationData +export const applicationActiveDataSelector = state => state.applicationPage?.applicationActiveData +export const categoryActiveDataSelector = state => state.applicationPage?.categoryData +export const subCategoryActiveDataSelector = state => state.applicationPage?.subCategoryData + + + +export default applicationSlice.reducer; \ No newline at end of file diff --git a/src/features/applications/applications.js b/src/features/applications/applications.js new file mode 100644 index 0000000..b0b8849 --- /dev/null +++ b/src/features/applications/applications.js @@ -0,0 +1,31 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + +const apiUrl = import.meta.env.ENV_API_URL + +export const getAllApplications = createAsyncThunk('application/getApplicationData', async({userId})=> { + if(userId != null && userId != undefined){ + return axios.get(`${apiUrl}/application?UserId=${userId}&Type=H`) + } +}) + +export const getUserData = createAsyncThunk('application/getApplicationData', async({userId})=> { + if(userId != null && userId != undefined){ + return axiosInstanceData.get(`/user?UserId=${userId}&ActiveStatus=A`) + } +}) + +const initialState = { + allApplications : [] +} + +const applicationSlice = createSlice({ + name: 'applications', + initialState, +}) + +export const allApplicationsSelector = state => state.applications? state.applications.allApplications: initialState.allApplications + +export default applicationSlice.reducer \ No newline at end of file diff --git a/src/features/applications/bannerImage.js b/src/features/applications/bannerImage.js new file mode 100644 index 0000000..8820bff --- /dev/null +++ b/src/features/applications/bannerImage.js @@ -0,0 +1,111 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; +const uploadApiUrl = import.meta.env.ENV_IMAGE_UPLOAD_API_URL; + +export const getBannerImage = createAsyncThunk('application/getBannerImage', async () => { + return await axios.get(`${apiUrl}/application?ActiveStatus=A`); +}); + +export const getApplication = createAsyncThunk('application/getApplication', async () => { + return await axios.get(`${apiUrl}/application?Type=A`); +}); +export const getApplicationPreferenceMapping = createAsyncThunk('application/getApplication', async () => { + return await axios.get(`${apiUrl}/application`); +}); +export const getApplicationCategory = createAsyncThunk('application/getApplicationCategory', async (CateId) => { + if (CateId != null && CateId != undefined) { + return await axios.get(`${apiUrl}/application?CateId=${CateId}`); + } +}); + +export const getApplicationSubCategory = createAsyncThunk('application/getApplicationSubCategory', async (SubId) => { + if (SubId != null && SubId != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${SubId}`); + } +}); + +export const onlineimages = createAsyncThunk('application/onlineimages', async (data) => { + if (data != null && data != undefined) { + return await axiosInstanceData.get(`/Image?Name=${data}`); + } +}) + +export const uploadImage = createAsyncThunk('upload/uploadImage', async (file) => { + let formdata = new FormData(); + formdata.append("file", file); + return await axiosInstanceData.post(`${uploadApiUrl}/upload`, formdata) +}) + + + +const initialState = { + BannerImage: [], + Applications: [], + ApplicationCategory: [], + ApplicationSubCategory: [], +} + +const BannerImageSlice = createSlice({ + name: 'bannerImage', + initialState, + extraReducers: builder => { + + builder.addCase(getBannerImage.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.BannerImage = action?.payload?.data; + + } + else { + state.BannerImage = null; + } + + }) + + builder.addCase(getApplication.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.Applications = action?.payload?.data; + + } + else { + state.Applications = null; + } + + }) + + builder.addCase(getApplicationCategory.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.ApplicationCategory = action?.payload?.data; + + } + else { + state.ApplicationCategory = null; + } + + }) + + builder.addCase(getApplicationSubCategory.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.ApplicationSubCategory = action?.payload?.data; + + } + else { + state.ApplicationSubCategory = null; + } + + }) + } + +}) + +export const BannerImageSelector = (state) => state.bannerImage?.BannerImage +export const ApplicationsSelector = (state) => state.bannerImage?.Applications +export const ApplicationCategorySelector = (state) => state.bannerImage?.ApplicationCategory +export const ApplicationSubCategorySelector = (state) => state.bannerImage?.ApplicationSubCategory + + + + +export default BannerImageSlice.reducer; \ No newline at end of file diff --git a/src/features/branchPage/branchPage.js b/src/features/branchPage/branchPage.js new file mode 100644 index 0000000..224f8fd --- /dev/null +++ b/src/features/branchPage/branchPage.js @@ -0,0 +1,272 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { getSession } from "../../Services/others"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + + +const UserType = getSession("UserType") +export const getBranchData = createAsyncThunk('branch/getBranchData', async () => { + return await axiosInstanceData.get('/branch') +}) +export const getBranchDataUsingCompId= createAsyncThunk('branch/getBranchData', async ({CompId,AppId}) => { + return await axiosInstanceData.get(`/branch?compId=${CompId}&appId=${AppId}`) +}) + +export const postBranchData = createAsyncThunk('branch/postBranchData', async (postData) => { + + return await axiosInstanceData.post('/branch', postData) +}) + +export const putBranchData = createAsyncThunk('branch/putBranchData', async (putData) => { + + return await axiosInstanceData.put('/branch', putData) +}) + +export const deleteBranchData = createAsyncThunk('branch/deleteBranchData', async (deleteData) => { + + return await axiosInstanceData.delete('/branch', { params: deleteData }) +}) + +export const getActiveBranchData = createAsyncThunk('branch/getActiveBranchData', async () => { + return await axiosInstanceData.get('/branch?ActiveStatus=A') +}) + +export const getActiveAdminData = createAsyncThunk('branch/getActiveAdminData', async () => { + return await axiosInstanceData.get('/user?UserType=A') +}) + +export const getAdminNames = createAsyncThunk('login/getAdminNames', async () => { + return await axiosInstanceData.get('/login?Type=Admin') +}) + +export const getBranchAdminUsers = createAsyncThunk('branch/getBranchAdminUsers', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/branch?UserId=${UserId}`) + } + +}) +export const getWarehouseUsers = createAsyncThunk('branch/getBranchAdminUsers', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/branch?UserId=${UserId}&Type=W`) + } + else { + return await axiosInstanceData.get(`/branch?Type=W`) + + } + +}) + +export const getBranchApplications = createAsyncThunk('userAppMap/getBranchApplications', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}`) + } + else { + return await axiosInstanceData.get('/userAppMap') + } +}) + +export const getApplicationCompany = createAsyncThunk('appAccess/getApplicationCompany', async (AppId) => { + if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppId}`) + } +}) + +export const getUserAppCompany = createAsyncThunk('appAccess/getUserAppCompany', async (getCompData) => { + if (getCompData.UserId != null && getCompData.UserId != undefined && getCompData.AppId != null && getCompData.AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${getCompData.UserId}&AppId=${getCompData.AppId}`) + } +}) +export const checkTrialBranch = createAsyncThunk('appAccess/checkTrialBranch', async (getCompData) => { + if (getCompData.UserId != null && getCompData.UserId != undefined && getCompData.AppId != null && getCompData.AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${getCompData.UserId}&AppId=${getCompData.AppId}&Type=T`) + } +}) + +export const getBranchDataBasedOnCompany = createAsyncThunk('branch/getCompanyDataBasedOnApp', async ({ UserId, AppId, CompId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined && CompId != null && CompId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}&CompId=${CompId}`) + } +}) +export const getCompanyDataBasedOnApp = createAsyncThunk('branch/getCompanyDataBasedOnApp', async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}`) + } +}) +export const getActiveAppData = createAsyncThunk('branch/getActiveAppData', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&Type=AD&ActiveStatus=A`) + } +}) +export const getActiveAdminDatauserapp = createAsyncThunk('branch/getActiveAdminData', async () => { + return await axiosInstanceData.get('/user?UserType=NA') +}) + +export const getUseridbasedbranchdata = createAsyncThunk('branch/getUseridbasedbranchdata', async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}`) + } +}); + +export const postWarehouseData = createAsyncThunk('wareHouse/postWarehouseData', async (data) => { + return await axiosInstanceData.post(`/warehouse`, data) +}); + +const initialState = { + branchData: [], + branchActiveData: [], + AdminNames: [], + BranchAdminUsers: [], + BranchApplicationNames: [], + ApplicationCompany: [], + UserAppCompany: [], + BranchCounts: [], + AppPreferences: [] +} + +const branchSlice = createSlice({ + name: 'branch', + initialState, + reducers: { + companyname: (state, action) => { + state.UserAppCompany = [] + }, + }, + extraReducers: builder => { + builder.addCase(getCommonAppPreference.fulfilled, (state, action) => { + if (action?.payload?.status === 200) { + const { data: result } = action?.payload; + if (result?.data?.length > 0) { + state.AppPreferences = result?.data; + } else { + state.AppPreferences = []; + } + } + }); + builder.addCase(getBranchData.fulfilled, (state, action) => { + + if (action?.payload?.status) { + state.branchData = action?.payload?.data?.data + } + else { + + state.branchData = [] + } + + }) + + builder.addCase(getActiveBranchData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.branchActiveData = action?.payload?.data?.data + } + else { + state.branchActiveData = [] + } + + }) + + builder.addCase(getAdminNames.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.AdminNames = action?.payload?.data?.data + } + else { + state.AdminNames = [] + } + + }) + + builder.addCase(getBranchAdminUsers.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.BranchAdminUsers = action?.payload?.data?.data + } + else { + state.BranchAdminUsers = [] + } + + }) + builder.addCase(getBranchApplications.fulfilled, (state, action) => { + if (action?.payload?.status) { + if (UserType === "Admin" || UserType === "Admin User") { + let currentDate = new Date(); + let filteredData = action?.payload?.data?.data?.filter(item => { + let validityEnd = new Date(item.ValidityEnd); + return validityEnd >= currentDate; + }); + state.BranchApplicationNames = filteredData + } else { + state.BranchApplicationNames = action?.payload?.data?.data + } + + } + else { + state.BranchApplicationNames = [] + } + + }) + + builder.addCase(getApplicationCompany.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.ApplicationCompany = action?.payload?.data?.data + state.UserAppCompany = [] + } + else { + state.ApplicationCompany = [] + state.UserAppCompany = [] + } + + }) + + builder.addCase(getUserAppCompany.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.UserAppCompany = action?.payload?.data?.data + } + else { + state.UserAppCompany = [] + } + + }) + builder.addCase(checkTrialBranch.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.BranchCounts = action?.payload?.data?.data + } + else { + state.BranchCounts = [] + } + + }) + + } + +}) + +export const getCommonAppPreference = createAsyncThunk( + '/getAppPreference', + async (AppId) => { + if ( + AppId != null && + AppId != undefined + ) { + return await axiosInstanceData.get( + `/ApplicationPreferenceMapping?AppId=${AppId}` + ); + } + } +); + + + +export const { + companyname, +} = branchSlice.actions; + +export const branchDataSelector = state => state.branchPage?.branchData +export const branchActiveDataSelector = state => state.branchPage?.branchActiveData +export const AdminNamesSelector = state => state.branchPage?.AdminNames +export const BranchAdminSelector = state => state.branchPage?.BranchAdminUsers +export const BranchApplicationNamesSelector = state => state.branchPage?.BranchApplicationNames +export const ApplicationCompanySelector = state => state.branchPage?.ApplicationCompany +export const UserAppCompanySelector = state => state.branchPage?.UserAppCompany +export const checkTrialBranchSelector = state => state.branchPage?.BranchCounts +export const ApplicationPreferences = state => state.branchPage?.AppPreferences + +export default branchSlice.reducer; + + diff --git a/src/features/carouselPage/carouselPage.js b/src/features/carouselPage/carouselPage.js new file mode 100644 index 0000000..b08f33f --- /dev/null +++ b/src/features/carouselPage/carouselPage.js @@ -0,0 +1,69 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getCarouselData = createAsyncThunk('carousel/getCarouselData', async () => { + return await axiosInstanceData.get('/carousel') +}) + +export const deleteCarouselData = createAsyncThunk('carousel/deleteCarouselData', async (deleteData) => { + + return await axiosInstanceData.delete('/carousel', { params: deleteData }) +}) + +export const postCarouselData = createAsyncThunk('carousel/postCarouselData', async (postData) => { + + return await axiosInstanceData.post('/carousel', postData) +}) + +export const putCarouselData = createAsyncThunk('carousel/putCarouselData', async (putData) => { + + return await axiosInstanceData.put('/carousel', putData) +}) + +export const getConfigNames = createAsyncThunk('configMaster/getConfigNames', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=Screen Name') +}) + + + + +const initialState = { + carouselData: [], + ConfigNames:[], +} + +const carouselSlice = createSlice({ + name:'carousel', + initialState, + extraReducers: builder => { + builder.addCase(getCarouselData.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.carouselData = action?.payload?.data?.data + } + else { + state.carouselData = [] + } + + }) + + builder.addCase(getConfigNames.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.ConfigNames = action?.payload?.data?.data + } + else { + state.ConfigNames = [] + } + + }) + } + +}) + +export const carouselDataSelector = state => state.carouselPage?.carouselData +export const ConfigNamesSelector = state => state.carouselPage?.ConfigNames + + + +export default carouselSlice.reducer; \ No newline at end of file diff --git a/src/features/companyPage/companyPage.js b/src/features/companyPage/companyPage.js new file mode 100644 index 0000000..c50ed58 --- /dev/null +++ b/src/features/companyPage/companyPage.js @@ -0,0 +1,173 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { getSession } from "../../Services/others"; +import {axiosInstanceData, axiosRetailInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +const UserType = getSession("UserType") + +export const getCompanyData = createAsyncThunk('company/getCompanyData', async () => { + return await axios.get(`${apiUrl}/company`) +}) +export const getCompanyDataUsingAppId = createAsyncThunk('company/getCompanyDataUsingAppId', async (appId) => { + return await axios.get(`${apiUrl}/company?appId=${appId}&Type=A`) +}) + +export const getUserRoles = createAsyncThunk('company/getUserRoles', async () => { + return await axiosInstanceData.get('/configMaster?ActiveStatus=A&TypeName=User Role') +}) + +export const getActiveCompanyData = createAsyncThunk('company/getActiveCompanyData', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axios.get(`${apiUrl}/company?UserId=${UserId}`) + + } + else { + return await axios.get(`${apiUrl}/company?ActiveStatus=A`) + + } +}) + +export const postCompanyData = createAsyncThunk('company/postCompanyData', async (postData) => { + + return await axiosInstanceData.post('/company', postData) +}) + +export const putCompanyData = createAsyncThunk('company/putCompanyData', async (putData) => { + + return await axiosInstanceData.put('/company', putData) +}) + +export const deleteCompanyData = createAsyncThunk('company/deleteCompanyData', async (deleteData) => { + + return await axiosInstanceData.delete('/company', { params: deleteData }) +}) + +export const getAdminNames = createAsyncThunk('login/getAdminNames', async () => { + return await axiosInstanceData.get('/login?Type=Admin') +}) + +export const getAdminUsers = createAsyncThunk('company/getAdminUsers', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axios.get(`${apiUrl}/company?UserId=${UserId}`) + } +}) + +export const getApplications = createAsyncThunk('userAppMap/getApplications', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}`) + + }else { + return await axiosInstanceData.get('/userAppMap') + + } +}) + +export const checkTrialCompany = createAsyncThunk('userAppMap/checkTrialCompany', async (getTrialCompany) => { + if (getTrialCompany.AppId != null && getTrialCompany.AppId != undefined && getTrialCompany.UserId != null && getTrialCompany.UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?AppId=${getTrialCompany.AppId}&UserId=${getTrialCompany.UserId}`) + } +}) + +export const getGstnumberDetails = createAsyncThunk('Gst/gstNumberDetail', async (gstNo) => { + return await axiosRetailInstanceData.get(`/Gst?gstNo=${gstNo}`) +}) + +const initialState = { + companyData: [], + companyActiveData: [], + AdminNames: [], + AdminUsers: [], + ApplicationNames: [], + CompanyCounts: [] +} + +const companySlice = createSlice({ + name: 'company', + initialState, + extraReducers: builder => { + builder.addCase(getCompanyData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.companyData = action?.payload?.data?.data + } + else { + state.companyData = [] + } + + }) + builder.addCase(getActiveCompanyData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.companyActiveData = action?.payload?.data?.data + } + else { + state.companyActiveData = [] + } + + }) + builder.addCase(getAdminNames.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.AdminNames = action?.payload?.data?.data + } + else { + state.AdminNames = [] + } + + }) + + builder.addCase(getAdminUsers.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.AdminUsers = action?.payload?.data?.data + } + else { + state.AdminUsers = [] + } + + }) + + builder.addCase(getApplications.fulfilled, (state, action) => { + if (action?.payload?.status) { + if (UserType === "Admin" || UserType === "Admin User") { + let currentDate = new Date(); + let filteredData = action?.payload?.data?.data?.filter(item => { + let validityEnd = new Date(item.ValidityEnd); + return validityEnd >= currentDate; + }); + state.ApplicationNames = filteredData + } else { + state.ApplicationNames = action?.payload?.data?.data + } + + } + else { + state.ApplicationNames = [] + } + + }) + builder.addCase(checkTrialCompany.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.CompanyCounts = action?.payload?.data?.data + + } + else { + + state.CompanyCounts = [] + + } + + }) + + } + +}) + +export const companyDataSelector = state => state.companyPage?.companyData +export const companyActiveDataSelector = state => state.companyPage?.companyActiveData +export const AdminNamesSelector = state => state.companyPage?.AdminNames +export const AdminUsersSelector = state => state.companyPage?.AdminUsers +export const ApplicationNamesSelector = state => state.companyPage?.ApplicationNames +export const checkTrialCompanySelector = state => state.companyPage?.CompanyCounts + + + +export default companySlice.reducer; \ No newline at end of file diff --git a/src/features/configmasterPage/configmasterPage.js b/src/features/configmasterPage/configmasterPage.js new file mode 100644 index 0000000..7b5b0b5 --- /dev/null +++ b/src/features/configmasterPage/configmasterPage.js @@ -0,0 +1,92 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + + export const getAllSetupHeaderName = createAsyncThunk('configMaster/getAllSetupHeaderName', async (TypeName) => { + if(TypeName != null && TypeName != undefined){ + return await axiosInstanceData.get(`/configMaster?TypeName=${TypeName}&ActiveStatus=A`); + } +}) + +export const getConfiguration = createAsyncThunk('configMaster/getConfiguration', async () => { + return await axiosInstanceData.get(`/configMaster`) +}) + + +export const getActiveConfigNames = createAsyncThunk('configMaster/getActiveConfigNames', async () => { + return await axiosInstanceData.get(`/configMaster?ActiveStatus=A`) +}) + +export const getConfigNames = createAsyncThunk('configMaster/getConfigNames', async ({TypeName}) => { + if(TypeName != null && TypeName != undefined){ + return await axiosInstanceData.get(`/configMaster?TypeName=${TypeName}`); + } +}) +export const getConfigNamesWithActiveStatus = createAsyncThunk('configMaster/getConfigNames', async ({TypeName}) => { + if(TypeName != null && TypeName != undefined){ + return await axiosInstanceData.get(`/configMaster?TypeName=${TypeName}&ActiveStatus=A`); + } +}) + +export const deleteConfiguration = createAsyncThunk('configMaster/deleteConfiguration', async (deleteData) => { + + return await axiosInstanceData.delete(`/configMaster`, { params: deleteData }) +}) + +export const postConfiguration = createAsyncThunk('configMaster/postConfiguration', async (postData) => { + + return await axiosInstanceData.post(`/configMaster`, postData) +}) + +export const putConfiguration = createAsyncThunk('configMaster/putConfiguration', async (putData) => { + + + return await axiosInstanceData.put(`/configMaster`, putData) +}) + +export const postBulkConfiguration = createAsyncThunk('configMaster/postBulkConfiguration', async(postData) =>{ + + return await axiosInstanceData.post(`/configMaster/BulkUpload`, postData) +}) + + +const initialState = { + configData: [], + ActiveConfigNames:[], +} + +const configmaster = createSlice({ + name:'configmaster', + initialState, + extraReducers: builder => { + builder.addCase(getConfiguration.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.configData = action?.payload?.data?.data + } + else { + state.configData = [] + } + + }) + builder.addCase(getActiveConfigNames.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.ActiveConfigNames = action?.payload?.data?.data + } + else { + state.ActiveConfigNames = [] + } + + }) + } + +}) + + +export const configDataSelector = state => state.configmasterPage?.configData +export const ActiveConfigNamesSelector = state => state.configmasterPage?.ActiveConfigNames + + + +export default configmaster.reducer; \ No newline at end of file diff --git a/src/features/configtypePage/configtypePage.js b/src/features/configtypePage/configtypePage.js new file mode 100644 index 0000000..39d504f --- /dev/null +++ b/src/features/configtypePage/configtypePage.js @@ -0,0 +1,76 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getConfigurationType = createAsyncThunk('configType/getConfigurationType', async () => { + return await axiosInstanceData.get(`/configType`) +}) + + +export const postConfigurationType = createAsyncThunk('configType/postConfigurationType', async (postData) => { + + return await axiosInstanceData.post(`/configType`, postData) +}) + +export const putConfigurationType = createAsyncThunk('configType/putConfigurationType', async (putData) => { + + return await axiosInstanceData.put(`/configType`, putData) +}) + +export const deleteConfigTypeData = createAsyncThunk('configType/deleteConfigTypeData', async (deleteData) => { + + return await axiosInstanceData.delete(`/configType`, { params: deleteData }) +}) + +export const getActiveConfigTypeNames = createAsyncThunk('configType/getActiveConfigTypeNames', async () => { + return await axiosInstanceData.get(`/configType?ActiveStatus=A`) +}) + +export const getConfigTypeNames = createAsyncThunk('configType/getActiveConfigTypeNames', async (data) => { + return await axiosInstanceData.get(`/configMaster?typeName=${data?.typeName}`) +}) + +export const Postplanextend = createAsyncThunk('Postplanextend',async(postData)=>{ + + return await axiosInstanceData.post(`/UserAppMap`,postData) +}) + +const initialState = { + configTypeData: [], + configTypeActiveData:[] +} + +const configTypeSlice = createSlice({ + name:'configType', + initialState, + extraReducers: builder => { + builder.addCase(getConfigurationType.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.configTypeData = action?.payload?.data?.data + } + else { + state.configTypeData = [] + } + + }) + + builder.addCase(getActiveConfigTypeNames.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.configTypeActiveData = action?.payload?.data?.data + } + else { + state.configTypeActiveData = [] + } + + }) + + + } + +}) + +export const configTypeDataSelector = state => state.configtypePage?.configTypeData +export const configTypeActiveDataSelector = state => state.configtypePage?.configTypeActiveData + +export default configTypeSlice.reducer; \ No newline at end of file diff --git a/src/features/currencyPage/currencyPage.js b/src/features/currencyPage/currencyPage.js new file mode 100644 index 0000000..1735e5f --- /dev/null +++ b/src/features/currencyPage/currencyPage.js @@ -0,0 +1,54 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + + +export const getCurrency = createAsyncThunk('currency/getCurrency', async () => { + return await axiosInstanceData.get(`/currency`) +}) + + +export const postCurrency = createAsyncThunk('currency/postCurrency', async (postData) => { + + return await axiosInstanceData.post(`/currency`, postData) +}) + +export const putCurrency = createAsyncThunk('currency/putCurrency', async (putData) => { + + return await axiosInstanceData.put(`/currency`, putData) +}) + +export const deleteCurrency = createAsyncThunk('currency/deleteCurrency', async (deleteData) => { + + return await axiosInstanceData.delete(`/currency`, { params: deleteData }) +}) + +const initialState = { + currencyData: [] +} + +const currencySlice = createSlice({ + name:'curency', + initialState, + extraReducers: builder => { + builder.addCase(getCurrency.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.currencyData = action?.payload?.data?.data + } + else { + state.currencyData = [] + } + + }) + } + +}) + +export const currencyDataSelector = state => state.currencyPage?.currencyData + + + + +export default currencySlice.reducer; \ No newline at end of file diff --git a/src/features/exceluploadPage/exceluploadPage.js b/src/features/exceluploadPage/exceluploadPage.js new file mode 100644 index 0000000..83073b7 --- /dev/null +++ b/src/features/exceluploadPage/exceluploadPage.js @@ -0,0 +1,40 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; + + + + +const initialState = { + excelFile: null, + excelFileError: null, + excelData:null, + fileInputRef: " " +} + +const excelupload = createSlice({ + name:'excelupload', + initialState, + reducers :{ + emptyExcelData: (state, action) => { + state.excelFile = null + state.excelFileError = null + state.excelData = null + state.fileInputRef = " " + }, + uploadExcel: (state, action) =>{ + const { file, jsonData } = action?.payload; + state.excelFile=file; + state.excelData=jsonData; + } + } + +}) + +export const {emptyExcelData, uploadExcel} = excelupload.actions; + +export const excelDataSelector = state => state.exceluploadPage.excelData +export const excelFileSelector = state => state.exceluploadPage.excelFile +export const excelFileErrorSelector = state => state.exceluploadPage.excelFileError +export const fileInputRefSelector = state => state.exceluploadPage.fileInputRef + +export default excelupload.reducer; \ No newline at end of file diff --git a/src/features/feature/feature.js b/src/features/feature/feature.js new file mode 100644 index 0000000..26bc48f --- /dev/null +++ b/src/features/feature/feature.js @@ -0,0 +1,107 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +const apiUrl = import.meta.env.ENV_API_URL; + +export const getFeatureCategory = createAsyncThunk( + "feature/featureCategory", + async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Feature Category'); + } +); + +export const getFeatureType = createAsyncThunk( + "feature/FeatureType", + async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Feature Type'); + } +); + +export const getFeature = createAsyncThunk("feature/getFeature", async () => { + return await axiosInstanceData.get('/feature'); +}); +export const getFeatureDetails = createAsyncThunk( + "feature/getFeature", + async (data) => { + if(data != null && data != undefined){ + return await axiosInstanceData.get(`/feature?appId=${data}&activeStatus=A`); + } + } +); + +export const getAppNames = createAsyncThunk("feature/getUserData", async () => { + return axios.get(`${apiUrl}/application?activeStatus=A`); +}); + +export const postFeature = createAsyncThunk( + "feature/postFeature", + async (postData) => { + + return await axiosInstanceData.post('/feature', postData); + } +); + +export const putFeature = createAsyncThunk( + "feature/putFeature", + async (putData) => { + + return await axiosInstanceData.put('/feature', putData); + } +); + +export const deleteFeature = createAsyncThunk( + "feature/deleteFeature", + async (deleteData) => { + if (deleteData?.FeatId && deleteData?.ActiveStatus && deleteData?.UpdatedBy) { + return await axiosInstanceData.delete( + `/feature?FeatId=${deleteData?.FeatId}&ActiveStatus=${deleteData?.ActiveStatus}&UpdatedBy=${deleteData?.UpdatedBy}` + ); + } + } +); + +export const postFeatureAddon = createAsyncThunk( + "feature/postFeatureAddon", + async (postData) => { + + return await axiosInstanceData.post('/UAMFeatAddon', postData); + } +); + +export const NewGetFeatAddon = createAsyncThunk( + "feature/NewGetFeatAddon", + async (data) => { + if(data?.UserId != null && data?.UserId != undefined){ + return axiosInstanceData.get(`/UserAppMap?userId=${data?.UserId}&type=IE`); + } + } +); +const initialState = { + featureData: [], + featureDataDetails: [], +}; +const featureSlice = createSlice({ + name: "feature", + initialState, + extraReducers: (builder) => { + builder.addCase(getFeature.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.featureData = action?.payload?.data?.data; + } else { + state.featureData = []; + } +}), + builder.addCase(getFeatureDetails.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.featureDataDetails = action?.payload?.data?.data; + } else { + state.featureDataDetails = []; + } + }); +}, +}); + +export const featureSelector = (state) => state.featureData?.featureData; +export const featureSelectorDetail = (state) => + state.featureDataDetails?.featureDataDetails; +export default featureSlice.reducer; diff --git a/src/features/featureMapping/featureMapping.js b/src/features/featureMapping/featureMapping.js new file mode 100644 index 0000000..def8437 --- /dev/null +++ b/src/features/featureMapping/featureMapping.js @@ -0,0 +1,70 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +const apiUrl = import.meta.env.ENV_API_URL; + + +export const getApplication = createAsyncThunk('featureMapping/application', async () => { + return await axios.get(`${apiUrl}/application`) +}) + +export const getpricingAppFeatMap = createAsyncThunk('featureMapping/pricingAppFeatMap', async () => { + return await axios.get(`${apiUrl}/pricingAppFeatMap`) +}) + +export const getPricingType = createAsyncThunk('featureMapping/getPricingType', async (AppId) => { + if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/pricingType?AppId=${AppId}`) + } +}) + +export const getFeatureList = createAsyncThunk('featureMapping/getFeatureList', async (AppId) => { + if (AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/feature?AppId=${AppId}`) + } +}) + +export const postFeatureMapping = createAsyncThunk('featureMapping/postFeatureMapping', async (postData) => { + + return await axiosInstanceData.post('/pricingAppFeatMap', postData) +}) + +export const putFeatureMapping = createAsyncThunk('featureMapping/putFeatureMapping', async (putData) => { + + return await axiosInstanceData.put('/pricingAppFeatMap', putData) +}) + +export const deleteFeatureMapping = createAsyncThunk('featureMapping/deleteFeatureMapping', async (deleteData) => { + if (deleteData?.AppId && deleteData?.PricingId && deleteData?.ActiveStatus && deleteData?.UpdatedBy) { + return await axiosInstanceData.delete(`/pricingAppFeatMap?AppId=${deleteData?.AppId}&PricingId=${deleteData?.PricingId}&ActiveStatus=${deleteData?.ActiveStatus}&UpdatedBy=${deleteData?.UpdatedBy}`) + } +}) + + +const initialState = { + featureData: [] +} + +const featureMappSlice = createSlice({ + name: 'featureMapping', + initialState, + extraReducers: builder => { + builder.addCase(getApplication.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.featureData = action?.payload?.data?.data + } + else { + state.featureData = [] + } + + }) + } + +}) + +export const featureMappSelector = state => state.featureData?.featureData + + + + +export default featureMappSlice.reducer; \ No newline at end of file diff --git a/src/features/homePage/homePage.js b/src/features/homePage/homePage.js new file mode 100644 index 0000000..7e0f317 --- /dev/null +++ b/src/features/homePage/homePage.js @@ -0,0 +1,214 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getPurchasedApp = createAsyncThunk( + "homePage/getPurchasedApp", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}`); + } + } +); + +export const getPurchasedAppFeatures = createAsyncThunk( + "homePage/getPurchasedAppFeatures", + async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}&AppId=${AppId}&Type=IE`); + } + } +); + +export const getAllPurchasedDetails = createAsyncThunk( + "homePage/getAllPurchasedDetails", + async () => { + return await axiosInstanceData.get('/userAppMap'); + } +); + +export const getAllFailedPurchasedDetails = createAsyncThunk( + "homePage/getAllFailedPurchasedDetails", + async () => { + return await axiosInstanceData.get('/userAppMap?paymentStatus=F'); + } +); + +export const getAllFailedPurchasedDetailsFilter = createAsyncThunk( + "homePage/getAllFailedPurchasedDetailsFilter", + async (data) => { + let urlData; + if (data?.Year != null && data?.Year != undefined) { + urlData = `userAppMap?paymentStatus=F&year=${data?.Year}`; + } + if (data?.Month != null && data?.Month != undefined) { + urlData = `userAppMap?paymentStatus=F&monthYear=${data?.Month}`; + } + if (data?.Fromdate != null && data?.Fromdate != undefined && data?.Todate != null && data?.Todate != undefined) { + urlData = `userAppMap?paymentStatus=F&fromDate=${data?.Fromdate}&toDate=${data?.Todate}`; + } + return await axiosInstanceData.get(`/${urlData}`); + } +); + +export const getAllPurchasedDetailsFilter = createAsyncThunk( + "homePage/getAllPurchasedDetailsFilter", + async (data) => { + let urlData; + if (data?.Year != null && data?.Year != undefined) { + urlData = `userAppMap?year=${data?.Year}`; + } + if (data?.Month != null && data?.Month != undefined) { + urlData = `userAppMap?monthYear=${data?.Month}`; + } + if (data?.Fromdate != null && data?.Fromdate != undefined && data?.Todate != null && data?.Todate != undefined) { + urlData = `userAppMap?fromDate=${data?.Fromdate}&toDate=${data?.Todate}`; + } + return await axiosInstanceData.get(`/${urlData}`); + } +); + +export const getTypePurchasedApp = createAsyncThunk( + "homePage/getTypePurchasedApp", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}&Type=P`); + } + } +); + +export const getAppAccess = createAsyncThunk( + "homePage/getAppAccess", + async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}`); + } + } +); + +export const putDeafaulBranch = createAsyncThunk( + "putDeafaulBranch/putDeafaulBranch", + async (putData) => { + + return await axiosInstanceData.put('/appAccess', putData); + } +); + +export const getDeafaulBranch = createAsyncThunk( + "getDeafaul/getDeafaulBranch", + async (DefaultBranch) => { + if(DefaultBranch.UserId != null && DefaultBranch.UserId != undefined && DefaultBranch.AppId != null && DefaultBranch.AppId != undefined){ + return await axiosInstanceData.get( + `/appAccess?UserId=${DefaultBranch.UserId}&AppId=${DefaultBranch.AppId}&Type=DB` + ); + } + + } +); + +export const getPurchasedAppFilter = createAsyncThunk( + "homePage/getPurchasedAppFilter", + async (data) => { + let urlData; + if (data?.UserId != null && data?.UserId != undefined) { + if (data?.Year != null && data?.Year != undefined) { + urlData = `userAppMap?UserId=${data?.UserId}&year=${data?.Year}&Type=P`; + } + if (data?.Month != null && data?.Month != undefined) { + urlData = `userAppMap?UserId=${data?.UserId}&monthYear=${data?.Month}&Type=P`; + } + if (data?.Fromdate != null && data?.Fromdate != undefined && data?.Todate != null && data?.Todate != undefined) { + urlData = `userAppMap?UserId=${data?.UserId}&fromDate=${data?.Fromdate}&toDate=${data?.Todate}&Type=P`; + } + } + return await axiosInstanceData.get(`/${urlData}`); + } +); + +const initialState = { + purchasedApp: [], + purchasedTypeApp: [], + AppAccess: [], + failedpurchasedTypeApp: [], + purchasedTypeAppFilter: [], +}; + +const homePageSlice = createSlice({ + name: "homePage", + initialState, + extraReducers: (builder) => { + builder.addCase(getPurchasedApp.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.purchasedApp = action?.payload?.data?.data; + } else { + state.purchasedApp = []; + } + }); + + builder.addCase(getTypePurchasedApp.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.purchasedTypeApp = action?.payload?.data?.data; + state.purchasedTypeAppFilter = action?.payload?.data?.data; + } else { + state.purchasedTypeApp = []; + state.purchasedTypeAppFilter = []; + } + }); + + builder.addCase(getAllPurchasedDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.purchasedTypeApp = action?.payload?.data?.data; + state.purchasedTypeAppFilter = action?.payload?.data?.data; + } else { + state.purchasedTypeApp = []; + state.purchasedTypeAppFilter = []; + } + }); + + builder.addCase(getAllPurchasedDetailsFilter.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.purchasedTypeAppFilter = action?.payload?.data?.data; + } else { + state.purchasedTypeAppFilter = []; + } + }); + + builder.addCase(getPurchasedAppFilter.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.purchasedTypeAppFilter = action?.payload?.data?.data; + } else { + state.purchasedTypeAppFilter = []; + } + }); + + builder.addCase(getAllFailedPurchasedDetails.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.failedpurchasedTypeApp = action?.payload?.data?.data; + } else { + state.failedpurchasedTypeApp = []; + } + }); + builder.addCase(getAllFailedPurchasedDetailsFilter.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.failedpurchasedTypeApp = action?.payload?.data?.data; + } else { + state.failedpurchasedTypeApp = []; + } + }); + + builder.addCase(getAppAccess.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.AppAccess = action?.payload?.data?.data; + } else { + state.AppAccess = []; + } + }); + }, +}); + +export const purchasedAppSelector = (state) => state.homePage.purchasedApp; +export const purchasedTypeAppSelector = (state) => state.homePage.purchasedTypeApp; +export const failedpurchasedTypeAppSelector = (state) => state.homePage.failedpurchasedTypeApp; +export const purchasedTypeAppSelectorFilter = (state) => state.homePage.purchasedTypeAppFilter; +export const AppAccessSelector = (state) => state.homePage.AppAccess; + +export default homePageSlice.reducer; diff --git a/src/features/invoiceDetail/invoiceDetail.js b/src/features/invoiceDetail/invoiceDetail.js new file mode 100644 index 0000000..5088fb8 --- /dev/null +++ b/src/features/invoiceDetail/invoiceDetail.js @@ -0,0 +1,71 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { axiosInstanceData, axiosInstanceEMAIL_SMSData } from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getPricingType = createAsyncThunk('getPricingType/getPricingType', async (PricingId) => { + if (PricingId != null && PricingId != undefined) { + return await axiosInstanceData.get(`/pricingType?PricingId=${PricingId}`); + } +}); + +export const postInvoice = createAsyncThunk('postInvoice/userAppMap', async (postData) => { + + return await axiosInstanceData.post('/userAppMap', postData) +}) + + +export const postCCAvenuePaymentDetails = createAsyncThunk('postCCAvenuePaymentDetails/payment', async (postData) => { + + return await axiosInstanceData.post('/ccavenuePaymentDetails', postData) +}) + +export const getccavenuePaymentDetails = createAsyncThunk('getccavenuePaymentDetails', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails?activeStatus=A') +}) + +export const getPaymentMethod = createAsyncThunk('getPaymentMethod/getPaymentMethod', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails'); +}); +// +export const getallplanDtl = createAsyncThunk('getallplanDtl', async (data) => { + if (data?.AppId != null && data?.AppId != undefined && data?.UserId != null && data?.UserId != undefined) { + return await axiosInstanceData.get(`/AllDetailPlanMod?AppId=${data?.AppId}&UserId=${data?.UserId}`); + } +}); + +export const postDowngrade = createAsyncThunk('postDowngrade', async (postData) => { + + return await axiosInstanceData.post('/ModifySubcription', postData) +}) +export const putFeaturechange = createAsyncThunk('putFeaturechange', async (putData) => { + + return await axiosInstanceData.put('/ModifySubcription', putData) +}) + +export const getUsedplandata = createAsyncThunk('getUsedplandata', async (data) => { + if (data?.AppId != null && data?.AppId != undefined && data?.UserId != null && data?.UserId != undefined && data?.type != null && data?.type != undefined) { + return await axiosInstanceData.get(`/UserAppMap?AppId=${data?.AppId}&UserId=${data?.UserId}&type=${data?.type}`) + } +}) + +export const putPaymentMethod = createAsyncThunk('putPaymentMethod/putPaymentMethod', async (putData) => { + + return await axiosInstanceData.put('/PaymentSuccess', putData); +}); +export const postEmailApi = createAsyncThunk('postEmailApi/Email', async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post(`/Email`, postData) +}) +export const getEmployeRefferal = createAsyncThunk('getEmployeRefferal',async(data)=>{ + if (data.AppId != null && data.AppId != undefined && data.UserId != null && data.UserId != undefined && data.Type != null && data.Type != undefined) { + + return await axiosInstanceData.get(`/UserAppMap?AppId=${data.AppId}&UserId=${data.UserId}&Type=${data.Type}`) + + } +}) + + +export const getReferaluserdata = createAsyncThunk('getReferaluserdata',async(data)=>{ +return await axiosInstanceData.get(`/ReferralSetup?referralCode=${data.referralCode}`) +}) \ No newline at end of file diff --git a/src/features/kisokDevice/kisokDevice.js b/src/features/kisokDevice/kisokDevice.js new file mode 100644 index 0000000..bc93498 --- /dev/null +++ b/src/features/kisokDevice/kisokDevice.js @@ -0,0 +1,63 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const GetAdminData = createAsyncThunk('GetAdminData', async (data) => { + if(data?.Type != null && data?.Type != undefined && data?.AppId != null && data?.AppId != undefined){ + return await axios.get(`${apiUrl}/UAMFeatAddon?Type=${data?.Type}&AppId=${data?.AppId}`) + } + +}) + +export const GetMacAddress = createAsyncThunk('GetAdminData', async () => { + return await axiosInstanceData.get('/DeviceInfo') + +}) +export const GetMacAddressnotallocated = createAsyncThunk('GetMacAddressnotallocated', async () => { + return await axiosInstanceData.get('/DeviceInfo?type="DI"') + + }) +export const PostMacAddress = createAsyncThunk('PostMacAddress', async (postData) => { + + return await axiosInstanceData.post('/DeviceInfo',postData) + +}) +export const PutMacAddress = createAsyncThunk('PostMacAddress', async (putData) => { + + return await axiosInstanceData.put('/DeviceInfo',putData) + +}) + +export const DeleteMacAddress = createAsyncThunk('PostMacAddress', async (data) => { + return await axiosInstanceData.delete(`/DeviceInfo?activeStatus=${data?.ActiveStatus}&deviceId=${data?.deviceId}&updatedBy=${data?.UpdatedBy}`) + +}) + +export const Postdeviceallocation = createAsyncThunk('Postdeviceallocation',async (postData) =>{ + + return await axiosInstanceData.post('/DeviceAllocation',postData) +}) + +export const GetDeviceallocation = createAsyncThunk('GetDeviceallocation', async () => { + return await axiosInstanceData.get('/DeviceAllocation') +}) + +export const getUserAppDetails = createAsyncThunk( + "moduleAccess/getUserAppDetails", + async ({ UserId, AppId }) => { + if(UserId != null && UserId != undefined && AppId != null && AppId != undefined){ + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}`); + } + } + ); + +export const PutDeviceAllocation = createAsyncThunk('PutDeviceAllocation', async (putData) => { + + return await axiosInstanceData.put('/DeviceAllocation',putData) +}) + +export const DeleteDeviceAllocation = createAsyncThunk('DeleteDeviceAllocation', async (deleteData) => { + return await axiosInstanceData.delete(`/DeviceAllocation?activeStatus=${deleteData?.ActiveStatus}&uniqueId=${deleteData?.uniqueId}&updatedBy=${deleteData?.UpdatedBy}`) +}) \ No newline at end of file diff --git a/src/features/paymentDeviceConfig/paymentDeviceConfig.js b/src/features/paymentDeviceConfig/paymentDeviceConfig.js new file mode 100644 index 0000000..a71afdf --- /dev/null +++ b/src/features/paymentDeviceConfig/paymentDeviceConfig.js @@ -0,0 +1,55 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getApplicationNames = createAsyncThunk("getApplicationNames", async () => { + return axios.get(`${apiUrl}/application?activeStatus=A`); +}); + +export const GetAdminData = createAsyncThunk('GetAdminData', async ({AppId,Type}) => { + if(AppId != null && AppId != undefined && Type != null && Type != undefined){ + return await axios.get(`${apiUrl}/UAMFeatAddon?Type=${Type}&AppId=${AppId}`) + } +}) + + +export const getStoreData = createAsyncThunk("getStoreData", + async ({ UserId, AppId }) => { + if(UserId !=null && UserId !=undefined && AppId != null && AppId != undefined){ + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&AppId=${AppId}`); + } + } + ); + + +export const getBranchData = createAsyncThunk( + "getBranchData", + async ({ storeId }) => { + if (storeId != null && storeId != undefined) { + return await axiosInstanceData.get(`/branch?CompId=${storeId}`); + } + } +); + + +export const getPaymentDeviceConfig = createAsyncThunk('GetPaymentDeviceConfig', async () => { + return await axiosInstanceData.get('/PaymentDeviceconfig') +}) + +export const postPaymentDeviceConfig = createAsyncThunk('postPaymentDeviceConfig', async (postData) => { + + return await axiosInstanceData.post('/PaymentDeviceconfig', postData) +}) + +export const putPaymentDeviceConfig = createAsyncThunk('putPaymentDeviceConfig', async (putData) => { + + return await axiosInstanceData.put('/PaymentDeviceconfig', putData) +}) + +export const deletePaymentDeviceConfig = createAsyncThunk('deletePaymentDeviceConfig', async (deleteData) => { + return await axiosInstanceData.delete(`/PaymentDeviceconfig?uniqueId=${deleteData?.UniqueId}&updatedBy=${deleteData?.UpdatedBy}&activeStatus=${deleteData?.ActiveStatus}`) +}) + + diff --git a/src/features/paymentPage/paymentPage.js b/src/features/paymentPage/paymentPage.js new file mode 100644 index 0000000..fcfe819 --- /dev/null +++ b/src/features/paymentPage/paymentPage.js @@ -0,0 +1,52 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getPaymentMethod = createAsyncThunk('getPaymentMethod/getPaymentMethod', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails'); +}); +export const getPaymentMethodWithActiveStatus = createAsyncThunk('getPaymentMethod/getPaymentMethod', async () => { + return await axiosInstanceData.get('/ccavenuePaymentDetails?activeStatus=A'); +}); +export const PostPaymentMethod = createAsyncThunk('PostPaymentMethod/PostPaymentMethod', async (postData) => { + + return await axiosInstanceData.post('/ccavenueDetails',postData) +}) +export const PutPaymentMethod = createAsyncThunk('PostPaymentMethod/PutPaymentMethod', async (putData) => { + + return await axiosInstanceData.put('/ccavenueDetails',putData) +}) + +export const GetPaymentGatewayconfig = createAsyncThunk('GetPaymentMethod/GetPaymentGatewayconfig', async () => { + return await axiosInstanceData.get('/PaymentGatewayConfig') +}) + +export const GetAdminData = createAsyncThunk('GetAdminData', async ({AppId,Type}) => { + if(AppId != null && AppId != undefined && Type != null && Type != undefined){ + return await axios.get(`${apiUrl}/UAMFeatAddon?Type=${Type}&AppId=${AppId}`) + } +}) + +export const PostPaymentGatewayconfig = createAsyncThunk('PostPaymentMethod/PostPaymentGatewayconfig', async (postData) => { + + return await axiosInstanceData.post('/PaymentGatewayConfig',postData) +}) +export const DeletePaymentGatewayconfig = createAsyncThunk('PostPaymentMethod/DeletePaymentGatewayconfig', async (deleteData) => { + return await axiosInstanceData.delete(`/PaymentGatewayConfig?uniqueId=${deleteData?.uniqueId}&updatedBy=${deleteData?.UpdatedBy}&activeStatus=${deleteData?.ActiveStatus}`,) +}) + +export const PutPaymentGatewayconfig = createAsyncThunk('PutPaymentGatewayconfig/PutPaymentGatewayconfig', async (putData) => { + return await axiosInstanceData.put('/PaymentGatewayconfig',putData) +}) +export const deletePaymentMethod = createAsyncThunk('deletePaymentMethod/deletePaymentMethod', async (deleteData) => { + if(deleteData?.MethodId && deleteData?.ActiveStatus){ + return await axiosInstanceData.delete(`/ccavenuePaymentMethod?methodId=${deleteData?.MethodId}&activeStatus=${deleteData?.ActiveStatus}`) + } +}) +export const deletePaymentDetail = createAsyncThunk('deletePaymentMethod/deletePaymentMethod', async (deleteData) => { + if(deleteData?.UniqueId && deleteData?.ActiveStatus){ + return await axiosInstanceData.delete(`/ccavenueDetails?uniqueId=${deleteData?.UniqueId}&activeStatus=${deleteData?.ActiveStatus}`) + } +}) diff --git a/src/features/paymentUPIdetails/paymentUPIdetails.js b/src/features/paymentUPIdetails/paymentUPIdetails.js new file mode 100644 index 0000000..75ad194 --- /dev/null +++ b/src/features/paymentUPIdetails/paymentUPIdetails.js @@ -0,0 +1,94 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + +export const getCmpanyBranch = createAsyncThunk('branch/getCmpanyBranch',async(CompId) =>{ + if(CompId != null && CompId !=undefined){ + return await axiosInstanceData.get(`/branch?CompId=${CompId}`) + } + +}) + +export const getPricingMode = createAsyncThunk('getPricingMode/getPricingMode', async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Payment Mode&ActiveStatus=A') +}) + +export const getPaymentUPIDetails = createAsyncThunk('paymentUpiDetails/getPaymentUPIDetails',async() =>{ + return await axiosInstanceData.get('/paymentUpiDetails?') + +}) + +export const getAdminPaymentUPIDetails = createAsyncThunk('paymentUpiDetails/getAdminPaymentUPIDetails',async(UserId) =>{ + if(UserId != null && UserId != undefined){ + return await axiosInstanceData.get(`/paymentUpiDetails?UserId=${UserId}&type=O`) + } + +}) + +export const postPaymentUpiDetails = createAsyncThunk('paymentUpiDetails/postPaymentUpiDetails',async(postData) =>{ + + return await axiosInstanceData.post('/paymentUpiDetails', postData) + +}) + +export const putPaymentUpiDetails = createAsyncThunk('paymentUpiDetails/putPaymentUpiDetails', async (putData) => { + + return await axiosInstanceData.put('/paymentUpiDetails', putData) +}) + +export const deletePaymentUPIDetails = createAsyncThunk('paymentUpiDetails/deletePaymentUPIDetails', async (deleteData) => { + + return await axiosInstanceData.delete('/paymentUpiDetails', { params: deleteData }) +}) + + + +const initialState = { + CmpanyBranchData: [], + PaymentUPIData: [], + AdminPaymentUPIData: [] +} + +const paymentUPIdetailsSlice = createSlice({ + name:'messagetemplate', + initialState, + extraReducers: builder => { + builder.addCase(getCmpanyBranch.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.CmpanyBranchData = action?.payload?.data?.data + } + else { + state.CmpanyBranchData = [] + } + + }) + + builder.addCase(getPaymentUPIDetails.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.PaymentUPIData = action?.payload?.data?.data + } + else { + state.PaymentUPIData = [] + } + + }) + + builder.addCase(getAdminPaymentUPIDetails.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.AdminPaymentUPIData = action?.payload?.data?.data + } + else { + state.AdminPaymentUPIData = [] + } + + }) + + } + +}) + + +export const CmpanyBranchDataSelector = state => state.paymentUPIdetails?.CmpanyBranchData +export const PaymentUPIDetailsSelector = state => state.paymentUPIdetails?.PaymentUPIData +export const AdminPaymentUPIDataSelector = state => state.paymentUPIdetails?.AdminPaymentUPIData +export default paymentUPIdetailsSlice.reducer; \ No newline at end of file diff --git a/src/features/priceType/priceType.js b/src/features/priceType/priceType.js new file mode 100644 index 0000000..2993f56 --- /dev/null +++ b/src/features/priceType/priceType.js @@ -0,0 +1,144 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getPricingType = createAsyncThunk( + "priceType/pricingType", + async (AppId) => { + return await axiosInstanceData.get('/pricingType'); + } +); + +export const getPricingTypeForm = createAsyncThunk( + "priceType/getPricingTypeForm", + async (data) => { + if (data?.appId != null && data?.appId != undefined && data?.pricingName != null && data?.pricingName != undefined) { + return await axiosInstanceData.get( + `/PricingType?appId=${data?.appId}&pricingName=${data?.pricingName}` + ); + } + } +); + +export const getPricingTag = createAsyncThunk( + "priceType/getPricingTag", + async () => { + return await axiosInstanceData.get('/configMaster?TypeName=Pricing Type'); + } +); + +export const getTaxdata = createAsyncThunk("priceType/getTaxdata", async () => { + return await axiosInstanceData.get('/adminTax?ActiveStatus=A'); +}); + +export const getCurrData = createAsyncThunk( + "priceType/getCurrData", + async () => { + return await axiosInstanceData.get('/currency?ActiveStatus=A'); + } +); + +export const postPriceType = createAsyncThunk( + "priceType/postPriceType", + async (postData) => { + + return await axiosInstanceData.post('/pricingType', postData); + } +); + +export const putPriceType = createAsyncThunk( + "priceType/putPriceType", + async (putData) => { + + return await axiosInstanceData.put('/pricingType', putData); + } +); + +export const deletePriceType = createAsyncThunk( + "priceType/deletePriceType", + async (deleteData) => { + return await axiosInstanceData.delete( + `/pricingType?PricingId=${deleteData?.PricingId}&ActiveStatus=${deleteData?.ActiveStatus}&UpdatedBy=${deleteData?.UpdatedBy}` + ); + } +); +//http://192.168.1.37/userAppMap/PlanChange +export const postPlanChange = createAsyncThunk( + "postPlanChange/userAppMap", + async (postData) => { + + return await axiosInstanceData.post('/userAppMap/PlanChange', postData); + } +); +export const putplanchange = createAsyncThunk( + "putplanchange/userAppMap", + async (putData) => { + + return await axiosInstanceData.put('/userAppMap/PlanChange', putData); + } +); + +export const getUserCredit = createAsyncThunk( + "getUserCredit/userAppMap", + async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get( + `/userAppMap/UserCredit?request.userId=${UserId}` + ); + } + } +); + +export const getFeatureonType = createAsyncThunk( + "feature/getFeatureonType", + async (data) => { + return await axiosInstanceData.get('/FeatureAddon'); + } +); +export const putFeatureonType = createAsyncThunk( + "feature/getFeatureonType", + async (putData) => { + + return await axiosInstanceData.put('/FeatureAddon', putData); + } +); +export const getFeatureonTypeApp = createAsyncThunk( + "feature/getFeatureonType", + async (data) => { + if (data != null && data != undefined) { + return await axiosInstanceData.get(`/FeatureAddon?request.appId=${data}`); + } + } +); + +export const deleteFeatureonType = createAsyncThunk('feature/deleteFeatureonType', async (deleteData) => { + return await axiosInstanceData.delete(`/FeatureAddon?request.appId=${deleteData?.appId}&request.updatedBy=${deleteData?.updatedBy}&request.activeStatus=${deleteData?.activeStatus}`) +}); +export const PostFeatureonType = createAsyncThunk('feature/PostFeatureonType', async (postData) => { + + return await axiosInstanceData.post('/FeatureAddon',postData) +}) +export const PostOnlineUserTracking = createAsyncThunk('feature/PostOnlineUserTracking', async (postData) => { + + return await axiosInstanceData.post('/OnlineUserTracking',postData) +}) +const initialState = { + priceData: [], +}; + +const priceSlice = createSlice({ + name: "priceType", + initialState, + extraReducers: (builder) => { + builder.addCase(getPricingType.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.priceData = action?.payload?.data?.data; + } else { + state.priceData = []; + } + }); + }, +}); + +export const priceSelector = (state) => state.priceData?.priceData; + +export default priceSlice.reducer; diff --git a/src/features/pricingType/pricingType.js b/src/features/pricingType/pricingType.js new file mode 100644 index 0000000..dc1205d --- /dev/null +++ b/src/features/pricingType/pricingType.js @@ -0,0 +1,227 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData, axiosInstanceEMAIL_SMSData } from '../AuthenticationTokens/AuthenticationToken'; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getPricingType = createAsyncThunk( + "pricingAppFeatMap/getPricingType", + async ({ toggleValue, AppId, UserId }) => { + if (toggleValue != null && toggleValue != undefined && AppId != null && AppId != undefined && UserId != null && UserId != undefined) { + return await axios.get( + `${apiUrl}/pricingAppFeatMap?Type=${toggleValue}&AppId=${AppId}&UserId=${UserId}` + ); + } + } +); + +export const getPricingType2 = createAsyncThunk( + "pricingAppFeatMap/getPricingType", + async ({ toggleValue, AppId, UserId }) => { + if (toggleValue != null && toggleValue != undefined && AppId != null && AppId != undefined && UserId != null && UserId != undefined) { + return await axios.get( + `${apiUrl}/pricingAppFeatMap?Type=${toggleValue}&AppId=${AppId}&UserId=${UserId}` + ); + } + } +); + +export const getPricingTypeAppId = createAsyncThunk( + "pricingType/getPricingTypeAppId", + async ({ toggleValue, AppId }) => { + if (toggleValue != null && toggleValue != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get( + `/pricingType?Type=${toggleValue}&AppId=${AppId}` + ); + } + } +); + +export const postFreeOption = createAsyncThunk( + "userAppMap/postFreeOption", + async (postData) => { + + return await axiosInstanceData.post('/userAppMap/FreeOption', postData); + } +); + +export const getUserDetails = createAsyncThunk( + "getUserDetail/getUserDetails", + async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/user?UserId=${UserId}`); + } + } +); + +export const SendPaymentLink = createAsyncThunk( + "SendPaymentLink/SendPaymentLink", + async ({ MobileNo, url }) => { + if (MobileNo != null && MobileNo != undefined && url != null && url != undefined) { + return await axiosInstanceData.post('/verifyOTP/SendPaymentLink', { + MobileNo: MobileNo, + MessageHeader: "PaymentLink", + Link: url + }); + } + } +); + +export const CheckPaymentStatus = createAsyncThunk( + "SendPaymentLink/SendPaymentLink", + async (BookingId) => { + if (BookingId != null && BookingId != undefined) { + return await axiosInstanceData.get( + `/userAppMap?UniqueId=${BookingId}&PaymentStatus=S` + ); + } + } +); + +export const UpdatePayment = createAsyncThunk( + "UpdatePayment/UpdatePayment", + async (putdata) => { + + return await axiosInstanceData.put('/userAppMap/paymentStatus', putdata); + } +); + +export const getPaymentUpiDetails = createAsyncThunk( + "getPaymentUpiDeatils/getPaymentUpiDeatils", + async () => { + return await axiosInstanceData.get('/paymentUpiDetails?activeStatus=A&type=I'); + } +); + +export const getPaymentModeDetails = createAsyncThunk( + "getPaymentUpiDeatils/getPaymentModeDeatils", + async (Id) => { + if (Id != null && Id != undefined) { + return await axiosInstanceData.get( + `/paymentUpiDetails?PaymentUPIDetailsId=${Id}` + ); + } + } +); + +export const getUserMappDetails = createAsyncThunk( + "getUserMappDetails/getUserMappDetails", + async (BookingId) => { + if (BookingId != null && BookingId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UniqueId=${BookingId}`); + } + } +); + +export const sharePdfDocument = createAsyncThunk( + "sharePdfDocument/sharePdfDocument", + async ({ data }) => { + + return await axiosInstanceData.post('/userAppMap/send-invoicedetail', data); + } +); +export const sendSms = createAsyncThunk('postEmailApi/SMS', async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post(`/SMS`, postData) +}) +export const getPricingFeatures = createAsyncThunk( + "pricingAppFeatureMap/getPricingFeatures", + async ({ toggleValue, AppId }) => { + if (toggleValue != null && toggleValue != undefined && AppId != null && AppId != undefined) { + return await axios.get( + `${apiUrl}/pricingAppFeatMap?AppId=${AppId}&Type=${toggleValue}` + ); + } + } +); +export const getPurchasedPlan = createAsyncThunk( + "pricingAppFeatureMap/getPurchasedPlan", + async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axios.get( + `${apiUrl}/pricingAppFeatMap?AppId=${AppId}&UserId=${UserId}` + ); + } + } +); + +export const getPurchasedAppDetails = createAsyncThunk( + "homePage/PlanChanges", + async ({ UserId, AppId }) => { + if (UserId != null && UserId != undefined && AppId != null && AppId != undefined) { + return await axiosInstanceData.get( + `/userAppMap/PlanChange?AppId=${AppId}&UserId=${UserId}` + ); + } + } +); +export const getUsedplandata = createAsyncThunk('getUsedplandata', async (data) => { + if (data?.UserId != null && data?.UserId != undefined && data?.AppId != null && data?.AppId != undefined && data?.type != null && data?.type != undefined) { + return await axiosInstanceData.get(`/UserAppMap?AppId=${data?.AppId}&UserId=${data?.UserId}&type=${data?.type}`) + } +}) +export const getUserBasedConstraint = createAsyncThunk( + "userAppMap/UserBasedConstraint", + async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap/UserBasedConstraint?UserId=${UserId}`); + } + } +) +const initialState = { + PricingType: [], + PricingTypeFeat: [], + Adminplanschanges: false, + NewPlandata: [] +}; + +const pricingTypeSlice = createSlice({ + name: "pricingType", + initialState, + reducers: { + ChangeAdminplanschanges: (state, action) => { + + state.Adminplanschanges = action?.payload + }, + changeNewPlandata: (state, action) => { + + state.NewPlandata = action?.payload + }, + }, + extraReducers: (builder) => { + builder.addCase(getPricingType.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.PricingType = action?.payload?.data?.data; + } else { + state.PricingType = []; + } + }); + + builder.addCase(getPricingTypeAppId.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.PricingType = action?.payload?.data?.data; + } else { + state.PricingType = []; + } + }); + + builder.addCase(getPricingFeatures.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.PricingTypeFeat = action?.payload?.data?.data; + } else { + state.PricingTypeFeat = []; + } + }); + }, +}); +export const { + ChangeAdminplanschanges, + changeNewPlandata +} = pricingTypeSlice.actions + +export const pricingTypeSelector = (state) => state.PricingType?.PricingType; +export const pricingTypeFeatSelector = (state) => state.PricingType?.PricingTypeFeat; +export const GlobalAdminplanschanges = (state) => state.pricingType?.Adminplanschanges; +export const GlobalNewPlandata = (state) => state.pricingType?.NewPlandata; + +export default pricingTypeSlice.reducer; diff --git a/src/features/publicHome/publicHome.js b/src/features/publicHome/publicHome.js new file mode 100644 index 0000000..b85dac6 --- /dev/null +++ b/src/features/publicHome/publicHome.js @@ -0,0 +1,97 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; +const apiUrl = import.meta.env.ENV_API_URL; + + +const apiUrlToken = import.meta.env.ENV_API_URL_TOKEN; + + +export const getCategoryData = createAsyncThunk('publicHome/pricingType', async () => { + return await axios.get(`${apiUrl}/application?Type=A`) +}) + +export const getMainModuleData = createAsyncThunk('publicHome/getMainModuleData', async ({ TypeName }) => { + if (TypeName != null && TypeName != undefined) { + return await axiosInstanceData.get(`/configMaster?TypeName=${TypeName}`) + } +}) +export const getModuleData = createAsyncThunk('publicHome/getModuleData', async ({ AlphaNumFId }) => { + if (AlphaNumFId != null && AlphaNumFId != undefined) { + return await axiosInstanceData.get(`/configMaster?AlphaNumFId=${AlphaNumFId}`) + } +}) + +export const getSubCategoryData = createAsyncThunk('publicHome/getSubCategoryData', async (CatId) => { + if (CatId != null && CatId != undefined) { + return await axios.get(`${apiUrl}/application?CateId=${CatId}`) + } +}) + +export const getApplicationData = createAsyncThunk('publicHome/getApplicationData', async (SubCatId) => { + if (SubCatId != null && SubCatId != undefined) { + return await axios.get(`${apiUrl}/application?SubId=${SubCatId}`) + } +}); + +export const getAllApplicationData = createAsyncThunk('publicHome/getApplicationData', async () => { + return await axios.get(`${apiUrl}/application`) +}); +export const getAllApplicationPlan = createAsyncThunk('publicHome/getApplicationData', async () => { + return await axios.get(`${apiUrl}/application?Type=D`) +}); + +export const postApplicationData = createAsyncThunk('application/postApplicationData', async (postData) => { + + return await axiosInstanceData.post('/application', postData) +}) +export const PostToken = createAsyncThunk('publicHome/PostToken', async (data) => { + + const params = new URLSearchParams(); + for (const key in data) { + params.append(key, data[key]); + } + try { + const response = await axios.post(`${apiUrlToken}/jwtTokenGenerator`, data, { + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + }); + + const { token } = response?.data; + if (!sessionStorage.getItem('auth')) { + sessionStorage.setItem('auth', token) + } + } catch (error) { + console.error('Error:', error); + } +}); + +const initialState = { + homeData: [] +} + +const publicHomeSlice = createSlice({ + name: 'publicHome', + initialState, + extraReducers: builder => { + builder.addCase(getCategoryData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.homeData = action?.payload?.data?.data + } + else { + state.homeData = [] + } + + }) + } + +}) + +export const publicHomeSelector = state => state.homeData?.homeData + + + + +export default publicHomeSlice.reducer; \ No newline at end of file diff --git a/src/features/purcheseInfo/purcheseInfo.js b/src/features/purcheseInfo/purcheseInfo.js new file mode 100644 index 0000000..4cf5c08 --- /dev/null +++ b/src/features/purcheseInfo/purcheseInfo.js @@ -0,0 +1,21 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getPurcheseInfo = createAsyncThunk("getPurcheseInfo", async () => { + return await axiosInstanceData.get(`${apiUrl}/UserPurchaseHistory`); +}); + + +export const getPurcheseInfoCount = createAsyncThunk("getPurcheseInfo", async () => { + return await axiosInstanceData.get(`${apiUrl}/UserPurchaseHistory/Count`); +}); + + +export const getPurcheseInfoFilter = createAsyncThunk("getPurcheseInfoFilter", async (data) => { + return await axiosInstanceData.get(`${apiUrl}/UserPurchaseHistory?type=${data}`); +}); + + + diff --git a/src/features/signInPage/signInPage.js b/src/features/signInPage/signInPage.js new file mode 100644 index 0000000..bb87df2 --- /dev/null +++ b/src/features/signInPage/signInPage.js @@ -0,0 +1,120 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import axios from "axios"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; +const subDirectory = import.meta.env.ENV_API_URL + + +export const GenerateLogout = createAsyncThunk('signInPage/GenerateLogout', async ({ UserId,status }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.put('/Logout',{ "UserId": UserId,"Generate": status,"RequestMode":"DW" }) + } +}) +export const checkSession = createAsyncThunk('signInPage/checkSession', async ({ UserId,SessionId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/UserSessionId?UserId=${UserId}&SessionId=${SessionId}`) + } +}) +export const getUserData = createAsyncThunk('signInPage/getUserData', async ({ MobileNo,deviceId }) => { + if (MobileNo != null && MobileNo != undefined) { + return await axiosInstanceData.get(`/user?MobileNo=${MobileNo}&deviceId=${deviceId}`) + } +}) +export const verifyUserLoginPassword = createAsyncThunk('signInPage/verifyUserLogin', async ({ MobileNo, Password, IP, Browser, Version, OS, LoginType,AnotherWindow,deviceId,SessionId}) => { + if (MobileNo != null && MobileNo != undefined && Password != null && Password != undefined && AnotherWindow != undefined ) { + return await axiosInstanceData.get(`/login?UserName=${MobileNo}&Password=${Password}&IP=${IP}&Browser=${Browser}&Version=${Version}&OS=${OS}&LoginType=${LoginType}&AnotherWindow=${AnotherWindow}&RequestMode=DW&deviceId=${deviceId}&SessionId=${SessionId}`) + } +}) + +export const verifyUserLoginPin = createAsyncThunk('signInPage/verifyUserLogin', async ({ MobileNo, Pin, IP, Browser, Version, OS, LoginType,AnotherWindow,deviceId,SessionId}) => { + if (MobileNo != null && MobileNo != undefined && Pin != null && Pin != undefined && AnotherWindow != undefined) { + return await axiosInstanceData.get(`/login?UserName=${MobileNo}&Pin=${Pin}&IP=${IP}&Browser=${Browser}&Version=${Version}&OS=${OS}&LoginType=${LoginType}&AnotherWindow=${AnotherWindow}&RequestMode=DW&deviceId=${deviceId}&SessionId=${SessionId}`) + } +}) +export const sendOtp = createAsyncThunk('signInPage/verifyOTP', async ({ MobileNo }) => { + return await axiosInstanceData.post(`/verifyOTP`, { "UserName": MobileNo}) + +}) +export const sendOtpMobileNo = createAsyncThunk('signInPage/sendOtpMobileNo', async ({ MobileNo }) => { + return await axiosInstanceData.post('/verifyOTP/getOTP', { "UserName": MobileNo, "Type": "N" }) + +}) +export const setUser = createAsyncThunk('signInPage/setUser', async ({ MobileNo,deviceId }) => { + return await axiosInstanceData.post('/verifyOTP/setUser', { "UserName": MobileNo, "Type": "N","RequestMode":"DW","deviceId":deviceId}) + +}) +export const VerifyOtp = createAsyncThunk('signInPage/AccessTokenByOTP', async ({ MobileNo,OTP, IP, Browser, Version, OS, LoginType,deviceId,SessionId }) => { + if(MobileNo != null && MobileNo != undefined && OTP != null && OTP != undefined){ + return await axiosInstanceData.get(`/AccessTokenByOTP?userName=${MobileNo}&OTP=${OTP}&IP=${IP}&Browser=${Browser}&Version=${Version}&OS=${OS}&LoginType=${LoginType}&RequestMode=DW&deviceId=${deviceId}&SessionId=${SessionId}`) + } +}) +export const getAppAccess = createAsyncThunk('homePage/getAppAccess', async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?UserId=${UserId}&Type=UC`) + } +}) +export const getuserAppMap = createAsyncThunk('signInPage/getuserAppMap', async ({ UserId }) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}`) + } + +}) +export const getAppName = createAsyncThunk('AppName/getAppName', async ({ AppId }) => { + if (AppId != null && AppId != undefined) { + return await axios.get(`${subDirectory}/application?AppId=${AppId}`) + } +}) + +export const getAuthorizedSession = createAsyncThunk('AuthorizedSession/getAuthorizedSession', async ({ UserId,SessionId }) => { + console.log("getAuthorizedSession",UserId,SessionId) + if (UserId != null && UserId != undefined && SessionId != null && SessionId != undefined) { + console.log("getAuthorizedSession1",UserId,SessionId) + return await axios.get(`${subDirectory}/AuthorizedSession?UserId=${UserId}&SessionId=${SessionId}`) + // return await axiosInstanceData.get(`/AuthorizedSession?UserId=${UserId}&SessionId=${SessionId}`) + } +}) + +// export const getAuthorizedSession = createAsyncThunk('AuthorizedSession/getAuthorizedSession', async ({ UserId, SessionId, Mobileno }) => { +// if (UserId != null && UserId != undefined && SessionId != null && SessionId != undefined) { +// try { +// const response = await axios.get(`${subDirectory}/AuthorizedSession`, { +// headers: { +// 'Authorization': `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9`, // Add the Authorization header +// 'Mobileno': Mobileno, // Add the Mobileno header +// }, +// params: { +// UserId, +// SessionId +// } +// }); +// console.log("responseresponse",response) +// return response; // Return the response data from the API +// } catch (error) { +// console.error("Error fetching authorized session:", error); +// throw error; // You can throw an error here to handle it in the thunk +// } +// } +// }); + +const initialState = { + UserData: [] +} + + +const signInPageSlice = createSlice({ + name: 'signInPage', + initialState, + extraReducers: builder => { + builder.addCase(getUserData.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode === 1) { + state.UserData = action?.payload?.data?.data + } else { + state.UserData = [] + } + }) + } + +}) +export const getUserDataSelector = state => state.signInPage.UserData + +export default signInPageSlice.reducer; + diff --git a/src/features/signinDetails/signinDetails.js b/src/features/signinDetails/signinDetails.js new file mode 100644 index 0000000..3768efa --- /dev/null +++ b/src/features/signinDetails/signinDetails.js @@ -0,0 +1,69 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +// export const getSigninDetails = createAsyncThunk('signinDetails/getSigninDetails', async (data) => { + +// if (data?.Fromdate != null && data?.Fromdate != undefined && data?.Todate != null && data?.Todate != undefined) { +// return await axiosInstanceData.get(`/UserLoginLog?FromDate=${data?.Fromdate}&ToDate=${data?.Todate}`) +// } +// else{ + +// return await axiosInstanceData.get(`/UserLoginLog`) +// } +// }) +export const getSigninDetails = createAsyncThunk('signinDetails/getSigninDetails', async (data) => { + + // if (data?.Fromdate != null && data?.Fromdate != undefined && data?.Todate != null && data?.Todate != undefined) { + // return await axiosInstanceData.get(`/UserLoginLog?FromDate=${data?.Fromdate}&ToDate=${data?.Todate}`) + // } + if(data?.role != null && data?.role != undefined && data?.pageNumber) { + return await axiosInstanceData.get(`/UserLoginLog?pageNumber=${data?.pageNumber}&role=${data?.role}`) + + + } + else { + + return await axiosInstanceData.get(`/UserLoginLog?pageNumber=${data?.pageNumber}`) + } +}) +export const getSigninDetailswithUserId = createAsyncThunk('signinDetails/getSigninDetails', async ({ Fromdate,Todate, userId}) => { + + + if (Fromdate != null && Fromdate != undefined && Todate != null && Todate != undefined && userId != null && userId != undefined) { + return await axiosInstanceData.get(`/UserLoginLog?FromDate=${Fromdate}&ToDate=${Todate} &userId=${userId}`) + } + + // else + else if (userId != null && userId != undefined ) { + return await axiosInstanceData.get(`/UserLoginLog?userId=${userId}`) + } + // else { + + // return await axiosInstanceData.get(`/UserLoginLog?pageNumber=${data?.pageNumber}`) + // } +}) +export const getOnlineUserTracking = createAsyncThunk( + "feature/getOnlineUserTracking", + async (data) => { + return await axiosInstanceData.get(`/OnlineUserTracking?pageNumber=${data?.pageNumber}`); + } +); + +export const getUserOtp = createAsyncThunk('signinDetails/getUserOtp',async ({ AppId, BranchId, CompId, userTypeName, pageNumber }) => { + const queryParams = new URLSearchParams(); + + if (AppId) queryParams.append("AppId", AppId); + if (BranchId) queryParams.append("BranchId", BranchId); + if (CompId) queryParams.append("CompId", CompId); + if (userTypeName) queryParams.append("userTypeName", userTypeName); + if (pageNumber) queryParams.append("pageNumber", pageNumber); + + return await axiosInstanceData.get(`/UserOtp?${queryParams.toString()}`); + } +); + + +export const PostUserOtp = createAsyncThunk('signinDetails/PostUserOtp', async (postData) => { + + return await axiosInstanceData.post('/VerifyOtp', postData) +}) \ No newline at end of file diff --git a/src/features/superAdminAccess/superAdminAccess.js b/src/features/superAdminAccess/superAdminAccess.js new file mode 100644 index 0000000..02d5397 --- /dev/null +++ b/src/features/superAdminAccess/superAdminAccess.js @@ -0,0 +1,74 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +// POST request for creating new Super Admin User Access +export const postSuperAdminUserAccess = createAsyncThunk( + "superAdminAccess/postSuperAdminUserAccess", + async (postData) => { + + return await axiosInstanceData.post('/SuperAdminUserAccess', postData); + } +); + +// GET request for fetching Super Admin User Access by UserId +export const getSuperAdminUserAccess = createAsyncThunk( + "superAdminAccess/getSuperAdminUserAccess", + async ({ UserId }) => { + return await axiosInstanceData.get(`/SuperAdminUserAccess?userId=${UserId}`); + } + + + +); + +export const getSuperAllAdminUserAccess = createAsyncThunk("superAdminAccess/getSuperAllAdminUserAccess", async () => { + return await axiosInstanceData.get(`/SuperAdminUserAccess`); + +} + + + +); + +// PUT request for updating Super Admin User Access +export const putSuperAdminUserAccessData = createAsyncThunk( + "superAdminAccess/putSuperAdminUserAccessData", + async (putData) => { + + return await axiosInstanceData.put('/SuperAdminUserAccess', putData); + } +); + +// GET request to fetch Super Admin User +export const getSadminUser = createAsyncThunk( + "moduleAccess/getSadminUser", + async ({ UserType = "Super Admin User" }) => { + return await axiosInstanceData.get(`/login?Type=${UserType}`); + } +); + +const initialState = { + SuperAdminUserAccessData: [], + loading: false, + error: null, +}; + +const SuperAdminUserAccessSlice = createSlice({ + name: 'superAdminUserAccess', + initialState, + extraReducers: (builder) => { + builder.addCase(getSuperAdminUserAccess.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.SuperAdminUserAccessData = action?.payload?.data?.data?.[0]?.SuperAdminUserAccessDetails || []; + } else { + state.SuperAdminUserAccessData = []; + } + state.loading = false; + }) + + }, +}); + +export const SuperAdminUserAccessDataSelector = state => state?.superAdminUserAccess?.SuperAdminUserAccessData; + +export default SuperAdminUserAccessSlice.reducer; diff --git a/src/features/tax/tax.js b/src/features/tax/tax.js new file mode 100644 index 0000000..55669e0 --- /dev/null +++ b/src/features/tax/tax.js @@ -0,0 +1,47 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + + + +export const getAdmin = createAsyncThunk('tax/adminTax', async () => { + return await axiosInstanceData.get('/adminTax?ActiveStatus=A') +}) + +export const postTax = createAsyncThunk('tax/postFeature', async (postData) => { + + return await axiosInstanceData.post('/adminTax', postData) +}) + +export const deleteTax = createAsyncThunk('tax/deleteTax', async (deleteData) => { + return await axiosInstanceData.delete(`/adminTax?TaxId=${deleteData?.TaxId}&ActiveStatus=${deleteData?.ActiveStatus}&UpdatedBy=${deleteData?.UpdatedBy}`) +}) + + +const initialState = { + taxData: [] +} + +const taxSlice = createSlice({ + name:'tax', + initialState, + extraReducers: builder => { + builder.addCase(getAdmin.fulfilled, (state, action)=> { + if (action?.payload?.status) { + state.taxData = action?.payload?.data?.data + } + else { + state.taxData = [] + } + + }) + } + +}) + +export const taxSelector = state => state.taxData?.taxData + + + + +export default taxSlice.reducer; + diff --git a/src/features/testimonials/testimonials.js b/src/features/testimonials/testimonials.js new file mode 100644 index 0000000..6cba691 --- /dev/null +++ b/src/features/testimonials/testimonials.js @@ -0,0 +1,51 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getAdminNames = createAsyncThunk('login/getAdminNames', async () => { + return await axiosInstanceData.get('/login?Type=Admin') +}) + +export const getApplications = createAsyncThunk('userAppMap/getApplications', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/userAppMap?UserId=${UserId}`) + + } +}) + +export const getActiveAppCompanyData = createAsyncThunk('appAccess/getActiveAppCompanyData', async (AppAccessData) => { + if (AppAccessData?.AppId != null && AppAccessData?.AppId != undefined && AppAccessData?.UserId != null && AppAccessData?.UserId != undefined) { + return await axiosInstanceData.get(`/appAccess?AppId=${AppAccessData?.AppId}&UserId=${AppAccessData?.UserId}&ActiveStatus=A`) + } + +}) + + +export const PostCustomerTestimonials = createAsyncThunk('company/postCompanyData', async (postData) => { + if(postData){ + + return await axiosInstanceData.post('/CustomerTestimonials', postData) + + } +}) + + +export const getCustomertestimonials= createAsyncThunk('appAccess/getActiveAppCompanyData', async () => { + + return await axiosInstanceData.get(`/CustomerTestimonials`) + +}) + + +export const PutCustomerTestimonials = createAsyncThunk('company/postCompanyData', async (putData) => { + if(putData){ + + return await axiosInstanceData.put('/CustomerTestimonials', putData) + + } +}) + + +export const deleteCustomertestimonials = createAsyncThunk('company/deleteCompanyData', async (deleteData) => { + return await axiosInstanceData.delete(`/CustomerTestimonials?activeStatus=${deleteData?.activeStatus}&uniqueId=${deleteData?.uniqueId}&updatedBy=${deleteData?.updatedBy}`) + +}) diff --git a/src/features/themeChange/themeChange.js b/src/features/themeChange/themeChange.js new file mode 100644 index 0000000..4f4a306 --- /dev/null +++ b/src/features/themeChange/themeChange.js @@ -0,0 +1,274 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; + +import { axiosInstanceData } from "../AuthenticationTokens/AuthenticationToken"; +import axios from "axios"; + +const apiUrl = import.meta.env.ENV_API_URL; + +export const getAllApplications = createAsyncThunk( + "theme/getAllApplications", + async () => { + return axios.get(`${apiUrl}/application?ActiveStatus=A`); + } +); + +export const getColors = createAsyncThunk("theme/getColors", async () => { + return axiosInstanceData.get("/color?ActiveStatus=A"); +}); + +export const getFonts = createAsyncThunk("theme/getFonts", async () => { + return axiosInstanceData.get("/font?ActiveStatus=A"); +}); + +export const getTemplate = createAsyncThunk( + "theme/getTemplate", + async (AppName) => { + if (AppName != null && AppName != undefined) { + return axiosInstanceData.get(`/template?AppName=${AppName}`); + } + } +); + +export const postColorData = createAsyncThunk( + "theme/postColorData", + async (postData) => { + return await axiosInstanceData.post("/color", postData); + } +); + +export const postFontData = createAsyncThunk( + "theme/postFontData", + async (postData) => { + return await axiosInstanceData.post("/font", postData); + } +); + +export const getComponentName = createAsyncThunk( + "Component/component", + async () => { + return await axiosInstanceData.get("/component"); + } +); + +export const postOverAllData = createAsyncThunk( + "theme/postOverAllData", + async (postData) => { + return await axiosInstanceData.post("/template", postData); + } +); + +export const putOverAllData = createAsyncThunk( + "theme/putOverAllData", + async (putData) => { + return await axiosInstanceData.put("/template", putData); + } +); + +const initialState = { + allApplications: [], + allColors: [], + allFonts: [], + CurrentColor: { + darkColor: "#37943C", + lightColor: "#b2eb9b", + }, + CurrentText: { + head: "Gilroy", + para: "Poppins", + }, + OverviewData: [], + Overview1Img: "", + Overview2Img: "", + Overview2Video: null, + FaqDetails: [], + navList1: [], + SelectedApplication: null, + AppName: "", + FeatureList: [], + FooterDetails: [], + templateData: [], + colorId: null, + fontId: null, + PricingData: [], + PageAppId: "", + showCaseDetails: [], + appViewDetails: [], + testimonialDetails: [], + CtaData: [], +}; + +const ThemeSlice = createSlice({ + name: "theme", + initialState, + reducers: { + changeShowCaseDetails: (state, action) => { + state.showCaseDetails = action?.payload; + }, + changeAppViewDetails: (state, action) => { + state.appViewDetails = action?.payload; + }, + changeTestimonialDetails: (state, action) => { + state.testimonialDetails = action?.payload; + }, + changeCurrentColor: (state, action) => { + const { color } = action?.payload + state.CurrentColor = color + }, + changeCurrentText: (state, action) => { + const { text } = action?.payload + state.CurrentText = text + }, + changeOverviewData: (state, action) => { + const { postData } = action?.payload + state.OverviewData = postData + }, + changeOverview1Img: (state, action) => { + const { overview1Img } = action?.payload + state.Overview1Img = overview1Img + }, + changeOverview2Img: (state, action) => { + const { overview2Img } = action?.payload + state.Overview2Img = overview2Img + }, + changeOverview2Video: (state, action) => { + const { overview2Video } = action?.payload + state.Overview2Video = overview2Video + }, + changeFaqDetails: (state, action) => { + const data = action?.payload + state.FaqDetails = data + }, + changeNavList1: (state, action) => { + const navList = action?.payload + state.navList1 = navList + }, + changeSelectedApplication: (state, action) => { + const AppId = action?.payload + state.SelectedApplication = AppId + }, + changeFeatureList: (state, action) => { + const { featureList } = action?.payload + state.FeatureList = featureList + }, + changeFooterDetails: (state, action) => { + state.FooterDetails = action?.payload; + }, + + changeCtaDetails: (state, action) => { + state.CtaData = action?.payload; + }, + changePricingData: (state, action) => { + const { postData } = action?.payload + state.PricingData = postData + }, + changePageAppId: (state, action) => { + state.PageAppId = action?.payload + }, + emptyTemplateData: (state, action) => { + state.SelectedApplication = null + state.AppName = '' + state.templateData = [] + }, + emptyPostData: (state, action) => { + state.navList1 = [] + state.OverviewData = [] + state.FeatureList = [] + state.PricingData = [] + state.FaqDetails = [] + state.FooterDetails = [] + state.CurrentColor = { darkColor: '#37943C', lightColor: '#b2eb9b' } + state.CurrentText = { head: 'Gilroy', para: 'Poppins' } + state.Overview1Img = "" + state.Overview2Img = "" + state.Overview2Video = null + + } + + }, + extraReducers: (builder) => { + builder.addCase(getAllApplications.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode == 1) { + state.allApplications = action?.payload?.data?.data + } + + }), + builder.addCase(getColors.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode == 1) { + state.allColors = action?.payload?.data?.data + } + }), + builder.addCase(getFonts.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode == 1) { + state.allFonts = action?.payload?.data?.data + } + + }), + builder.addCase(getTemplate.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode == 1) { + let tempDic = {} + state.SelectedApplication = { AppId: action?.payload?.data?.data[0]?.AppId } + state.AppName = action?.payload?.data?.data[0]?.AppName + state.CurrentColor = { darkColor: action?.payload?.data?.data[0]?.DarkColor, lightColor: action?.payload?.data?.data[0]?.LightColor } + state.CurrentText = { head: action?.payload?.data?.data[0]?.HeadFont, para: action?.payload?.data?.data[0]?.ParaFont } + state.fontId = action?.payload?.data?.data[0]?.FontId + state.colorId = action?.payload?.data?.data[0]?.ColorId + for (let eachData of action?.payload?.data?.data[0]?.ComponentDetails) { + tempDic[eachData.SectionName] = [eachData.ComponentName, eachData.FieldDetails] + } + state.templateData = tempDic + } else { + state.templateData = {} + } + }) + } +}) + + +export const { + changeCurrentColor, + changeCurrentText, + changeOverviewData, + changeOverview1Img, + changeOverview2Img, + changeOverview2Video, + changeFaqDetails, + changeNavList1, + changeSelectedApplication, + changeFeatureList, + changeFooterDetails, + changeCtaDetails, + changePricingData, + changePageAppId, + emptyTemplateData, + emptyPostData, + changeShowCaseDetails, + changeAppViewDetails, + changeTestimonialDetails, +} = ThemeSlice.actions; + +export const globalshowCaseDetails = (state) => state.theme?.showCaseDetails; +export const globalappViewDetails = (state) => state.theme?.appViewDetails; +export const globaltestimonialDetails = (state) => state.theme?.testimonialDetails; +export const changeCurrentColorValue = (state) => state.theme?.CurrentColor +export const changeCurrentTextValue = (state) => state.theme?.CurrentText +export const getAllApplicationsData = (state) => state.theme?.allApplications +export const getColorsData = (state) => state.theme?.allColors +export const getFontsData = (state) => state.theme?.allFonts +export const overviewPostData = (state) => state.theme?.OverviewData +export const overview1Img = (state) => state.theme?.Overview1Img +export const overview2Img = (state) => state.theme?.Overview2Img +export const overview2Video = (state) => state.theme?.Overview2Video +export const navList1Selector = (state) => state.theme?.navList1 +export const FaqDetailsSelector = (state) => state?.theme?.FaqDetails +export const selectedApplication = (state) => state?.theme?.SelectedApplication +export const selectedApplicationName = (state) => state?.theme?.AppName +export const selectedFontId = (state) => state?.theme?.fontId +export const selectedColorId = (state) => state?.theme?.colorId +export const selectedFeatureListSelector = (state) => state?.theme?.FeatureList +export const getFooterDetails = (state) => state?.theme?.FooterDetails +export const getPageAppId = (state) => state?.theme?.PageAppId +export const pricingPostData = (state) => state.theme.PricingData +export const getTemplateData = (state) => state.theme.templateData +export const getCtaDatas = (state) => state.theme.CtaData; + +export default ThemeSlice.reducer; \ No newline at end of file diff --git a/src/features/ticketsDetails/ticketsDetails.js b/src/features/ticketsDetails/ticketsDetails.js new file mode 100644 index 0000000..d1a2fbb --- /dev/null +++ b/src/features/ticketsDetails/ticketsDetails.js @@ -0,0 +1,47 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +export const getTicketMaster = createAsyncThunk( + "ticketDetails/getTicketMaster", + async ({ AppId, BranchId, CompId, status, pageNumber }) => { + const params = new URLSearchParams(); + + if (AppId) params.append("appId", AppId); + if (BranchId) params.append("branchId", BranchId); + if (CompId) params.append("compId", CompId); + if (status) params.append("status", status); + params.append("pageNumber", pageNumber); + + return await axiosInstanceData.get(`/TicketMaster?${params.toString()}`); + } +); + + +export const getBranch = createAsyncThunk('ticketDetails/getBranch', async ({ AppId,CompId }) => { + if( AppId != null && AppId != undefined && CompId != null && CompId != undefined){ + return await axiosInstanceData.get(`/branch?appId=${AppId}&compId=${CompId}`) + } +}) + +export const getCompany = createAsyncThunk('ticketDetails/getCompany', async ({ AppId }) => { + if( AppId != null && AppId != undefined ){ + return await axiosInstanceData.get(`/Company?appId=${AppId}&activeStatus=A`) + } +}) + +export const gettypeStatus= createAsyncThunk('ticketDetails/getConfigurationType', async () => { + return await axiosInstanceData.get(`/ConfigMaster?typeName=Ticket Status`) +}) +export const postTicketmaster= createAsyncThunk('ticketDetails/getConfigurationType', async (postData) => { + + return await axiosInstanceData.post('/TicketMaster',postData) +}) + +export const putTicketmaster= createAsyncThunk('ticketDetails/getConfigurationType', async (putData) => { + + return await axiosInstanceData.put('/TicketMaster',putData) +}) + +export const getStatusCount= createAsyncThunk('ticketDetails/getStatusCount', async () => { + return await axiosInstanceData.get(`/TicketLogHistory/Count`) +}) diff --git a/src/features/upload/upload.js b/src/features/upload/upload.js new file mode 100644 index 0000000..13bf775 --- /dev/null +++ b/src/features/upload/upload.js @@ -0,0 +1,17 @@ +import { createAsyncThunk } from "@reduxjs/toolkit"; +import axios from "axios"; +import { axiosInstanceData } from '../AuthenticationTokens/AuthenticationToken'; +const uploadApiUrl = import.meta.env.ENV_IMAGE_UPLOAD_API_URL; + + +export const uploadImage = createAsyncThunk('upload/uploadImage', async (file) => { + let formdata = new FormData(); + formdata.append("file", file); + return await axiosInstanceData.post(`${uploadApiUrl}/upload`, formdata) +}) + +export const uploadApk = createAsyncThunk('upload/ApkUpload', async (file) => { + let formdata = new FormData(); + formdata.append("file", file); + return await axiosInstanceData.post(`${uploadApiUrl}/upload/ApkUpload`, formdata) +}) \ No newline at end of file diff --git a/src/features/userAccount/userAccount.js b/src/features/userAccount/userAccount.js new file mode 100644 index 0000000..e57e518 --- /dev/null +++ b/src/features/userAccount/userAccount.js @@ -0,0 +1,64 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import {axiosInstanceData} from '../AuthenticationTokens/AuthenticationToken'; + +export const getUserDataByUserId = createAsyncThunk('userAccount/getUserData', async ({ userId }) => { + if(userId != null && userId != undefined){ + return axiosInstanceData.get(`/user?UserId=${userId}`) + } +}) + +export const updateUserData = createAsyncThunk('userAccount/updateUserData', async (putData) => { + + return axiosInstanceData.put('/user/updateUserProfile', putData) +}) + +export const putPassword = createAsyncThunk('password/putPriceType', async (putData) => { + + return await axiosInstanceData.put('/user/setPassword', putData) +}) +export const putPin = createAsyncThunk('password/putPriceType', async (putData) => { + + return await axiosInstanceData.put('/user/setPin', putData) +}) + +export const getPassword = createAsyncThunk('password/getPassword', async (data) => { + if (data?.UserId != null && data?.UserId != undefined && data?.ActiveStatus != null && data?.ActiveStatus != undefined) { + return await axiosInstanceData.get(`/user?UserId=${data?.UserId}&ActiveStatus=${data?.ActiveStatus}`) + } +}) + +export const postReferralSetup = createAsyncThunk('referral/postReferralSetup', async (postData) => { + + return await axiosInstanceData.post('/ReferralSetup', postData) +}) + + +const initialState = { + userData: [] +} + +const userAccountSlice = createSlice({ + name: 'userAccount', + initialState, + reducers: { + changeUserData: (state, action) => { + const { userData } = action?.payload + state.userData = { ...state.userData, ...userData } + } + }, + extraReducers: builder => { + builder.addCase(getUserDataByUserId.fulfilled, (state, action) => { + if (action?.payload?.data?.statusCode) { + state.userData = action?.payload?.data?.data[0] + } + }) + } +}) + +export const userDataByUserId = state => state.userAccount ? state.userAccount.userData : initialState.userData; + +export const { changeUserData } = userAccountSlice.actions; + +export default userAccountSlice.reducer; + + diff --git a/src/features/userPage/userPage.js b/src/features/userPage/userPage.js new file mode 100644 index 0000000..e016eb5 --- /dev/null +++ b/src/features/userPage/userPage.js @@ -0,0 +1,120 @@ +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { axiosInstanceEMAIL_SMSData, axiosInstanceData,axiosRetailInstanceData } from '../AuthenticationTokens/AuthenticationToken'; + +export const getFilterUserDataBasedOnLocation = createAsyncThunk('user/getFilterUserDataBasedOnLocation', async (data) => { + return await axiosInstanceData.get(`/User/UserLocation?branchId=${data.branchId}&latitude=${data.latitude}&longitude=${data.longitude}`) +}) + +export const getUserData = createAsyncThunk('user/getUserData', async () => { + return await axiosInstanceData.get('/user?UserType=E') +}) +export const getAllUserData = createAsyncThunk('user/getAllUserData', async (type) => { + return await axiosInstanceData.get(`/user?UserType=${type}`) +}) + +export const getBasedUserData = createAsyncThunk('user/getUserData', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/user?UserType=A&UserId=${UserId}`) + } +}) +export const getBasedAdminUserData = createAsyncThunk('user/getBasedAdminUserData', async (UserId) => { + if (UserId != null && UserId != undefined) { + return await axiosInstanceData.get(`/user?UserType=A&UserId=${UserId}`) + } +}) + +export const postUserData = createAsyncThunk('user/postUserData', async (postData) => { + + return await axiosInstanceData.post('/user', postData) +}) + +export const putUserData = createAsyncThunk('user/putUserData', async (putData) => { + + return await axiosInstanceData.put('/user', putData) +}) + +export const deleteUserData = createAsyncThunk('user/deleteUserData', async (deleteData) => { + + return await axiosInstanceData.delete('/user', { params: deleteData }) +}) +export const putResetUserData = createAsyncThunk('user/putResetUserData', async (putData) => { + + return await axiosInstanceData.put('/User/ResetPinPassword', putData) +}) + +export const postResetPinPasswordSms = createAsyncThunk('user/postResetPinPasswordSms', async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post(`/ResetPinPasswordSms`, postData) +}) +export const postResetPinPasswordEmail = createAsyncThunk('user/postResetPinPasswordEmail', async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post(`/ResetPinPasswordEmail`, postData) +}) + +export const sendSms = createAsyncThunk("sendSms/sendSms", async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post("/OTPSms", postData); +}); +export const sendEmail = createAsyncThunk("OTPEmail/OTPEmail", async (postData) => { + + return await axiosInstanceEMAIL_SMSData.post("/OTPEmail", postData); +}); + +export const checkUserExistsAsEmployeeInOther = createAsyncThunk("UserExistCheck/checkUserExistsAsEmployeeInOther", async (data) => { + if (data?.MobileNo && data?.BranchId) { + return await axiosInstanceData.get(`/UserRelievInfo?mobileNo=${data?.MobileNo}&BranchId=${data?.BranchId}`); + } +}); + +export const postReleiveRequest = createAsyncThunk("postReleiveRequest/postReleiveRequest", async (data) => { + if (data) { + return await axiosInstanceData.post(`/UserRelievInfo`, data); + } +}); + +export const getupiotp = createAsyncThunk('getupiotp', async (data) => { + if ( + data?.MobileNo != null && + data?.MobileNo != undefined && + data?.OTP != null && + data?.OTP != undefined + ) { + return await axiosRetailInstanceData.get( + `/upiVerify?MobileNo=${data?.MobileNo}&OTP=${data?.OTP}` + ); + } +}); + +export const sendupiotp = createAsyncThunk('sendupiotp', async (postData) => { + return await axiosRetailInstanceData.post(`/upiVerify`, postData); +}); + + + +const initialState = { + userData: [], +} + +const userSlice = createSlice({ + name: 'user', + initialState, + extraReducers: builder => { + builder.addCase(getUserData.fulfilled, (state, action) => { + if (action?.payload?.status) { + state.userData = action?.payload?.data?.data + } + else { + state.userData = [] + } + + }) + } + +}) + +export const userDataSelector = state => state.userPage?.userData + + + + +export default userSlice.reducer; \ No newline at end of file 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..e425e01 --- /dev/null +++ b/src/fonts/Gilroy/stylesheet.css @@ -0,0 +1,249 @@ +@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; +} + + + +/* New Font NeueMontreal */ + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-Regular.otf') format('opentype'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-Bold.otf') format('opentype'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-BoldItalic.otf') format('opentype'); + font-weight: 700; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-Italic.otf') format('opentype'); + font-weight: 400; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-Light.otf') format('opentype'); + font-weight: 300; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-LightItalic.otf') format('opentype'); + font-weight: 300; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-Medium.otf') format('opentype'); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'NeueMontreal'; + src: url('../Neue Montreal/NeueMontreal-MediumItalic.otf') format('opentype'); + font-weight: 500; + font-style: italic; + font-display: swap; +} + + \ No newline at end of file diff --git a/src/fonts/Neue Montreal/Neue Montreal.zip b/src/fonts/Neue Montreal/Neue Montreal.zip new file mode 100644 index 0000000..43c649c Binary files /dev/null and b/src/fonts/Neue Montreal/Neue Montreal.zip differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-Bold.otf b/src/fonts/Neue Montreal/NeueMontreal-Bold.otf new file mode 100644 index 0000000..a1c6974 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-Bold.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-BoldItalic.otf b/src/fonts/Neue Montreal/NeueMontreal-BoldItalic.otf new file mode 100644 index 0000000..798048d Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-BoldItalic.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-Italic.otf b/src/fonts/Neue Montreal/NeueMontreal-Italic.otf new file mode 100644 index 0000000..a8c17e7 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-Italic.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-Light.otf b/src/fonts/Neue Montreal/NeueMontreal-Light.otf new file mode 100644 index 0000000..4cc9587 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-Light.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-LightItalic.otf b/src/fonts/Neue Montreal/NeueMontreal-LightItalic.otf new file mode 100644 index 0000000..b0dd573 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-LightItalic.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-Medium.otf b/src/fonts/Neue Montreal/NeueMontreal-Medium.otf new file mode 100644 index 0000000..43030e8 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-Medium.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-MediumItalic.otf b/src/fonts/Neue Montreal/NeueMontreal-MediumItalic.otf new file mode 100644 index 0000000..78b2fc5 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-MediumItalic.otf differ diff --git a/src/fonts/Neue Montreal/NeueMontreal-Regular.otf b/src/fonts/Neue Montreal/NeueMontreal-Regular.otf new file mode 100644 index 0000000..0265060 Binary files /dev/null and b/src/fonts/Neue Montreal/NeueMontreal-Regular.otf differ diff --git a/src/fonts/wasted-vindey-cdnfonts/wasted-vindey-cdnfonts.zip b/src/fonts/wasted-vindey-cdnfonts/wasted-vindey-cdnfonts.zip new file mode 100644 index 0000000..ba385d0 Binary files /dev/null and b/src/fonts/wasted-vindey-cdnfonts/wasted-vindey-cdnfonts.zip differ diff --git a/src/fonts/wasted-vindey-cdnfonts/wasted-vindey.ttf b/src/fonts/wasted-vindey-cdnfonts/wasted-vindey.ttf new file mode 100644 index 0000000..a2b94b8 Binary files /dev/null and b/src/fonts/wasted-vindey-cdnfonts/wasted-vindey.ttf differ diff --git a/src/fonts/wasted-vindey-serif-font/Wasted Vindey.otf b/src/fonts/wasted-vindey-serif-font/Wasted Vindey.otf new file mode 100644 index 0000000..3ebb05b Binary files /dev/null and b/src/fonts/wasted-vindey-serif-font/Wasted Vindey.otf differ diff --git a/src/fonts/wasted-vindey-serif-font/Wasted Vindey.ttf b/src/fonts/wasted-vindey-serif-font/Wasted Vindey.ttf new file mode 100644 index 0000000..a2b94b8 Binary files /dev/null and b/src/fonts/wasted-vindey-serif-font/Wasted Vindey.ttf differ diff --git a/src/fonts/wasted-vindey-serif-font/wasted-vindey-serif-font.zip b/src/fonts/wasted-vindey-serif-font/wasted-vindey-serif-font.zip new file mode 100644 index 0000000..d014466 Binary files /dev/null and b/src/fonts/wasted-vindey-serif-font/wasted-vindey-serif-font.zip differ diff --git a/src/hooks/useToast.js b/src/hooks/useToast.js new file mode 100644 index 0000000..375c185 --- /dev/null +++ b/src/hooks/useToast.js @@ -0,0 +1,14 @@ +import { useState } from 'react'; + +export const useToast = () => { + const [show, setShow] = useState(false); + const [msg, setMsg] = useState(''); + + const toast = (message) => { + setMsg(message); + setShow(true); + setTimeout(() => setShow(false), 3000); + }; + + return { toast, show, msg }; +}; \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..4b9268d --- /dev/null +++ b/src/index.css @@ -0,0 +1,543 @@ +:root { + + /* component variables */ + + --INPUT_FIELD_WIDTH: min(60vw, 250px); + + /* application common variables */ + --HEADING_COLOR: #000000; + --HEADING_FONT_FAMILY: 'Gilroy'; + + --PARA_FONT_FAMILY: 'Poppins'; + --PARA_COLOR: #3F3F3F; + + --PRIMARY_BUTTON_BG_COLOR: #8F1E78; + --PRIMARY_BUTTON_COLOR: #FFFFFF; + --PRIMARY_BUTTON_BORDER_RADIUS: 6px; + + --SECONDRY_BUTTON_BG_COLOR: white; + --SECONDRY_BUTTON_COLOR: #000000; + --SECONDRY_BUTTON_BORDER_RADIUS: 25.6853px; + + --THIRD_BUTTON_BG_COLOR: #060606; + --THIRD_BUTTON_COLOR: #EFEFEF; + --THIRD_BUTTON_BORDER_RADIUS: 6.53329px; + + --BOX_SHADOW_LEVEL1: 0px 4px 15px rgba(0, 0, 0, 0.1); + --BOX_SHADOW_LEVEL2: 0px 4px 25px rgba(0, 0, 0, 0.2); + --BOX_SHADOW_LEVEL3: 0px 5.25331px 26.3077px rgba(0, 0, 0, 0.08); + + --CARD_BG_COLOR: rgba(255, 255, 255, 0.6); + --CARD_COLOR: #000000; + --CARD_FONT_FAMILY: 'Gilroy-Medium'; + --CARD_BORDER_RADIUS: 10px; + + --ANCHOR_FONT_FAMILY: 'Manrope'; + --ANCHOR_COLOR: #314259; + + --BUTTON_FONT_FAMILY: 'Gilroy-Medium'; + + --BREAD_CRUMB_PADDING: 1rem; + + --TABLE_PAGE_PADDING: 1rem; + + /* Page common funtion */ + --PAGE_BODY_BACKGROUND_COLOR: #E8ECF1; + + --SELECTED_COLOR: #52C41A; + + --ERROR_COLOR: #FF4D4F; + + --DEFAULT_SELECTED_COLOR: #1292EE; + + overflow-x: hidden; + +} + +* { +padding: 0px; +margin: 0px; +box-sizing: border-box; +} + +p { +font-family: VAR(--PARA_FONT_FAMILY); +} + +button { +font-family: var(--BUTTON_FONT_FAMILY); +} + + +header { +font-family: VAR(--HEADING_FONT_FAMILY); +} + +a { +font-family: var(--ANCHOR_FONT_FAMILY); +} + + +.ant-collapse { + /* width:clamp(55dvw,50dvw,50dvw); */ + /* width: min(100vw,572px); */ + font-style: normal; + font-weight: 600; + font-size: 15.2968px; + /* // line-height: 149.5%; + // color: #000000; + // padding: 0px 39px; */ +} + + +.ant-collapse-large >.ant-collapse-item >.ant-collapse-header { + padding: 16px 24px; + background: white; +} + +.ant-collapse-item-active > .ant-collapse-header { + box-sizing: border-box; + /* border: 0.3px solid #252222; */ + border-radius: 6px; +} + + + + +.Home-navbar { + position: sticky; + z-index: 2; + align-items: baseline; + justify-content: space-evenly; + align-items: center; + display: flex; + width: 100vw; + top:0rem; + left:0rem; + height:9vh; + margin: 0vw 0vh; + /* padding: 1vw 8vh; */ + font-size: 23px; + font-family: var(--HEADING_FONT_FAMILY); + /* font-weight: 550; */ + background-color:#ffffffa4; + backdrop-filter: blur(10px); + box-shadow: 0px 4px 150px rgba(0, 0, 0, 0.1); + +} + + + + +.extra_small_nav{ + margin:0vw 0vh; + width:70vw; + display: flex; + justify-content:space-around; + font-size: 13.2px; +} + +.extra_small_div{ + display: flex; + flex-wrap: wrap; + flex-direction: row; + row-gap: 0rem !important; + justify-content: space-around; + text-transform: uppercase; + align-items: center !important; +} + + +@media (min-width:279px) and (max-width: 999px) { + + + + .toggle-container{ + /* padding: 2vw 2vh !important; */ + display: flex !important; + position: fixed !important; + /* width: 100% !important; */ + /* display: none !important; */ + } + + .extra_small_nav{ + display: none !important; + } + .tgle-icons{ + display:flex; + width: 25%; + justify-content:space-around; + } + + .small-nav{ + opacity: 12% !important; + } + .extranav{ + display: none; + } + } + +@media (min-width: 390px) and (max-width: 498px) { + + .collapsed-menu{ + padding: 1vw 1vh; + } + +} + + +@media all and (max-width: 499px){ + + .Home-navbar { + display: none; + } + + .extranav{ + display: none; + } + + + .extra_small_div{ + font-size: 14px !important; + text-transform: uppercase; + } + +.extra_small_nav{ + margin:0vw 0vh; + width:70vw; + display: flex; + justify-content:space-around; + font-size: 13.2px; + } + + + + /* .ant-collapse { + width: 75vh !important; + } */ + + .content_container{ + +} +} + + +@media (max-width: 1024px){ + .Home-navbar{ + display: flex; + height: 50px; + align-items: center; + justify-content: space-between; + } +} + + +@media (min-width: 899px) and (max-width: 1072px){ + .Home-navbar { + /* display: none; */ + padding: 3rem 0rem !important; + } + + + .extranav{ + display: none; + } + + + .extra_small_div{ + font-size: 14px !important; + color: #000000; + font-family: var(--PARA_FONT_FAMILY); + } + +} + +@media (min-width: 500px) and (max-width: 600px) { + + .extra_small_nav{ + display: none; + } +} + + + + +/* // .logo { +// margin-right: 10px; +// } */ + +.menu-container { + display: flex; + justify-content: space-evenly; + flex-direction: row; + color:#000000 !important; + row-gap: 23rem; +} + +.toggle-container { + display:none; + top: 0; + flex-wrap: wrap; + flex-direction: row; + /* padding: 2vw 3vh; */ + width: 100vw; + align-items: center; + justify-content:space-between; + position:fixed; + z-index: 23; + background-color:#f7f7f7; + box-shadow: 0px 4px 150px rgba(0, 0, 0, 0.1); +} + +.tgle-icons{ + display:flex; + width: 25%; + justify-content:space-around; +} +.toggle-button { + cursor: pointer; + font-size: 16px; +} + + +.ant-collapse { + /* width: min(91vw, 780px); */ + /* width: 100% !important; */ + /* font-style: normal; */ + margin: 2vw 2vh; +} + +.Dept_side{ + margin: 2vw 4vh; + /* padding: 2vw 4vh; */ + width:40vw; + /* height: min(40vw, 700px); */ + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; +} + +.Acc_btn{ + + background-color: #000; + width:45vw; + height:7vh; + align-items: center; + font-size:14px; + display:flex; + border-radius:6px; + justify-content:center; + color:#fff; + cursor: pointer; + +} + +.collapsed-menu { + /* width: 100vw; + /* height:100vh; */ + + background-color:#31313154; + transition: 0.1s ease-out; + overflow-y: scroll; + overflow-x: hidden; + width: 100%; + height: 100vh; + position: fixed; + top: 4rem; + z-index: 1; + backdrop-filter: blur(10px); +} + +.anticon{ + /* display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: flex-end; */ + cursor: pointer; + +} + + +.ant-select-single.ant-select-show-arrow .ant-select-selection-item, .ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder { + padding-inline-end: 54px; + text-align: initial; + padding: 0.3vw; + font-size: 14px; + color: #626262; + font-weight: 400; + font-family: "Poppins", sans-serif; +} + + + +.ant-menu-light.ant-menu-horizontal >.ant-menu-item{ + margin: 1.5vw 1.4vh; + font-size: 2.6vh; + /* font-family: 'Poppins'; */ + font-family: var(--HEADING_FONT_FAMILY) !important; +} + +.ant-menu-light { + /* background: #fff !important; */ + border-radius: 12.9916px; + padding-inline: 0rem; + /* margin-inline: 1rem; */ +} + +.nav_right_items{ + display: flex; + justify-content: space-between +} +.ant-menu-title-content { + flex-direction: column; + display: flex; + /* align-items: center; */ + /* font-size: 14px; + font-weight: 400; */ + text-transform: uppercase; +} + +.ico{ + font-size:12px !important; + align-items: center; + margin: 0.4vw 0vh; +} + +.ico-menu{ + display: flex; + text-align: center; +} + .nav-btn { + font-size: 15px !important; + height: 54px; + /* text-transform: uppercase; */ + font-weight: 510; + letter-spacing: 0.1px; + border: none; + color: #11181c; + padding: 4px 0px; +} + +.nav-btn:hover { + font-size: 15px !important; + height: 54px; + /* text-transform: uppercase; */ + /* font-weight: 500; */ + letter-spacing: 0.1px; + border: none; + color: #0f67da; + padding: 4px 0px; +} + + + + + +.FreeAccBtn{ + width: 220px; + height:45px; + display:flex; + justify-content: center; + border-radius:6px; + /* background-color: #f0f0f0; */ + background-color: #8F1E78; + /* border: #000 solid 1.5px; */ + color: #ffffff; + font-weight: 550; + margin: 0.2vw 0vh; + font-size: 15px; + align-items: center; + align-content: center; + text-align: center; + transition-duration:0.20s; +} + +.FreeAccBtn:hover{ + width: 220px; + height:45px; + display:flex; + justify-content: center; + border-radius:6px; + background-color: #ffffff; + border: #8F1E78 solid 1.5px; + color: #8F1E78; + margin: 0.2vw 0vh; + font-size: 15px; + align-items: center; + align-content: center; + text-align: center; + text-decoration: none; + transition-duration:0.20s; +} + + +.sml_icons{ + display: flex; + align-items: space-around; + +} + + +/* '''''''''''''''''''''''''''''?'? */ + +/* ScrollBar */ + +::-webkit-scrollbar { + width: 2px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: #f1f1f1; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #999999; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + /* background: #8F1E78; */ +} + + +::-webkit-scrollbar { + display: none; +} + +/* EditorJS Custom Styles */ +.ce-toolbar__plus.custom-cursor-on-hover { + cursor: pointer !important; + transition: all 0.2s ease; +} + +.ce-toolbar__plus.custom-cursor-on-hover:hover { + transform: scale(1.1); + background: #3b82f6 !important; + color: white !important; +} + +.ce-block--selected .ce-block__content { + background: rgba(59, 130, 246, 0.1) !important; + border-radius: 8px; +} + +.codex-editor { + border-radius: 12px; + border: 1px solid #e5e7eb; +} + +.ce-toolbar__content { + max-width: none !important; +} + +.ce-popover { + border-radius: 12px !important; + box-shadow: 0 10px 25px rgba(0,0,0,0.15) !important; +} + + + + diff --git a/src/lib/seoConfig.js b/src/lib/seoConfig.js new file mode 100644 index 0000000..f55d3c2 --- /dev/null +++ b/src/lib/seoConfig.js @@ -0,0 +1,14 @@ +export const BASE_URL = 'https://pozo.app'; // Replace with your actual base URL +export const SITE = { + name: 'PozoApp', + twitterHandle: '@PozoApp', // Replace with your Twitter handle if available + locale: 'en_US', + defaultOg: '/og/home.jpg', // Path to default OG image +}; +// export const BASE_URL = 'https://pozo.app'; // Replace with your actual base URL +// export const SITE = { +// name: 'PozoApp', +// twitterHandle: '@PozoApp', // Replace with your Twitter handle if available +// locale: 'en_US', +// defaultOg: '/og/home.jpg', // Path to default OG image +// }; diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..6782bd4 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,51 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.jsx' +import './fonts/Gilroy/stylesheet.css'; +import './index.css' +import { BrowserRouter } from 'react-router-dom'; +import { Provider } from 'react-redux' +import store from './app/store.js' +import AppRoutes from './AppTest.jsx' +import GlobalErrorHandler from './GlobalErrorHandler'; +import { HelmetProvider } from 'react-helmet-async'; +import "./theme/pozo.css"; +ReactDOM.createRoot(document.getElementById('root')).render( + // + + + + {/* */} + {/* */} + + {/* */} + + + + // , +) + + +// import React from 'react' +// import ReactDOM from 'react-dom/client' +// import App from './App.jsx' +// import './fonts/Gilroy/stylesheet.css'; +// import './index.css' +// import { BrowserRouter } from 'react-router-dom'; +// import { Provider } from 'react-redux' +// import store from './app/store.js' +// import AppRoutes from './AppTest.jsx' +// import GlobalErrorHandler from './GlobalErrorHandler'; + +// ReactDOM.createRoot(document.getElementById('root')).render( +// // +// +// +// {/* */} +// {/* */} +// +// {/* */} +// +// +// // , +// ) diff --git a/src/preview/RenderBlocks.jsx b/src/preview/RenderBlocks.jsx new file mode 100644 index 0000000..6f8aaa4 --- /dev/null +++ b/src/preview/RenderBlocks.jsx @@ -0,0 +1,29 @@ +function RenderBlocks({ data }) { + return ( +
+ {data.blocks?.map((b, i) => { + switch (b.type) { + case "paragraph": return

; + case "header": return React.createElement(`h${b.data.level}`, { key: i, dangerouslySetInnerHTML: { __html: b.data.text } }); + case "image": return {b.data.caption; + case "list": + return b.data.style === "ordered" + ?

    {b.data.items.map((it, idx)=>
  1. )}
+ :
    {b.data.items.map((it, idx)=>
  • )}
; + case "delimiter": return
; + case "cta": + return ( +
+

{b.data.heading}

+ {b.data.subheading &&

{b.data.subheading}

} + {b.data.buttonText && {b.data.buttonText}} +
+ ); + case "callout": return
{b.data.emoji} {b.data.text}
; + case "emailContent": return

{b.data.subject}

; + default: return null; + } + })} +
+ ); +} \ No newline at end of file diff --git a/src/routesConfig.jsx b/src/routesConfig.jsx new file mode 100644 index 0000000..2c92e12 --- /dev/null +++ b/src/routesConfig.jsx @@ -0,0 +1,783 @@ +import AppPage from "./Pages/appPage/AppPage.jsx"; +import CompanyForm from "./Pages/company/companyForm.jsx"; +import CompanyList from "./Pages/company/companyList.jsx"; +import AdminTax from "./Pages/adminTax/adminTaxForm.jsx"; +import BranchForm from "./Pages/branch/branchForm.jsx"; +import BranchList from "./Pages/branch/branchList.jsx"; +import MappingFeatures from "./Pages/ApplicationPreference/ApplicationPreferenceForm.jsx"; +import ApplicationPreferenceList from "./Pages/ApplicationPreference/ApplicationPrefernceList.jsx"; +import ApplicationForm from "./Pages/application/applicationForm.jsx"; +import ApplicationList from "./Pages/application/applicationList.jsx"; +import CommonMaster from "./Pages/commonMaster/CommonMaster.jsx"; +import ConfigTypeForm from "./Pages/configType/configtypeForm.jsx"; +import ApplicationImageForm from "./Pages/applicationImage/applicationImageForm.jsx"; +import AppPriceFeatureMapping from "./Pages/appPriceFeatureMapping/appPriceFeatureMappingList.jsx"; +import AppPriceFeatureMappingForm from "./Pages/appPriceFeatureMapping/appPriceFeatureMappingForm.jsx"; +import AppMenu from "./Pages/appMenu/appMenuList.jsx"; +import AppMenuForm from "./Pages/appMenu/appMenuForm.jsx"; +import Pricing from "./Pages/pricingType/pricingTypeList.jsx"; +import PricingForm from "./Pages/pricingType/pricingTypeForm.jsx"; +import CarouselForm from "./Pages/carousel/carouselForm.jsx"; +import FeatureList from "./Pages/feature/featureList.jsx"; +import FeatureForm from "./Pages/feature/featureForm.jsx"; +import UserForm from "./Pages/user/userForm.jsx"; +import UserList from "./Pages/user/userList.jsx"; +import SuperAdminuserList from "./Pages/SuperAdminUser/SuperAdminUserList.jsx"; +import SuperAdminuserForm from "./Pages/SuperAdminUser/SuperAdminUserForm.jsx"; +import LandignPageLayout from "./Pages/LandingPage/landingPageLayout.jsx"; +import Home from "./Pages/homeApp/home.jsx"; +import PublicSignup from "../src/Pages/PublicSignup/Signup.jsx"; +import PublicHome from "../src/Pages/publichome/HomePage.jsx"; +import Signin from "../src/Pages/publicsignin/Signin.jsx"; +import ModuleAccess from "../src/Pages/ModuleAccess/ModuleAccess.jsx"; +import AppMenuAccess from "../src/Pages/appMenuAccess/appMenuAccess.jsx"; +import Application from "./Pages/applications/application.jsx"; +import UserAccount from "./Pages/userAccount/userAccount.jsx"; +import MessageTemplateForm from "./Pages/MessageTemplate/MessageTemplateForm.jsx"; +import MessageTemplateList from "./Pages/MessageTemplate/MessageTemplateList.jsx"; +import PaymentUPIDetailsForm from "./Pages/PaymentUPIDetails/PaymentUPIDetailsForm.jsx"; +import PaymentUPIDetailsList from "./Pages/PaymentUPIDetails/PaymentUPIDetailsList.jsx"; +import PdfPageCommon from "./Pages/paymentpdfPage/PaymentPdfCommon.jsx"; +import PricingDetails from "./Pages/pricingTypeRestaurant/Pricing.jsx"; +import InvoiceDetail from "../src/Pages/InvoiceDetail/InvoiceDetail"; +import PaymentPage from "../src/Pages/PaymentMobilePage/PaymentPage"; +import AppTemplate from "../src/Pages/themeTemplate/AppTemplate.jsx"; +import Feature1 from "./Pages/themeTemplate/TemplateComps/Features/Features1.jsx"; +import OverView2 from "../src/Pages/themeTemplate/TemplateComps/OverVIews/OverView2.jsx"; +import Template from "./Pages/themeTemplate/Template.jsx"; +import AllTemplates from "./Pages/themeTemplate/AllTemplates.jsx"; +import AllTemplatesEdit from "./Pages/themeTemplate/AllTemplateEdit.jsx"; +import PdfPage from "./Pages/paymentpdfPage/paymentpdfpage.jsx"; +import PdfPageDownload from "./Pages/PdfDoc/PdfDocDownload.jsx"; +import CurrencyForm from "./Pages/currency/currencyForm.jsx"; +import ComingSoon from "./Pages/comingSoon.jsx"; +import PaymentMethod from "./Pages/ccavenueCustom/paymentMethod.jsx"; +import PaymentDetail from "./Pages/ccavenueCustom/paymentDetails.jsx"; +import CustomPaymentGateway from "../src/Pages/InvoiceDetail/customPaymentGateway"; +import PaymentHistory from "./Pages/Payment/PaymentHistory.jsx"; +import FeatureAddon from "./Pages/FeaturesPricing/FeatureAddon.jsx"; +import FeatureAddonForm from "./Pages/FeaturesPricing/FeatureAddonForm.jsx"; +import FeatureInvoice from "./Pages/FeaturesPricing/FeatureInvoice.jsx"; +import FeaturesPricing from "./Pages/FeaturesPricing/featurespricing.jsx"; +import FeaturesPricingForm from "./Pages/FeaturesPricing/FeaturePriceForm.jsx"; +import SmsAssignedDetailForm from "./Pages/SmsAssignDetail/SmsAssignedDetailForm.jsx"; +import SmsAssignedDetailList from "./Pages/SmsAssignDetail/SmsAssignedDetailList.jsx"; +import FailedPaymentHistory from "./Pages/Payment/FailedPaymentHistory.jsx"; +import { PaymentGatewayConfigForm } from "./Pages/paymentGatewayConfig/PaymentGatewayConfigForm.jsx"; +import PaymentGatewayConfigList from "./Pages/paymentGatewayConfig/PaymentGatewayConfigList.jsx"; +import PaymentDeviceConfigList from "./Pages/paymentDeviceConfig/PaymentDeviceConfigList.jsx"; +import PaymentDeviceConfigForm from "./Pages/paymentDeviceConfig/PaymentDeviceConfigForm.jsx"; +import DeviceAllocationlist from "./Pages/kisokDevice/DeviceAllocationList.jsx"; +import DeviceAllocationform from "./Pages/kisokDevice/DeviceAllocationForm.jsx"; +import DeviceInformation from "./Pages/kisokDevice/DeviceInformation.jsx"; +import TestimonialsList from "./Pages/testimonials/TestimonialsList.jsx"; +import TestimonialsForm from "./Pages/testimonials/TestimonialsForm.jsx"; +import POZOTestimonials from "./Pages/testimonials/TestimonialsForPublic.jsx"; +import Andriod_version from "./Pages/Andriod_version/deviceversion.jsx"; +import Andriod_versionManagment from "./Pages/Andriod_version/versionManagement.jsx"; +import SigninDetailsList from "./Pages/signinDetails/signinDetailsList.jsx"; +import PurchaseInfo from "./Pages/purchaseInfo/purchaseInfo.jsx"; +import LoyaltysettingList from "./Pages/LoyaltySetting/LoyaltysettingList.jsx"; +import LoyaltysettingsForm from "./Pages/LoyaltySetting/LoyaltysettingsForm.jsx"; +import TicketsDetails from "./Pages/ticketsDetails/ticketDetails.jsx"; +import UserOtp from "./Pages/userOtp/userotp.jsx"; +import CompanyBranchDetails from "./Pages/abstract/abstract.jsx"; +import RefferedEmployeelist from "./Pages/RefferedEmployee/RefferedEmployeelist.jsx"; +import VisitTrackingLog from "./Pages/SiteVisiteLog/VisitTrackingLog.jsx"; +import ActivationkeyGeneration from "./Pages/ActivationkeyGeneration/ActivationkeyGeneration.jsx"; +import FaqShow from "./Pages/themeTemplate/TemplateComps/Faq/FaqShow.jsx"; +import GodownForm from "./Pages/WareHouse/WareHouseForm.jsx"; +import GodownList from "./Pages/WareHouse/WareHouseList.jsx"; +import HomePage from "./PozoApp/Pages/HomePage.jsx"; +import SignIn from "./PozoApp/Components/SignIn.jsx"; +import LiveSession from "./PozoApp/Components/LiveSession.jsx"; +import ContactUs from "./PozoApp/Components/ContactUs.jsx"; +import PricingPozoApp from "./PozoApp/Components/PricingPozoApp.jsx"; +import Solutions from "./PozoApp/Pages/Solutions.jsx"; +import RetailBilling from "./PozoApp/Pages/Solutions/RetailBilling.jsx"; +import InventoryPurchase from "./PozoApp/Pages/Solutions/InventoryPurchase.jsx"; +import WeighingScalePOS from "./PozoApp/Pages/Solutions/WeighingScalePOS.jsx"; +import MultiStoreERP from "./PozoApp/Pages/Solutions/MultiStoreERP.jsx"; +import GSTBillingEInvoice from "./PozoApp/Pages/Solutions/GSTBillingEInvoice.jsx"; +import OfflineBilling from "./PozoApp/Pages/Solutions/OfflineBilling.jsx"; +import CaseStudies from "./PozoApp/Pages/CaseStudies.jsx"; +import GatewayMasterConfiguration from "./Pages/GatewayMasterConfiguration/GatewayMasterConfiguration.jsx"; +import GatewayMasterConfigurationList from "./Pages/GatewayMasterConfiguration/GatewayMasterConfigurationList.jsx"; +import AdminPanelWrapper from "./AdminPanel/AdminPanelWrapper.jsx"; +import Blog from "./AdminPanel/Blog/Blog.jsx"; +import BlogDetail from "./AdminPanel/Blog/BlogDetail.jsx"; +import LandingPageCMS from "./LandingPageCMS/LandingPageCMS.jsx"; +import PostEditorPage from "./Pages/PostEditorPage.jsx"; +import PrivacyPolicy from "./PozoApp/Company/PrivacyPolicy.jsx"; +import CookiePolicy from "./PozoApp/Company/CookiePolicy.jsx"; +import AboutUs from "./PozoApp/Company/AboutUs.jsx"; +import FaqPage from "./PozoApp/Company/FaqPage.jsx"; + +const subDirectory = import.meta.env.ENV_BASE_URL; +export const routesConfig = [ + { path: `${subDirectory}`, component: HomePage, access: "Public" }, + { + path: `${subDirectory}development`, + component: ComingSoon, + access: "Public", + }, + { + path: `${subDirectory}adminpanel`, + component: AdminPanelWrapper, + access: "Marketing", + empAccess: "Admin Panel", + }, + { + path: `${subDirectory}landing-cms`, + component: LandingPageCMS, + access: "Marketing", + empAccess: "Admin Panel", + }, + { path: `${subDirectory}:appName`, component: Template, access: "Public" }, + { path: `${subDirectory}industries/:appName`, component: Template, access: "Public" }, + { path: `${subDirectory}feature1`, component: Feature1 }, + { path: `${subDirectory}pdf`, component: PdfPage, access: "Admin" }, + { + path: `${subDirectory}payment-page-download`, + component: PdfPageDownload, + access: "Admin", + }, + { + path: `${subDirectory}public-signup`, + component: PublicSignup, + access: "Public", + }, + { path: `${subDirectory}signinOld`, component: Signin, access: "Public" }, + { path: `${subDirectory}signin`, component: SignIn, access: "Public" }, + { + path: `${subDirectory}payment-pdf`, + component: PdfPageCommon, + access: "Admin", + }, + { + path: `${subDirectory}pricing-details`, + component: PricingDetails, + access: "Public", + }, + { + path: `${subDirectory}invoice-detail`, + component: InvoiceDetail, + access: "Admin", + }, + { + path: `${subDirectory}payment-page`, + component: PaymentPage, + access: "Admin", + }, + // { path: `${subDirectory}overview2`, component: OverView2, props: { data: fieldData } }, + { + path: `${subDirectory}FeatureInvoice`, + component: FeatureInvoice, + access: "Admin", + }, + { + path: `${subDirectory}testimonials`, + component: POZOTestimonials, + access: "Public", + }, + { path: `${subDirectory}faq`, component: FaqPage, access: "Public" }, + + { path: `${subDirectory}homepage`, component: PublicHome, access: "Public" }, + // { path: `${subDirectory}signinnew`, component: SignIn, access: "Public" }, + { + path: `${subDirectory}pricing`, + component: PricingPozoApp, + access: "Public", + }, + { + path: `${subDirectory}live-Session`, + component: LiveSession, + access: "Public", + }, + { path: `${subDirectory}contact-us`, component: ContactUs, access: "Public" }, + { path: `${subDirectory}solutions`, component: Solutions, access: "Public" }, + { path: `${subDirectory}solutions/retail-billing`, component: RetailBilling, access: "Public" }, + { path: `${subDirectory}solutions/inventory-purchase`, component: InventoryPurchase, access: "Public" }, + { path: `${subDirectory}solutions/weighing-scale-pos`, component: WeighingScalePOS, access: "Public" }, + { path: `${subDirectory}solutions/multi-store-erp`, component: MultiStoreERP, access: "Public" }, + { path: `${subDirectory}solutions/gst-billing-e-invoice`, component: GSTBillingEInvoice, access: "Public" }, + { path: `${subDirectory}solutions/offline-billing`, component: OfflineBilling, access: "Public" }, + { path: `${subDirectory}case-studies`, component: CaseStudies, access: "Public" }, + { path: `${subDirectory}blog`, component: Blog, access: "Public" }, + // { + // path: `${subDirectory}blog/blog-details/:id`, + // component: BlogDetail, + // access: "Public", + // }, + { + path: `${subDirectory}blog/:slug`, + component: BlogDetail, + access: "Public", + }, + { + path: `${subDirectory}PostEditorPage`, + component: PostEditorPage, + access: "Public", + }, + { + path: `${subDirectory}privacy-policy`, + component: PrivacyPolicy, + access: "Public", + }, + { + path: `${subDirectory}cookie-policy`, + component: CookiePolicy, + access: "Public", + }, + { + path: `${subDirectory}about-us`, + component: AboutUs, + access: "Public", + }, + // { path: `${subDirectory}customPayment`, component: CustomPaymentGateway }, + + { + path: `${subDirectory}landing-page`, + component: AppPage, + access: "Admin", + empAccess: "Super Admin User", + children: [ + { + path: "home", + component: Home, + access: "Admin", + empAccess: "Super Admin User", + employeeAccess: true, + }, + { + path: "apps", + component: Application, + access: "Admin", + empAccess: "Super Admin User", + }, + { + path: "user-account", + component: UserAccount, + access: "Admin", + empAccess: "Super Admin User", + }, + { + path: "user-account-edit", + component: () => , + access: "Admin", + empAccess: "Super Admin User", + employeeAccess: true, + }, + ], + }, + { + path: `${subDirectory}setting`, + component: AppPage, + access: "Admin", + children: [ + { + path: "tickets-details", + component: TicketsDetails, + empAccess: "Tickets", + }, + { path: "themes", component: AppTemplate, empAccess: "Templates" }, + { + path: "all-templates", + component: AllTemplates, + empAccess: "Templates", + }, + { + path: "all-templates/update", + component: AllTemplatesEdit, + empAccess: "Templates", + }, + { + path: "payment-gateway-config", + component: PaymentGatewayConfigList, + empAccess: "Payment Gateway Config", + }, + { + path: "payment-gateway-config/new", + component: (props) => ( + + ), + empAccess: "Payment Gateway Config", + }, + { + path: "payment-gateway-config/update", + component: (props) => ( + + ), + empAccess: "Payment Gateway Config", + }, + { + path: "payment-device-config", + component: PaymentDeviceConfigList, + empAccess: "Payment Device Config", + }, + { + path: "payment-device-config/new", + component: (props) => ( + + ), + empAccess: "Payment Device Config", + }, + { + path: "payment-device-config/update", + component: (props) => ( + + ), + empAccess: "Payment Device Config", + }, + { + path: "company-master", + component: CompanyList, + empAccess: "Company", + access: "Admin", + }, + { + path: "application-preference-mapping/new", + component: (props) => , + empAccess: "MappingFeatures", + access: "Admin", + }, + { + path: "application-preference-mapping/update", + component: (props) => , + empAccess: "MappingFeatures", + access: "Admin", + }, + { + path: "application-preference-mapping", + component: ApplicationPreferenceList, + empAccess: "MappingFeatures", + access: "Admin", + }, + { + path: "company-master/new", + component: (props) => , + empAccess: "Company", + access: "Admin", + }, + { + path: "company-master/update", + component: (props) => , + empAccess: "Company", + access: "Admin", + }, + { + path: "branch-master", + component: BranchList, + empAccess: "Branch", + access: "Admin", + }, + { + path: "branch-master/new", + component: (props) => , + empAccess: "Branch", + access: "Admin", + }, + { + path: "branch-master/update", + component: (props) => , + empAccess: "Branch", + access: "Admin", + }, + { + path: "warehouse-master", + component: GodownList, + empAccess: "Warehouse", + access: "Admin", + }, + { + path: "warehouse-master/new", + component: (props) => , + empAccess: "Warehouse", + access: "Admin", + }, + { + path: "warehouse-master/update", + component: (props) => , + empAccess: "Warehouse", + access: "Admin", + }, + { + path: "application-master", + component: ApplicationList, + empAccess: "Application", + }, + { + path: "application-master/new", + component: (props) => , + empAccess: "Application", + }, + { + path: "application-master/update", + component: (props) => , + empAccess: "Application", + }, + { + path: "app-menu", + component: AppMenu, + empAccess: "Application Menu", + }, + { + path: "app-menu/new", + component: (props) => , + empAccess: "Application Menu", + }, + { + path: "app-menu/update", + component: (props) => , + empAccess: "Application Menu", + }, + { + path: "feature-mapping", + component: AppPriceFeatureMapping, + empAccess: "Feature Mapping", + }, + { + path: "feature-mapping/new", + component: (props) => ( + + ), + empAccess: "Feature Mapping", + }, + { + path: "feature-mapping/update", + component: (props) => ( + + ), + empAccess: "Feature Mapping", + }, + { + path: "device-allocation", + component: DeviceAllocationlist, + empAccess: "Device Allocation", + }, + { + path: "device-allocation/new", + component: (props) => ( + + ), + empAccess: "Device Allocation", + }, + { + path: "device-allocation/update", + component: (props) => ( + + ), + empAccess: "Device Allocation", + }, + { + path: "device-information", + component: DeviceInformation, + empAccess: "Device Information", + }, + { + path: "feat-addon", + component: FeatureAddon, + empAccess: "Feature Addon", + access: "Admin", + }, + { + path: "feat-addon-form", + component: FeatureAddonForm, + empAccess: "Feature Addon", + access: "Admin", + }, + { + path: "pricing", + component: Pricing, + empAccess: "Pricing Type", + }, + { + path: "pricing/new", + component: (props) => , + empAccess: "Pricing Type", + }, + { + path: "pricing/update", + component: (props) => , + empAccess: "Pricing Type", + }, + { + path: "feature-master", + component: FeatureList, + empAccess: "Feature", + }, + { + path: "feature-master/new", + component: (props) => , + empAccess: "Feature", + }, + { + path: "feature-master/update", + component: (props) => , + empAccess: "Feature", + }, + { + path: "user-master", + component: UserList, + empAccess: "User Creation", + access: "Admin", + }, + { + path: "user-master/new", + component: (props) => , + empAccess: "User Creation", + access: "Admin", + }, + { + path: "user-master/update", + component: (props) => , + empAccess: "User Creation", + access: "Admin", + }, + + { + path: "payment/payment-history", + component: PaymentHistory, + empAccess: "Payment History", + access: "Admin", + }, + { + path: "payment/failed-payment-history", + component: FailedPaymentHistory, + empAccess: "Failed Payment History", + }, + { + path: "message-template", + component: MessageTemplateList, + empAccess: "Message Template", + }, + { + path: "message-template/new", + component: (props) => , + empAccess: "Message Template", + }, + { + path: "message-template/update", + component: (props) => ( + + ), + empAccess: "Message Template", + }, + { + path: "PaymentUPIDetails", + component: PaymentUPIDetailsList, + empAccess: "Payment UPI Details", + }, + { + path: "PaymentUPIDetails/new", + component: (props) => ( + + ), + empAccess: "Payment UPI Details", + }, + { + path: "PaymentUPIDetails/update", + component: (props) => ( + + ), + empAccess: "Payment UPI Details", + }, + { + path: "featurepricing", + component: FeaturesPricing, + empAccess: "Feature Pricing", + }, + { + path: "featurepricing/new", + component: (props) => , + empAccess: "Feature Pricing", + }, + { + path: "featurepricing/update", + component: (props) => ( + + ), + empAccess: "Feature Pricing", + }, + { + path: "sms-assigned-detail", + component: (props) => ( + + ), + empAccess: "Feature Pricing", + }, + { + path: "sms-assigned-detail/new", + component: (props) => ( + + ), + empAccess: "Feature Pricing", + }, + { + path: "sms-assigned-detail/update", + component: (props) => ( + + ), + empAccess: "Feature Pricing", + }, + { + path: "testimonials", + component: TestimonialsList, + empAccess: "Testimonials", + }, + { + path: "abstract", + component: CompanyBranchDetails, + empAccess: "User App Info", + }, + { + path: "testimonials/new", + component: (props) => , + empAccess: "Testimonials", + }, + { + path: "testimonials/update", + component: (props) => , + empAccess: "Testimonials", + }, + { + path: "super-admin-user-menu-access", + component: SuperAdminuserList, + empAccess: "Common Menu Access", + access: "Admin", + }, + { + path: "super-admin-user-menu-access/new", + component: (props) => , + empAccess: "Common Menu Access", + access: "Admin", + }, + { + path: "super-admin-user-menu-access/update", + component: (props) => , + empAccess: "Common Menu Access", + access: "Admin", + }, + { + path: "updated-version", + component: Andriod_version, + empAccess: "Updated Version", + }, + { + path: "version-management", + component: Andriod_versionManagment, + empAccess: "Version Management", + }, + + { + path: "purchaseinfo", + component: PurchaseInfo, + empAccess: "Purchase Info", + }, + { + path: "SiteVisitRecords", + component: VisitTrackingLog, + empAccess: "Loyalty setting", + }, + { + path: "referral-setting", + component: LoyaltysettingList, + empAccess: "Loyalty Setting", + }, + { + path: "referral-setting/new", + component: (props) => , + empAccess: "Loyalty Setting", + access: "Admin", + }, + { + path: "referral-setting/update", + component: (props) => ( + + ), + empAccess: "Loyalty Setting", + access: "Admin", + }, + + { + path: "app-access", + component: ModuleAccess, + access: "Admin", + empAccess: "Application Access", + }, + { + path: "app-menu-access", + component: AppMenuAccess, + empAccess: "Application Menu Access", + }, + { + path: "signin-details", + component: SigninDetailsList, + empAccess: "Signin Details", + }, + { path: "user-otp", component: UserOtp, empAccess: "User OTP" }, + { + path: "config-master", + component: CommonMaster, + empAccess: "Config Master", + }, + { + path: "config-type", + component: ConfigTypeForm, + empAccess: "Config Type", + }, + { path: "admin-tax", component: AdminTax, empAccess: "Tax" }, + { + path: "application-image", + component: ApplicationImageForm, + empAccess: "Application Image", + }, + { path: "carousel", component: CarouselForm, empAccess: "Carousel" }, + { path: "currency", component: CurrencyForm, empAccess: "Currency" }, + { + path: "payment-data", + component: CustomPaymentGateway, + empAccess: "Payment Data", + }, + { + path: "payment-method", + component: PaymentMethod, + empAccess: "Payment Method", + }, + { + path: "payment-details", + component: PaymentDetail, + empAccess: "Payment Details", + }, + { + path: "reffered-employee", + component: RefferedEmployeelist, + empAccess: "Employee Referrer", + }, + { + path: "activationkey-generation", + component: ActivationkeyGeneration, + empAccess: "Activationkey Generation", + }, + { + path: "gateway-master-configuration/new", + component: (props) => ( + + ), + empAccess: "Gateway Master Configuration", + }, + { + path: "gateway-master-configuration/update", + component: (props) => ( + + ), + empAccess: "Gateway Master Configuration", + }, + { + path: "gateway-master-configuration/list", + component: GatewayMasterConfigurationList, + empAccess: "Gateway Master Configuration", + }, + ], + }, +]; diff --git a/src/styles/BranchForm/BranchForm.scss b/src/styles/BranchForm/BranchForm.scss new file mode 100644 index 0000000..ab0aaf0 --- /dev/null +++ b/src/styles/BranchForm/BranchForm.scss @@ -0,0 +1,34 @@ +.branchForms { + display: flex; + align-items: flex-start; + flex-wrap: wrap !important; + width: 90% !important; +} + +.branchformDivAnt { + width: 100% !important; +} + +.branchformDivS { + overflow: hidden !important; +} + +.subinputForm2 { + flex-wrap: wrap; + width: 100%; +} + +.subinputForm2 { + @media screen and (max-width:768px) { + flex-direction: column !important; + } +} + +.financial-switch { + >button { + + width: max-content; + height: max-content; + border-radius: 50px; + } +} \ No newline at end of file diff --git a/src/styles/LandingPage/home.scss b/src/styles/LandingPage/home.scss new file mode 100644 index 0000000..9b0e677 --- /dev/null +++ b/src/styles/LandingPage/home.scss @@ -0,0 +1,402 @@ +.homePageDivP { + // margin: 0px max(10px, 4vw); + // margin-left: max(10px, 3.5vw); + display: flex; + flex-direction: column; + flex-grow: 1; + // flex-wrap: wrap; + column-gap: 1rem; + // padding: 1.5rem 0px; + // row-gap: 2rem; + overflow-x: hidden; + // grid-template-columns: 2fr 1fr; + // background-color: black; + width: 100%; +} + +.homePageDiv { + // margin: 0px max(10px, 4vw); + // margin-left: max(10px, 2.5vw); + display: flex; + flex-grow: 1; + flex-wrap: wrap; + column-gap: 1rem; + padding: 0.5rem 0px; + row-gap: 2rem; + overflow: auto; + // grid-template-columns: 2fr 1fr; + // background-color: black; + width: 100%; +} + +.AppsCardParentDiv { + background-color: white; + flex-grow: 2.5; + // max-width: min(80vw, 670px); + min-height: 500px; + border-radius: var(--CARD_BORDER_RADIUS); + width: 100%; +} + +.homePageRightSideCards { + // background-color: white; + flex-grow: 1; + min-width: 300px; + display: flex; + justify-content: flex-start; + flex-wrap: wrap; + // align-items: center; + overflow-x: auto; + flex-direction: column; + row-gap: 5rem; + // flex-direction: ; +} + +.homePageRightSideCard { + background-color: white; + width: min(80vw, 450px); + height: 250px; + border-radius: var(--CARD_BORDER_RADIUS); + overflow-y: auto; + overflow-x: hidden; +} + +.homeAppHeadder { + display: flex; + margin: 2rem 2rem; + column-gap: 1rem; +} + +.homePageAppIcon { + display: grid; + place-content: center; + padding: auto; +} + +.homeAppHeadder p { + font-size: 12px; + line-height: 14.06px; +} + + + + + +.appList { + // margin: min(); + // display: flex; + flex-wrap: wrap; + // height: 60vh; + overflow: auto; + width: 100%; +} +.appListComponent { + display: flex; + flex-direction: column; + flex-wrap: wrap; + column-gap: 3rem; + row-gap: 1rem; + // margin: 1rem max(10px, 3vw); + margin: 6px 1.5rem; + flex-grow: 1; + justify-content: center; + width: 100%; +} + +.appListComponentSub { + display: flex; + flex-wrap: wrap; + column-gap: 2rem; + row-gap: 1rem; + // margin: 1rem max(10px, 3vw); + flex-grow: 1; + justify-content: center; + width: 95%; + padding-bottom: 3rem; +} + +.appCard { + // border: 1px solid #C9C9C9; + border: 1px solid #1c1e1d; + border-radius: 4.55px; + width: 137.93px; + height: 126.79px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + font-size: 2vh; + font-weight: 500; + line-height: 13.71px; + cursor: pointer; + + & p { + padding: 1rem 0px; + } + + &:hover { + background-color: #F4EAF2; + border-color: #F4EAF2; + color: #8F1E78; + } +} + +//naresh 27/12/23 AppCard-Name implementation + +.AppCard-Name{ + width: 120px !important; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + text-align: center; +} + +.appCardexpire { + border: 1px solid #df1919; + border-radius: 4.55px; + width: 137.93px; + height: 126.79px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + font-size: 2vh; + font-weight: 500; + line-height: 13.71px; + cursor: pointer; + + & p { + padding: 0.47rem 0px; + } + + &:hover { + background-color: #F4EAF2; + border-color: #F4EAF2; + color: #8F1E78; + } +} +.appCardActive { + border: 1px solid #52C41A; + border-radius: 4.55px; + width: 137.93px; + height: 126.79px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + font-size: 2vh; + font-weight: 500; + line-height: 0.71px; + cursor: pointer; + & p { + padding: 0.9rem 0px; + } + + &:hover { + background-color: #F4EAF2; + border-color: #F4EAF2; + color: #8F1E78; + } +} + + +.appCardexpired { + border: 1px solid #ff8400; + border-radius: 4.55px; + width: 137.93px; + height: 126.79px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + font-size: 2vh; + font-weight: 500; + line-height: 13.71px; + cursor: pointer; + + & p { + padding: 0.6rem 0px; + } + + &:hover { + background-color: #F4EAF2; + border-color: #F4EAF2; + color: #8F1E78; + } +} + +.divExpire{ + padding: 0.4rem; + padding-bottom: 0.4rem; + border-radius: 0.1rem; + color: #ff8400; + font-size: 0.7rem; + font-family: VAR(--PARA_FONT_FAMILY); + font-weight: 600; +} + +.divActive { + padding: 0.4rem 0.6rem; + padding-bottom: 0.4rem; + border-radius: 0.1rem; + color: #10ac10; + font-size: 0.8rem; + font-family: VAR(--PARA_FONT_FAMILY); + font-weight: 500; + background-color: #5ab95a4d; + border-radius: 4px; + border: 1px solid #5ab95a4d; +} + +.divExpired{ + padding: 0.4rem; + padding-bottom: 0.4rem; + border-radius: 0.1rem; + color: #FF4D4F; + font-size: 0.7rem; + font-family: VAR(--PARA_FONT_FAMILY); + font-weight: 600; +} + +.homePaymentParent { + overflow-y: auto; + overflow-x: hidden; + height: 100%; +} +.Pdf-Table-Div .ant-table-thead th{ + font-size: 0.6rem !important; +} + +.paymentHistoryTable { + overflow: auto; + height: 100%; + +} +.paymentHistoryTable::-webkit-scrollbar { + display: block !important; +} +.paymentHistoryTable .ant-table-thead th { + font-size: 0.6rem !important; + // color:black; +} +.paymentHistoryTable .ant-table-wrapper .ant-table-thead>tr>th { + color: black; + font-size: 13px; +} + +.tableText { + color: black; + font-size: 0.8rem; +} + +// .tableText:hover { +// // color: black; +// } + +.Pending { + color: orange; + // filter: brightness(70%); +} + +.tableText:has(.Pending):hover { + color: orange; + // filter: brightness(70%); +} + +.Success { + color: #52C41A; +} + +.tableText:has(.Success):hover { + color: #52C41A; +} + +.Cancelled { + color: #FF4D4F; +} + +.tableText:has(.Cancelled):hover { + color: #FF4D4F; +} + + +.homeNotification { + display: flex; + justify-content: flex-start; + align-items: center; + margin-left: 2rem; + font-family: var(--PARA_FONT_FAMILY); + font-size: 14px !important; + padding: 2rem; + padding-top: 1rem; +} + + + + + +::-webkit-scrollbar { + width: 3px; + height: 3px; +} + +::-webkit-scrollbar-thumb { + background: #c7c6c6; + border-radius: 16px; + box-shadow: + inset 2px 2px 2px hsla(0, 0%, 100%, 0.25), + inset -2px -2px 2px rgba(0, 0, 0, 0.25); +} +::-webkit-scrollbar-track { + border-radius: 25px; + background: linear-gradient(90deg, #ffffff, #c9c9c9 1px, #ffffff 0, #ffffff); +} + + + +.tooltip { + position: relative; + display: inline-block; + font-family: 'Gilroy'; + // border-bottom: 1px dotted black; + } + + .tooltip .tooltiptext { + visibility: hidden; + font-size: 14px; + font-family: 'Gilroy'; + width: 120px; + background-color: black; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px 0; + + /* Position the tooltip */ + position: absolute; + z-index: 1; + top: 100%; + left: 50%; + margin-left: -60px; + } + + .tooltip:hover .tooltiptext { + font-family: 'Gilroy'; + visibility: visible; + } + + + .viewdiv{ + text-decoration: underline; + text-align: end; + cursor: pointer; + color: #3e99ed; + +} + + + + + + + diff --git a/src/styles/OtpVerify/OtpVerify.scss b/src/styles/OtpVerify/OtpVerify.scss new file mode 100644 index 0000000..617c220 --- /dev/null +++ b/src/styles/OtpVerify/OtpVerify.scss @@ -0,0 +1,64 @@ +.otpModule { + display: flex; + justify-content: center; + gap: 10px; + margin: 16px 0; +} + +.otpModuleInput { + width: 40px; + height: 40px; + text-align: center; + font-size: 18px; + border: 1px solid #ccc; + border-radius: 6px; +} + +.otpWrapper { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.user-password { + .ant-form-item-additional { + width: 250px !important; + font-size: 10px !important; + } + + .ant-form-item-explain-error { + font-size: 12px; + } +} + +.userPin { + .ant-input { + padding: 6px 14px 6px 11px !important; + } + +} + +// .otp-verified-icon { + +// right: 10px; +// // top: 35%; +// font-size: 23px; +// color: #52c41a; +// text-align: right; +// margin: 9px 116px; +// } + + +.showMap11 { + display: flex; + align-items: center; + gap: 1rem; + flex-wrap: wrap; + width: 100%; +} + +.showMap22 { + flex-direction: column; + width: unset !important; +} \ No newline at end of file diff --git a/src/styles/OverAllStyle/OverAllStyle.scss b/src/styles/OverAllStyle/OverAllStyle.scss new file mode 100644 index 0000000..5f9c7dd --- /dev/null +++ b/src/styles/OverAllStyle/OverAllStyle.scss @@ -0,0 +1,40 @@ +.appUrlInput { + .ant-input { + padding: 18px 10px 6px 2px !important; + } +} + +.reportTableCompany { + width: 100%; + overflow: scroll; + height: 65vh !important; + @media (max-width: 500px) { + width: 82%; + } +} + +.handleSubmitSMS { + width: 85%; + .ant-form-item { + width: 250px !important; + + } + + .ant-form { + flex: unset !important; + display: flex; + flex-wrap: wrap; + gap: 2rem; + row-gap: 0; + } + + .ant-row { + gap: 2rem; + } +} + +.submitButtonDiv{ + display: flex; + justify-content: flex-end; + width: 100%; +} \ No newline at end of file diff --git a/src/styles/PurchaseInfo/purchaseInfo.scss b/src/styles/PurchaseInfo/purchaseInfo.scss new file mode 100644 index 0000000..6a99123 --- /dev/null +++ b/src/styles/PurchaseInfo/purchaseInfo.scss @@ -0,0 +1,187 @@ + +.purchase-info-model { + .reportTable { + width: 100% !important; + height: max-content !important; + } + + .ant-table-cell { + text-align: left !important; + } + + .ant-empty-normal { + margin-block: 0 !important; + } +} + +.Planchanges { + display: flex; + padding: 15px; + gap: 15px; +} + +// vicky +.ModalOFpurchaseInfo { + .ant-modal-content { + padding: 30px 30px !important; + } + + .ant-modal-title { + font-size: 20px; + } +} + + +.PurchaseExtendModal { + display: flex; + flex-direction: column; + gap: 10px; + height: max-content; + max-height: 80vh; + overflow: scroll; + padding-bottom: 3rem; +} + +.appnameAndPlan { + display: inline-flex; + align-items: center; + gap: 10px; + font-family: 14px; + font-family: 'Gilroy'; + font-weight: 500; + >p:nth-child(1) { + display: inline-flex; + align-items: center; + gap: 4px; + } + + >p:nth-child(2) { + display: inline-flex; + align-items: center; + gap: 4px; + color: #000 !important; + font-weight: 600; + font-size: 14px; + } +} + +.StyleType-Container { + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; + color: #000; + width: max-content; + background-color: #dadada; + padding: 4px 4px; + margin: 0px 0 10px 0; + border-radius: 6px; + font-family: 'Poppins'; + font-weight: 500; + + >div { + cursor: pointer; + } +} + +.addfeatInput { + display: flex; + align-items: flex-start; + gap: 1rem; + + .ant-form-item { + margin-bottom: 0px !important; + } +} + +//Srinath Changes +.purchase-info-model .reportTable .ant-table-thead{ + position: sticky; + top: 0; + background-color: #bad4f9; + z-index: 1; +} + +.purchaseInfoBtn { + background-color: #fff; + padding: 3px; + border-radius: 4px; + + .status-button { + padding: 5px 12px; + border: none; + border-radius: 4px; + font-size: 13px; + cursor: pointer; + transition: background 0.3s ease; + font-family: "Poppins"; + width: 130px; + } + + .active-btn { + background-color: rgb(0, 126, 28); + color: white; + } + + .expired-btn { + background-color: #ff0000; + color: white; + } + + .free-btn { + background-color: #1292ee; + color: white; + } + + .all-btn { + background-color: #0000008a; + color: white; + } + + .inactive-btn { + background-color: unset; + color: black; + } +} +.searchAddDiv1 { + display: flex; + align-items: center; + // gap: 10px; + flex-wrap: wrap; + white-space: nowrap; +} +.purchaseInfoDD { + .ant-select-selector, + .ant-select-single { + width: 160px !important; + } + .ant-select-selector { + height: 40px !important; + } +} +@media (max-width: 768px) { + .searchAddDiv1 { + height: 11rem; + } +} + +//Sajid + +.Adminnewplan{ + width:10vw; + height:6vh; + background-color:rgb(18, 146, 238); + border: none +} + +.purchase-div{ + .primary_Button{ + width: 140px !important; + } +} + +.purchase-submit{ + display: flex; + justify-content: flex-end; + margin-right: 60px; +} \ No newline at end of file diff --git a/src/styles/Warehouse/warehouse.scss b/src/styles/Warehouse/warehouse.scss new file mode 100644 index 0000000..2041532 --- /dev/null +++ b/src/styles/Warehouse/warehouse.scss @@ -0,0 +1,21 @@ +.warehouse-form-items{ + display: flex; + gap: 10px; + flex-wrap: wrap; +} + +.warehouse-add-with-map{ + display: block; +} + +.warehouse-add-without-map{ + display: flex; + gap: 10px; + flex-wrap: wrap; +} + +@media (max-width:768px){ + .MapDiv{ + display: none !important; + } +} \ No newline at end of file diff --git a/src/styles/appMenuAccess/appMenuAccess.scss b/src/styles/appMenuAccess/appMenuAccess.scss new file mode 100644 index 0000000..d986415 --- /dev/null +++ b/src/styles/appMenuAccess/appMenuAccess.scss @@ -0,0 +1,18 @@ +.reportTableSub{ + & .ant-checkbox .ant-checkbox-inner:after{ + background: black; + display: inline; + } +} +.formDivappMenu { + display: flex; + flex-wrap: wrap; + column-gap: 2rem; + // row-gap: 0.5rem; +} + +.reportTable-appMenu{ + height: 48vh !important; + overflow: auto; + width: 80vw; +} \ No newline at end of file diff --git a/src/styles/appPage/appPage.scss b/src/styles/appPage/appPage.scss new file mode 100644 index 0000000..a6b8d16 --- /dev/null +++ b/src/styles/appPage/appPage.scss @@ -0,0 +1,317 @@ +.appPage { + min-width: 100vw; + height: 100vh; + display: flex; + overflow: hidden; +} + +.sideNaveParent { + // width: clamp(43px, 9vw, 2000px); + // background-color: black; + // color: white +} + +.centerPage { + flex-grow: 1; + display: flex; + // width: calc(100vw - clamp(43px, 9vw, 2000px)); + height: 100vh; + background-color: var(--PAGE_BODY_BACKGROUND_COLOR); + width: 100%; +} + +.centerPageSub { + margin: 0px max(10px, 2vw); + // background-color: white; + flex-grow: 1; + width: 100%; + overflow: auto; + + @media (max-width: 500px) { + margin: 0px max(10px, 1vw) !important; + } +} + +.breadCrumbClass { + display: flex; + padding: 0.3rem 1rem 0.3rem 1rem; + justify-content: space-between; +} + +[data-letters]:before { + content: attr(data-letters); + display: inline-block; + font-size: 0.8em; + width: 2.5em; + // height:2.5em; + line-height: 2.4em; + text-align: center; + border-radius: 50%; + background: gray; + vertical-align: middle; + margin-right: 1em; + color: white; +} + +.UserNameBadge { + display: flex; + justify-content: flex-end; + flex-grow: 1; + // padding-right: 2rem; + // width: 96% +} + + +.tooltip { + position: relative; + display: inline-block; + font-family: 'Gilroy'; + // border-bottom: 1px dotted black; +} + +.tooltip .tooltiptext { + visibility: hidden; + font-size: 14px; + font-family: 'Gilroy'; + width: max-content; + background-color: black; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px 10px; + + /* Position the tooltip */ + position: absolute; + z-index: 1; + top: 100%; + left: 50%; + margin-left: -60px; +} + +.tooltip:hover .tooltiptext { + font-family: 'Gilroy'; + visibility: visible; +} + +.content { + display: flex; + justify-content: center; + // background-color: white; + border-radius: 12px; + flex-direction: row; + height: 90vh; + overflow: auto; + width: 100%; +} + +.userPage { + height: 100%; + width: 100%; + padding: 10px max(10px, 1.5vw); + // padding: 0px max(10px, 9vw); + overflow: auto; +} + +.userPageContent { + height: 100%; + width: 100%; + padding-bottom: 1rem; + +} + +.formDiv { + display: flex; + flex-wrap: wrap; + column-gap: 3rem; + padding-top: 2rem; + // Sridhar + height: 74vh; + overflow: auto; + // + row-gap: 1.5rem; +} + +//naresh +.noheight { + height: auto !important; +} + +.formDivAnt { + display: flex; + flex-wrap: wrap; + column-gap: 3rem; + // padding-top: 2rem; + row-gap: 1.5rem; + // flex-direction: column; +} + +.formDivS { + display: flex; + flex-wrap: wrap; + flex-direction: column; + row-gap: 1.5rem; + // column-gap: 2rem; + // padding-top: 2rem; + // row-gap: 0.5rem; + // padding-top: 2rem; + // row-gap: 1.5rem; +} + +.formAddressDiv { + display: flex; + flex-wrap: wrap; + column-gap: 0.5rem; + +} + +.formAddressDiv p { + color: deepskyblue; +} + +.upload_btn p { + color: deepskyblue; +} + +.required:after { + content: " *"; + color: #FF4D4F; +} + +.TimePickerDiv { + width: var(--INPUT_FIELD_WIDTH); + padding: 18px 14px 6px 11px; + font-size: 16px; + font-weight: 490; +} + +.MapDiv { + position: relative; + // height: 55%; + flex-grow: 1; + // width: var(--INPUT_FIELD_WIDTH); + overflow: hidden; + border: none; +} + +.formdes { + font-style: normal; + color: var(--PARA_COLOR); + font-family: var(--PARA_FONT_FAMILY); + font-size: 2.1vh; + +} + +.submitButton { + display: flex; + flex-grow: 1; + justify-content: flex-end; + position: fixed; + bottom: 10px; + right: 100px; +} + + + +.formAddNew { + display: flex; + flex-direction: column; + row-gap: 1rem; +} + +.inputForm { + display: flex; + flex-wrap: wrap; + column-gap: 2rem; +} + +.subinputForm { + display: flex; + column-gap: 2rem; +} + +// .formSearch{ +// // display: flex; +// // justify-content: flex-end; +// margin-top: 2.5rem; +// } + +.userPageTable { + height: 100%; + width: 100%; + // padding: 0px max(10px, 3vw); + padding-left: var(--TABLE_PAGE_PADDING); + // overflow: hidden; + overflow: auto; + + @media (max-width: 500px) { + padding-left: 0; + } +} + +.searchAddDiv { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + row-gap: 1rem; + padding-bottom: 10px; + // height: 4rem; +} + +.reportTable { + overflow: auto; + // width: 80vw; + width: 100%; + //Sridhar + height: 70vh !important; + + // + @media (max-width: 500px) { + width: 100%; + } +} + +.pageOverAll { + background-color: white; + // width: 80vw; + width: 100%; +} + +.paypreLogoDiv { + display: flex; + justify-content: center; + align-items: center; + margin: 2.5rem 0px; + // row-gap: 1rem; +} + +//Sridhar + +.reportTable .ant-table-thead { + position: sticky; + top: 0; + background-color: #f3f3f3; + z-index: 1; +} + + +.reportTable .ant-pagination { + position: sticky; + bottom: 0; + margin: 0 !important; + padding: 0.5rem; + background-color: #fafafa; +} + +.selected { + border: 2px solid #52C41A; +} + +.productonlineImg { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + row-gap: 0.5rem; + // height: 50%; + overflow: auto; + // width:100% +} \ No newline at end of file diff --git a/src/styles/applications/applicationList.scss b/src/styles/applications/applicationList.scss new file mode 100644 index 0000000..f368b2f --- /dev/null +++ b/src/styles/applications/applicationList.scss @@ -0,0 +1,821 @@ +// Enhanced Application List Styles +.application-list-container { + min-height: 100vh; + background: #f8fafc; + padding: 0; + overflow: auto; + border-radius: 12px; + font-family: "Poppins", sans-serif; +} + +.moreappsTitle { + width: inherit; + text-align: left; + margin: 8px 16px 16px 16px; + + div { + font-size: 28px; + color: #23378a; + font-weight: 500; + -webkit-text-stroke-width: 0.1px; + } + + p { + font-size: 12.5px; + color: #4a5565; + font-weight: 400; + } +} + +.LRScrollBTN { + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + z-index: 2; + transition: opacity 0.3s ease; + + &:hover { + opacity: 0.8; + } + + svg { + width: 40px; + color: #213088; + padding: 11px; + height: 40px; + background-color: #d1d5db; + display: flex; + border-radius: 8px; + transition: background-color 0.3s ease; + + &:hover { + background-color: #9ca3af; + color: #ffffff; + } + } +} + +// Category Filter Bar +.category-filter-bar { + background: white; + // border-radius: 12px; + margin: 0 1rem 0 1rem; + // border: 1px solid #e0e2e4; + display: flex; + align-items: center; + gap: 12px; + position: relative; + + .category-filters { + display: flex; + gap: 1rem; + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; + scroll-behavior: smooth; + flex: 1; + padding: 8px 0; + + // Hide scrollbar but keep functionality + &::-webkit-scrollbar { + display: none; + } + + -ms-overflow-style: none; + scrollbar-width: none; + + .category-filter-item { + display: flex; + flex-direction: row; + align-items: center; + gap: 4px; + padding: 8px 16px; + border-radius: 12px; + cursor: pointer; + transition: all 0.3s ease; + min-width: max-content; + flex-shrink: 0; + font-family: "Poppins", sans-serif; + background-color: #e9edff; + border: 1px solid #dbe2ff; + + &:hover { + background: #f8f9ff; + border-color: #e0e7ff; + } + + &.active { + background-color: #4b5ec7; + color: white; + border-color: #ffffff; + box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3); + } + + .category-icon { + font-size: 1.3rem; + display: flex; + } + + .category-name { + font-size: 14px; + font-weight: 400; + text-align: center; + line-height: 1.2; + } + + .category-count { + font-size: 0.8rem; + background: rgba(255, 255, 255, 0.2); + padding: 6px; + height: 30px; + text-align: center; + width: 30px; + border-radius: 8px; + font-weight: 500; + } + } + } +} + +// Header Section +.apps-section-header { + margin: 1rem; + margin-bottom: 1.5rem; + + .header-actions { + display: flex; + align-items: center; + gap: 1rem; + flex-wrap: nowrap; + // width: 100%; + flex-grow: 1; + justify-content: space-between; + + .searchBar { + display: flex; + align-items: center; + gap: 12px; + width: 100%; + flex: 1; + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 12px; + padding: 0 14px; + } + + .searchInput { + height: 48px; + box-shadow: 0 8px 24px rgba(16, 24, 40, 0.06); + font-size: 14px; + color: #111827; + outline: none; + border: none; + width: 100%; + background-color: transparent; + font-family: "Poppins", sans-serif; + } + + .filterBtn { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 12px; + height: 50px; + padding: 0 14px; + display: inline-flex; + align-items: center; + font-family: "Poppins", sans-serif; + gap: 8px; + box-shadow: 0 8px 24px rgba(16, 24, 40, 0.06); + cursor: pointer; + color: #23378a; + font-weight: 400; + transition: all 0.3s ease; + + &:hover { + background: #f8f9ff; + border-color: #667eea; + } + } + } +} + +.sort-controls { + display: flex; + align-items: center; + gap: 0.5rem; + + label { + font-weight: 400; + color: #333; + font-size: 0.9rem; + } + + select { + padding: 0.5rem 1rem; + border: 2px solid #e0e0e0; + border-radius: 10px; + background: white; + font-size: 0.9rem; + cursor: pointer; + transition: all 0.3s ease; + + &:focus { + outline: none; + border-color: #667eea; + box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); + } + } +} + +.view-controls { + display: flex; + gap: 0.5rem; + + .view-btn { + padding: 6px 10px; + border: 2px solid #e0e0e0; + background: white; + border-radius: 6px; + cursor: pointer; + font-size: 18px; + transition: all 0.3s ease; + + &:hover { + border-color: #ffffff; + background: rgba(102, 126, 234, 0.1); + } + + &.active { + background: #3d5ace; + color: white; + border-color: #ffffff; + } + } +} + +// Applications Grid +.applicationList { + padding: 0 1rem 2rem 1rem; + min-height: calc(100dvh - 4rem); + overflow-y: auto; + + // Custom scrollbar + &::-webkit-scrollbar { + width: 8px; + } + + &::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); + border-radius: 4px; + } + + &::-webkit-scrollbar-thumb { + background: rgba(102, 126, 234, 0.3); + border-radius: 4px; + + &:hover { + background: rgba(102, 126, 234, 0.5); + } + } +} + +.apps-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1.5rem; + margin-bottom: 2rem; + + &.list { + grid-template-columns: 1fr; + + .enterprise-card { + display: flex; + flex-direction: row; + height: 300px; + position: relative; + + .card-header { + width: 300px; + height: 100%; + flex-shrink: 0; + } + + .card-content { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; + } + } + } +} + +// Enterprise Card Styles (matching the detailed design) +.enterprise-card { + background: white; + border-radius: 16px; + overflow: hidden; + cursor: pointer; + transition: all 0.3s ease; + font-family: "Poppins", sans-serif; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + border: 1px solid #eef0f3; + + &:hover { + transform: translateY(-4px); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + } + + // Header Section + .card-header { + position: relative; + height: 200px; + background: #f5f7fb; + overflow: hidden; + + .header-bg-image { + width: 100%; + height: 100%; + object-fit: cover; + filter: brightness(0.9); + } + + // .setup-time-badge { + // position: absolute; + // top: 12px; + // left: 12px; + // background: rgba(0, 0, 0, 0.8); + // color: white; + // padding: 6px 12px; + // border-radius: 20px; + // font-size: 12px; + // font-weight: 500; + // display: flex; + // align-items: center; + // gap: 4px; + // } + + .header-actions { + position: absolute; + top: 12px; + right: 12px; + display: flex; + flex-direction: column; + gap: 8px; + + .action-btn { + width: 36px; + height: 36px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.3); + background: rgba(255, 255, 255, 0.9); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + backdrop-filter: blur(10px); + + &:hover { + background: white; + transform: scale(1.1); + } + + &.favorite { + color: #ff6b6b; + + &.favorited { + background: #ff6b6b; + color: white; + border-color: #ff6b6b; + } + } + } + } + } + + // Content Section + .card-content { + padding: 16px; + height: 250px; + display: flex; + flex-direction: column; + justify-content: space-between; + + .category-type { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 6px; + + .category { + color: #8b5cf6; + font-size: 12px; + font-weight: 500; + } + + .type-indicator { + display: flex; + align-items: center; + gap: 6px; + color: #8b5cf6; + font-size: 10px; + font-weight: 500; + + .dot { + width: 6px; + height: 6px; + background: #8b5cf6; + border-radius: 50%; + } + } + } + + .app-title { + font-size: 18px; + font-weight: 500; + color: #000000; + margin: 0 0 8px 0; + line-height: 1.2; + } + + .app-description { + font-size: 12px; + color: #4a5565; + line-height: 1.5; + margin: 0 0 6px 0; + } + + .rating-section { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 6px; + + .stars { + display: flex; + gap: 2px; + + .star { + font-size: 16px; + + &.filled { + color: #fbbf24; + } + + &.half { + color: #fbbf24; + opacity: 0.7; + } + + &.empty { + color: #d1d5db; + } + } + } + + .rating-text { + font-size: 12px; + color: #4a5565; + } + } + + .key-metrics { + display: flex; + gap: 16px; + justify-content: space-around; + margin-bottom: 16px; + background-color: #ebf2fc; + padding: 10px; + border-radius: 8px; + + .metric-item { + display: flex; + align-items: center; + gap: 8px; + + .metric-icon { + color: #8b5cf6; + font-size: 16px; + } + + .metric-content { + display: flex; + flex-direction: column; + + .metric-value { + font-size: 14px; + font-weight: 400; + color: #000000; + line-height: 1; + } + + .metric-label { + font-size: 12px; + color: #4a5565; + line-height: 1; + } + } + } + } + + .feature-tags { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 16px; + + .feature-tag { + padding: 4px 12px; + border: 1px solid #e0e7ff; + border-radius: 20px; + font-size: 12px; + color: #8b5cf6; + background: #f8faff; + font-weight: 500; + } + } + + // .certifications-support { + // display: flex; + // flex-wrap: wrap; + // gap: 12px; + // margin-bottom: 16px; + + // .cert-item { + // display: flex; + // align-items: center; + // gap: 6px; + // font-size: 13px; + // color: #374151; + + // .cert-icon { + // font-size: 14px; + + // &:first-child { + // color: #10b981; + // } + // } + // } + // } + + .pricing-section1 { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 16px; + + .monthly-price { + font-size: 18px; + font-weight: 500; + color: #000000; + } + + .annual-price { + font-size: 12px; + color: #4a5565; + text-align: right; + } + } + + .cta-section1 { + display: flex; + gap: 12px; + margin-bottom: 12px; + flex-direction: column; + position: relative; + + .primary-cta { + flex: 1; + background-color: #7c3aed; + color: white; + border: none; + border-radius: 8px; + padding: 8px 16px; + font-size: 13px; + font-weight: 400; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: all 0.3s ease; + font-family: "Poppins", sans-serif; + outline: none; + + &:hover { + transform: translateY(-1px); + } + } + + .secondary-cta { + width: 44px; + height: 44px; + border: 1px solid #d1d5db; + background: white; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + + svg { + font-size: 14px; + } + } + } + + .trial-info { + display: flex; + align-items: center; + gap: 6px; + font-size: 10px; + color: #4a5565; + text-align: center; + font-weight: 400; + justify-content: center; + position: absolute; + top: 42px; + left: 0; + right: 0; + } + } +} + +// Loading States +.loading-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 50vh; + color: #667eea; + + .loading-spinner { + width: 50px; + height: 50px; + border: 4px solid rgba(102, 126, 234, 0.3); + border-top: 4px solid #667eea; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 1rem; + } + + p { + font-size: 1.2rem; + font-weight: 500; + } +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +// No Results State +.no-results { + text-align: center; + color: #667eea; + padding: 4rem 2rem; + + .no-results-icon { + font-size: 4rem; + margin-bottom: 1rem; + opacity: 0.7; + } + + h3 { + font-size: 2rem; + margin-bottom: 1rem; + font-weight: 600; + } + + p { + font-size: 1.1rem; + opacity: 0.8; + max-width: 500px; + margin: 0 auto; + } +} + +// Responsive Design +@media (max-width: 768px) { + .category-filter-bar { + margin: 0.5rem; + padding: 0.5rem; + + .category-filters { + gap: 0.5rem; + + .category-filter-item { + min-width: 100px; + padding: 0.75rem; + + .category-name { + font-size: 0.8rem; + } + } + } + } + + .apps-section-header { + margin: 0.5rem; + + .header-actions { + flex-direction: column; + gap: 0.5rem; + + .searchBar { + width: 100%; + } + + .filterBtn { + width: 100%; + justify-content: center; + } + } + } + + .controls-section { + margin: 0 0.5rem 1rem 0.5rem; + flex-direction: column; + gap: 1rem; + align-items: stretch; + + .sort-controls, + .view-controls { + justify-content: center; + } + } + + .apps-grid { + grid-template-columns: 1fr; + gap: 1rem; + + &.list .enterprise-card { + flex-direction: column; + height: auto; + + .card-header { + width: 100%; + height: 200px; + } + } + } + + .applicationList { + padding: 0 0.5rem 1rem 0.5rem; + } + + .enterprise-card { + .card-content { + padding: 16px; + + .app-title { + font-size: 20px; + } + + .pricing-section1 { + flex-direction: column; + align-items: flex-start; + gap: 4px; + } + } + } +} + +@media (max-width: 480px) { + .category-filter-item { + min-width: 80px !important; + padding: 0.5rem !important; + + .category-name { + font-size: 0.7rem !important; + } + + .category-count { + font-size: 0.7rem !important; + } + } + + .enterprise-card { + .card-content { + padding: 12px; + + .app-title { + font-size: 18px; + } + + .monthly-price { + font-size: 20px; + } + } + } +} diff --git a/src/styles/applications/applications.scss b/src/styles/applications/applications.scss new file mode 100644 index 0000000..37712fc --- /dev/null +++ b/src/styles/applications/applications.scss @@ -0,0 +1,48 @@ +.homeApplication { + // background-image: url('../../Images/appBackground.png'); + background-repeat: no-repeat; + background-size: contain; + display: flex; + flex-direction: column; + flex-grow: 1; + height: 100dvh; + width: 80vw; + +} + +.applicationSearch { + display: flex; + justify-content: center; + align-items: center; + // flex-grow: 1; + height: 4rem; + font-family: "Poppins", sans-serif; + h1{ + font-size: 24px; + margin: 10px 0; + color: #000000; + font-weight: 600; + } + + & .ant-input-search { + width: 50% !important; + text-align: center; + // padding: 0px 100px; + } + + & .ant-input-group-addon { + display: none; + } + + & ::placeholder { + text-align: center; + color: black; + font-weight: 500; + } + + & .searchDiv .ant-input { + border-radius: 23px !important; + padding: 0px; + // width: 75%; + } +} \ No newline at end of file diff --git a/src/styles/pageComponents/FormHeader.scss b/src/styles/pageComponents/FormHeader.scss new file mode 100644 index 0000000..4339af1 --- /dev/null +++ b/src/styles/pageComponents/FormHeader.scss @@ -0,0 +1,8 @@ +.formHeader { + font-size: 25px; + font-weight: 600; + color: #000000; + font-family: var(--HEADING_FONT_FAMILY); + // padding-top: 0.5rem; + // padding-top: min(); +} \ No newline at end of file diff --git a/src/styles/template/Faq/Modal4.css b/src/styles/template/Faq/Modal4.css new file mode 100644 index 0000000..fa5b8b7 --- /dev/null +++ b/src/styles/template/Faq/Modal4.css @@ -0,0 +1,354 @@ +.noImage { + width: 150%; + height: 300px; + background-color: rgb(194, 194, 194); +} +.modalContainer { + display: flex; + padding: 55px; + column-gap: 2rem; + row-gap: 2rem; +} +.modalContainer2 { + /* padding: 7rem 16rem; */ + display: flex; + flex-direction: column; + justify-content: center; + row-gap: 1rem; + margin: 45px; +} +.left { + width: 40%; + display: flex; + justify-content: center; + padding: 15px 0 0 0; +} + +.right { + display: flex; + flex-direction: column; + row-gap: 1rem; + padding: 50px 0 0 0; +} +.faqstext1 { + font-style: normal; + font-weight: 500; + font-size: 26px !important; + color: #000; +} +.h1faq { + width: 30rem; + font-size: 26px; + font-family: Gilroy; +} + +@media (min-width: 220px) and (max-width: 499px) { + .preTitleData { + padding: 0 50px; + width: 20rem !important; + } + .faqimgContainer { + width: 69% !important; + } +} + +@media only screen and (min-width: 858px) { + .master1 { + width: 50%; + } +} +@media only screen and (max-width: 859px) { + .modalContainer { + flex-wrap: wrap; + } + .master1 { + width: 100% !important; + } + .modalContainer2 { + padding: 0rem 0rem !important; + } +} +@media only screen and (max-width: 280px) { + .modalContainer2 { + padding: 10px 10px !important; + } +} +@media only screen and (max-width: 576px) { + .h1faq { + width: auto; + } + .faqimgContainer { + margin: auto !important; + flex-direction: row !important; + } + .faqCollapseContainer { + justify-content: center; + margin: auto; + /* width: 90%; */ + } + .modalContainer { + padding: 10px 10px; + } +} + +.range0 { + width: 10vw; + height: 2vh; + background-color: lightgray; +} +.swaiperimage { + width: 15rem; +} + +.swaiper-div-one { + display: flex; + flex-direction: column; + row-gap: 1rem; +} + +.skeletondiv2 { + background-color: #fff; + width: 28vw; + height: 17vh; + display: flex; + flex-direction: column; + justify-content: space-around; +} +.headingSkeleton2 { + width: 20vw; + height: 1.5vh; + background-color: lightgray; +} +.headingSkeleton3 { + width: 15vw; + height: 1.5vh; + background-color: lightgray; +} +.SkeletonDiv { + display: flex; + flex-direction: column; + justify-content: space-evenly; + float: left; + background-color: rgb(243, 243, 243); + width: 15vw; + height: 20vh; + padding: 10px; + margin-bottom: 12px; +} + +.modalContainer { + display: flex; + flex-direction: row; + justify-content: center; + /* flex-wrap: wrap; */ +} + +.secondfq { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.master-range8 { + border: 0.5px solid gray; + padding: 10px; + width: 60%; + box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px; +} +.Range9 { + width: 10vw; + height: 1vh; + background-color: rgb(143, 141, 141); +} + +.Heading_container { + display: flex; + flex-direction: column; + gap: 0.2rem; +} +.Rengegroup { + display: flex; + flex-direction: column; + gap: 0.2rem; + background-color: rgb(225, 233, 236); + width: 57%; + padding: 10px; +} + +.master-range1 { + border: 0.5px solid gray; + padding: 10px; + width: 100%; + box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px; +} + +.Rengegroup1 { + display: flex; + flex-direction: column; + gap: 0.2rem; + background-color: rgb(225, 233, 236); + width: 100%; + padding: 10px; +} + +.Skeleton-container { + display: flex; + flex-direction: column !important; +} +.range10 { + margin: 10px 0; + width: 10vw; + height: 2vh; + background-color: lightgray; +} +.FaqempTitleData { + background-color: #929292; + width: 5rem; + height: 0.5rem; +} +/* .FaqempImageData{ +} */ +.Faq1EmptyBox { + background-color: #929292; + width: 6rem; + height: 1rem; + margin: 5px; +} + +.preTitleData { + width: 24rem; + font-family: "Gilroy"; + font-size: 22px; + text-align: left; + font-weight: 600; +} +.preTitleData2 { + font-family: "Gilroy"; + font-size: 22px; + text-align: left; + font-weight: 600; +} +.Faq1Box { + font-size: 16px; + font-weight: 400; + padding: 3px 40px; +} +.Faq2Box { + font-size: 16px; + font-weight: 400; + padding: 3px 40px; +} +.FaqImageData { + width: 18rem !important; + margin: 1rem; +} +.faqimgContainer { + width: 100%; +} +/* .faqlistcont{ + width: 32rem; +} */ +@media (min-width: 250px) and (max-width: 859px) { + /* .faqlistcont{ + width: 93vw !important; + } */ + .FaqImageData { + width: 10rem !important; + margin: 0.4rem; + } +} + +/* collapse */ + +.preTitleData { + width: auto !important; +} + +.firstFaqList { + padding: 7px; + border: 1.5px solid #dbdbdb; + border-left: none; + border-radius: 3px; +} +.subfirstFaqList { + background-color: #cac9c9; + width: 8rem; + height: 0.2rem; +} +.seconfFaqList { + padding: 10px; + background-color: #f7fcff; +} +.thirdfaqList { + width: 7rem; + height: 0.3rem; + background-color: #cac8c8; + + margin: 4px auto; +} + +.faqCollapseContainer .ant-collapse { + width: 40rem !important; + margin: 1vw 1vh; +} + +@media only screen and (max-width: 1068px) { + .faqCollapseContainer .ant-collapse { + width: auto !important; + } +} + +/* .withoutaData { + width: 10vw; + height: 3vh; + background-color: rgb(143, 141, 141); +} +.withoutaData2 { + width: 9.5vw; + height: 3vh; + background-color: rgb(223, 251, 255); + margin: auto; +} +.withoutaData3 { + width: 10vw; + height: 3vh; + background-color: rgb(143, 141, 141); + margin: 2px 0px; +} */ + +.faqCollapseContainer .ant-collapse-content-box { + background-color: #e9e9e9; + border-radius: 0 0 5px 5px; +} +.faqCollapseContainer { + display: flex; + flex-direction: column; + justify-content: flex-start; +} + +/* .withoutaData { + width: 10vw; + height: 3vh; + background-color: rgb(143, 141, 141); +} +.withoutaData2 { + width: 9.5vw; + height: 3vh; + background-color: rgb(223, 251, 255); + margin: auto; +} +.withoutaData3 { + width: 10vw; + height: 3vh; + background-color: rgb(143, 141, 141); + margin: 2px 0px; +} */ + +.faqCollapseContainer .ant-collapse-content-box { + background-color: #e9e9e9; + border-radius: 0 0 5px 5px; +} + +/* .modalContainer .ant-collapse-header{ +border: 1px solid ; +} */ diff --git a/src/styles/template/Feature/feature1.css b/src/styles/template/Feature/feature1.css new file mode 100644 index 0000000..c946a34 --- /dev/null +++ b/src/styles/template/Feature/feature1.css @@ -0,0 +1,141 @@ +.features1Body { + display: flex; + /* grid-template-columns: repeat(2, 1fr); + */ + column-gap: 4rem; + padding: min(2rem, 5%); + overflow: auto; + /* background-color: fff; */ + background: #e8e8e8b2; +} + +.feature1mainImage { + width: min(50%, 10rem); +} + +.feature1subImage { + /* width: min(50%, 5rem); */ + break-inside: avoid; + /* box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; */ + width: 2.4rem; +} + +.feature1Card { + box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px; + padding: 2rem 2rem; + margin: 2rem; + display: flex; + flex-direction: column; + row-gap: 1rem; + border-radius: 11px; + width: 22rem; + /* border: 1px solid; */ + background-color: #fff; +} + +/* .feature1mainImage { + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; + border-radius: 10px; +} */ + +.feature1SubCatP { + display: flex; + /* flex-wrap: wrap; */ + row-gap: 1rem; + column-gap: 1rem; + align-items: center; +} +/* .feature1Des { +text-wrap: nowrap;} */ + +.feature1SubCat { + display: flex; + column-gap: 0.2rem; + align-items: center; +} + +.feature1Card:nth-child(even) { + /* & .feature1mainImage { + margin-left: auto; + } */ + + /* .feature1SubCatP { + justify-content: flex-end; + } */ + + /* .feature1Des { + text-align: right; + } */ + /* + .feature1EmptyBox { + margin-left: auto; + } */ +} + +.formSubDiv { + display: flex; +} + +.feature1EmptyBox { + display: flex; + /* align-items: center; */ + background-color: #929292; + width: 5rem; + height: 1rem; +} + +.feature1DesEmpty { + width: min(10rem, 60%); +} + +.feature1SingleGrid { + grid-template-columns: repeat(1, 1fr); +} + +.featureButton { + width: 100%; + display: flex; + justify-content: flex-end; +} + +@media screen and (max-width: 450px) { + /* .features1Body { + display: grid; + grid-template-columns: repeat(1, 1fr); + row-gap: 2rem; + } */ + .feature1Card { + margin: 0 !important; + padding: 0.5rem !important; + + transform: scale(1); + width: 14.5rem; + justify-content: center; + } + .feature1SubCatP { + transform: scale(0.7); + justify-content: center; + } +} + +.features1Body::-webkit-scrollbar { + display: flex !important; /* Width of the scrollbar */ +} + +.features1Body::-webkit-scrollbar { + width: 10px; + height: 4px; + cursor: pointer; +} + +.features1Body::-webkit-scrollbar-track { + background: #f1f1f1; /* Color of the track */ +} + +.features1Body::-webkit-scrollbar-thumb { + background: #888; /* Color of the scroll thumb */ +} + +.features1Body::-webkit-scrollbar-thumb:hover { + background: #555; /* Color of the scroll thumb on hover */ +} diff --git a/src/styles/template/Feature/feature2.css b/src/styles/template/Feature/feature2.css new file mode 100644 index 0000000..b0b35dd --- /dev/null +++ b/src/styles/template/Feature/feature2.css @@ -0,0 +1,431 @@ +.overallfeaturediv { + display: flex; + flex-wrap: wrap; + flex-direction: row; + align-items: center; + width: 490px; + gap: 1rem; + } + + + + .feature-demo-div1 { + display: flex; + flex-direction: row; + align-items: center; + width: 100%; + justify-content: space-evenly; + gap: 0.5rem; + margin-top: 18px; + } + + .feature-real-div1 { + display: flex; + flex-wrap: wrap; + align-items: center; + margin-bottom: 20px; + } + + .feature-demo-img1 { + width: 140px; + height: 100px; + margin-top: 10px; + } + + .feature-demo-range1 { + width: 250px; + height: 15px; + margin: 30px 0px 10px 10px; + background-color: gray; + } + + .feature-demo-range2 { + width: 220px; + height: 15px; + background-color: gray; + } + + .feature-demo-master-div2 { + display: flex; + margin-left: 50px; + gap: 1rem; + } + + .feature-real-div2 { + display: flex; + justify-content: space-evenly; + } + + .feature-demo-div2 { + display: flex; + flex-direction: row; + gap: 1rem; + } + + .feature-real-img2 { + width: 5vw; + height: 10vh; + } + + .feature-demo-img2 { + width: 60px; + height: 40px; + } + + .feature-demo-lightgray-range { + width: 80px; + height: 10px; + margin-top: 15px; + background-color: lightgray; + margin-bottom: 10px; + } + + .feature-real-lightgray-range { + width: 100%; + height: 10px; + margin-top: 15px; + background-color: #fff; + margin-bottom: 2rem; + font-size: 22px; + font-weight: 600; + } + + .feature-real-div3 { + display: flex; + justify-content: space-evenly; + } + + .feature-demo-div3 { + display: flex; + gap: 1rem; + } + + .feature-real-img3 { + width: 5vw; + height: 10vh; + } + + .feature-demo-img3 { + width: 60px; + height: 40px; + } + + /* ----------------------------------------------------EDIT------------------------------------------------------------------------*/ + + .feature-model1-div1 { + display: flex; + flex-direction: row; + } + .feature-model1-div1-input { + margin-top: 15px; + } + .feature-model1-div1-img { + margin: 15px; + } + .feature-model1-div2 { + display: flex; + flex-direction: row; + gap: 1.5rem; + margin-left: 17px; + } + .feature-model1-subdiv2 { + display: flex; + flex-direction: row; + } + .feature-model1-subdiv2-input { + margin: 1rem 0rem 0rem 0.5rem; + } + .model1-submit { + display: flex; + flex-wrap: wrap; + justify-content: right; + } + + /* .ant-space { + flex-direction: column; + } */ + /* ----------------------------------------------------VIEW---------------------------------------------------------------------- */ + .featureMaindiv { + display: flex; + flex-direction: row; + } + + .feature-demo-view-div1 { + display: flex; + gap: 15rem; + } + .feature-demo-view-range1 { + width: 450px; + height: 25px; + margin-top: 35px; + background-color: gray; + margin-bottom: 10px; + } + + .feature-demo-view-range2 { + width: 420px; + height: 25px; + background-color: gray; + } + + .feature-demo-master-view-div2 { + display: flex; + gap: 5rem; + margin: 10rem 0rem 2rem 4rem; + } + + .feature-demo-view-div2 { + display: flex; + gap: 6rem; + } + + .feature-demo-view-div3 { + display: flex; + gap: 6rem; + } + + .feature-demo-view-sub-range { + width: 180px; + height: 20px; + margin-top: 15px; + background-color: lightgray; + margin-bottom: 10px; + } + + .model2-submit { + margin: 0rem 0rem 0rem 32rem; + } + + .feature-demo-rally-range1 { + width: 450px; + height: 25px; + margin-left: 50px; + margin-top: 35px; + background-color: #fff; + margin-bottom: 10px; + } + + .feature-rally-range1 { + width: 100%; + background-color: #fff; + font-weight: 600; + font-size: 19px; + margin-left: 20px; + } + + .ant-btn-dashed { + border-color: #008000; + } + + .Add-button { + margin: 0rem 0rem 9rem 22rem; + color: #008000; + border: solid 1px #008000; + border-radius: 50%; + padding: 10px; + position: absolute; + bottom: 170px; + left: 44px; + } + + /* media queries */ + /* For screens smaller than 768px (e.g., smartphones) */ + @media (max-width: 768px) { + .feature-real-div2 { + flex-wrap: wrap; + } + .feature-real-div3 { + flex-wrap: wrap; + } + + /* .ant-btn { + position: absolute; + right: 82px; + bottom: 50px; + } */ + .feature-demo-master-div2 { + display: block; + gap: 0rem; + margin-left: 0px; + flex-direction: column; + } + .feature-demo-div1 { + display: block; + gap: 0rem; + } + .feature-demo-div2 { + display: block; + gap: 0rem; + } + .feature-demo-div3 { + display: block; + gap: 0rem; + } + .feature-demo-img1 { + width: 60px; + height: 40px; + } + .feature-demo-img2 { + width: 45px; + height: 35px; + } + .feature-demo-img3 { + width: 45px; + height: 35px; + } + .feature-demo-range1 { + width: 50px; + height: 15px; + } + .feature-model1-subdiv2 { + flex-direction: column; + margin-left: 0rem; + } + } + + /* For screens between 768px and 991px (e.g., tablets) */ + @media (min-width: 768px) and (max-width: 991px) { + .feature-demo-master-div2 { + flex-wrap: wrap; + flex-direction: column; + margin-left: 0px; + } + /* .ant-btn { + position: absolute; + right: 82px; + bottom: 50px; + } */ + .feature-demo-div1 { + display: block; + gap: 0rem; + } + .feature-demo-div2 { + display: block; + gap: 0rem; + } + .feature-demo-div3 { + display: block; + gap: 0rem; + } + .feature-demo-range1 { + width: 100px; + height: 15px; + } + .feature-model1-div2 { + flex-wrap: wrap; + margin: -1rem 0rem 0rem 0rem; + } + .Add-button { + margin: 0rem 0rem -0.5rem 10rem; + } + } + + @media (max-width: 542px) { + .feature-demo-master-div2 { + flex-wrap: wrap; + margin-left: 0px; + } + .feature-demo-div1 { + display: block; + gap: 0rem; + } + .feature-demo-div2 { + display: block; + gap: 0rem; + } + .feature-demo-div3 { + display: block; + gap: 0rem; + } + .feature-demo-img1 { + width: 60px; + height: 40px; + } + .feature-demo-img2 { + width: 45px; + height: 35px; + } + .feature-demo-img3 { + width: 45px; + height: 35px; + } + .feature-model1-div2 { + gap: 0rem; + flex-wrap: wrap; + margin: -1rem 0rem 0rem 0rem; + } + .Add-button { + margin: 0rem 0rem -0.5rem 10rem; + } + .feature-demo-rally-range2 { + margin-left: 40px; + } + .feature-real-div2 { + flex-direction: column; + margin-bottom: 1rem; + padding: 0px; + } + .feature-real-div3 { + flex-direction: column; + padding: 0px; + } + .featureMaindiv { + display: block; + } + } + + @media (max-width: 375px) { + .feature-demo-master-div2 { + flex-wrap: wrap; + flex-direction: column; + margin-left: 0px; + } + .feature-demo-div1 { + display: block; + gap: 0rem; + } + .feature-demo-div2 { + display: block; + gap: 0rem; + } + .feature-demo-div3 { + display: block; + gap: 0rem; + } + /* .ant-btn { + position: absolute; + right: 40px; + bottom: 50px; + } */ + .feature-model1-div2 { + gap: 0rem; + flex-wrap: wrap; + margin: -1rem 0rem 0rem 0rem; + } + .Add-button { + margin: 1rem 0rem -9rem 5rem; + } + .ImageWithData { + width: 170px; + } + } + + .ImageWithOutData { + width: 160px !important; + } + + .ImageWithData { + width: 250px; + } + + .SubImageWithData + { + width: 60px; + height: 60px; + } + + .SubImageWithOutData + { + width: 60px !important; + } + \ No newline at end of file diff --git a/src/styles/template/Feature/feature3.css b/src/styles/template/Feature/feature3.css new file mode 100644 index 0000000..a7da6c0 --- /dev/null +++ b/src/styles/template/Feature/feature3.css @@ -0,0 +1,141 @@ +.features3Body { + display: flex; + /* grid-template-columns: repeat(2, 1fr); + */ + /* column-gap: 4rem; */ + /* padding: min(2rem, 5%); */ + overflow: auto; + /* background-color: fff; */ + /* background: #e8e8e8b2; */ +} + +.feature3mainImage { + width: min(50%, 10rem); +} + +.feature3subImage { + /* width: min(50%, 5rem); */ + break-inside: avoid; + /* box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; */ + width: 2.4rem; +} + +.feature3Card { + box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px; + padding: 2rem 2rem; + margin: 1rem; + display: flex; + flex-direction: column; + row-gap: 1rem; + border-radius: 11px; + width: 18rem; + /* border: 1px solid; */ + background-color: #fff; +} + +/* .feature3mainImage { + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; + border-radius: 10px; + } */ + +.feature3SubCatP { + display: flex; + /* flex-wrap: wrap; */ + row-gap: 1rem; + column-gap: 1rem; + align-items: center; +} +/* .feature3Des { + text-wrap: nowrap;} */ + +.feature3SubCat { + display: flex; + column-gap: 0.2rem; + align-items: center; +} + +.formSubDiv { + display: flex; +} + +.feature3EmptyBox { + display: flex; + /* align-items: center; */ + background-color: #929292; + width: 5rem; + height: 1rem; +} + +.feature3DesEmpty { + width: min(10rem, 60%); +} + +.feature3SingleGrid { + grid-template-columns: repeat(1, 1fr); +} + +.featureButton { + width: 100%; + display: flex; + justify-content: flex-end; +} + +@media screen and (max-width: 450px) { + /* .features3Body { + display: grid; + grid-template-columns: repeat(1, 1fr); + row-gap: 2rem; + } */ + .feature3Card { + margin: 0 !important; + padding: 0.5rem !important; + + transform: scale(1); + width: 14.5rem; + justify-content: center; + } + .feature3SubCatP { + transform: scale(0.7); + justify-content: center; + } +} + +.features3Body::-webkit-scrollbar { + display: flex !important; /* Width of the scrollbar */ +} + +.features3Body::-webkit-scrollbar { + width: 10px; + height: 4px; + cursor: pointer; +} + +.features3Body::-webkit-scrollbar-track { + background: #f1f1f1; /* Color of the track */ +} + +.features3Body::-webkit-scrollbar-thumb { + background: #888; /* Color of the scroll thumb */ +} + +.features3Body::-webkit-scrollbar-thumb:hover { + background: #555; /* Color of the scroll thumb on hover */ +} + +/* .feature3Card{ + width: 7rem; + height: 5rem; + } */ + +.features3Body { + display: flex; + flex-wrap: wrap; + transform: scale(0.9); + row-gap: 1.3rem; + +} + +.feature3Card:hover { + transform: scale(0.9); +} + diff --git a/src/styles/template/Navbar/NavbarHorizontal.scss b/src/styles/template/Navbar/NavbarHorizontal.scss new file mode 100644 index 0000000..1face24 --- /dev/null +++ b/src/styles/template/Navbar/NavbarHorizontal.scss @@ -0,0 +1,575 @@ +.rt-nav-list { + display: none; + list-style-type: none; +} + +.ant-menu-overflow { + justify-content: flex-end; +} + +.ant-menu-light { + background: rgba(255, 255, 255, 0) !important; + border-radius: 12.9916px; + padding-inline: 0rem; + /* margin-inline: 1rem; */ +} + +.ant-menu-horizontal { + border-bottom: none; +} + +.dispflex { + display: flex; + justify-content: space-evenly; + align-items: center; + + // background: white !important; +} + +.nav-offer { + font-size: 16px !important; + cursor: pointer; + text-transform: uppercase; + font-weight: 550; + border: none; + color: #333; + padding: 12px 0px; + border-radius: 6px; +} + +.nav-offer:hover { + // border-bottom: 2px solid #0f67da; + border-radius: 0; + color: #0f67da; + padding: 12px 0px; +} + +.divApplogo { + padding: 0.5rem; + display: flex; +} + +.divAppname { + display: flex; + width: min-content; + align-items: center; + flex-wrap: wrap; +} + +.PayPreFont { + // font-family: 'Playball', cursive; +} + +.toggleuppernav { + display: none; +} + +.upmenuList { + display: flex; + font-size: 14px; + flex-direction: row; + column-gap: 2rem; + font-weight: 600; + // font-family: var(--HEADING_FONT_FAMILY) +} + +.user-nav-opt { + flex-direction: column; + display: flex; + row-gap: 0.6rem; + padding: 0.3rem; +} + +/* For screens smaller than 414px (smartphones) */ +@media (min-width: 360px) and (max-width: 459px) { + .upmenuList { + display: none !important; + } + + .scroluppernav { + display: none; + } + + .toggleuppernav { + display: flex; + flex-direction: row; + column-gap: 2rem; + } + + .dispflex { + justify-content: space-around; + } + + .toggle-container { + display: none; + } + + .nav-toggle { + position: absolute; + top: 5rem; + z-index: 1; + text-align: right; + background-color: #fff; + height: auto; + // font-family: var(--HEADING_FONT_FAMILY); + font-size: 14px; + font-weight: 600; + transition-duration: 0.6s; + } + + .rt-nav-list { + // padding: 1rem 16rem; + padding: 0rem 3rem; + line-height: 2rem; + flex-direction: column; + display: flex; + transition-duration: 0.6s; + box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1) !important; + align-content: center; + } + + .rt-nav-list:hover { + color: #c50909; + } + + // .nav-user-toggle{ + // position: absolute; + // top: 3rem; + // right: 0; + // z-index: -1; + // background-color: #fff; + // // font-family: var(--HEADING_FONT_FAMILY); + // font-size: 14px; + // font-weight: 600; + + // } + + // .user-nav-opt{ + + // padding: 1rem 0rem; + // line-height: 2rem; + // flex-direction: column; + // display: flex; + // background-color: #ffffff; + // box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1) !important; + // } + + .nav-user-fullview { + position: absolute; + top: 10rem; + right: 0; + z-index: -1; + background-color: #fff; + // font-family: var(--HEADING_FONT_FAMILY); + font-size: 14px; + font-weight: 600; + } + + .user-nav-opt-fullview { + // padding: 1rem 0rem; + // position: absolute !important; + // line-height: 2rem; + // flex-direction: column; + // background-color: #ffffff; + // box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1) !important; + } +} + +/* For screens smaller than 768px (smartphones) */ +@media (min-width: 460px) and (max-width: 767px) { + .scroluppernav { + display: none; + } + + .Home-navbar { + display: none !important; + } + + .toggleuppernav { + display: flex; + justify-content: space-around; + flex-direction: row; + column-gap: 2rem; + } + + // .nav-user-toggle{ + // position: absolute; + // top: 3rem; + // right: 0; + // z-index: -1; + // background-color: #fff; + // // font-family: var(--HEADING_FONT_FAMILY); + // font-size: 14px; + // font-weight: 600; + + // } + + // .user-nav-opt{ + // padding: 1rem 1rem; + // line-height: 2rem; + // flex-direction: column; + // display: flex; + // align-items: center; + // background-color: #ffffff; + // box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + // } + + .dispflex { + justify-content: space-around; + column-gap: 10rem; + } + + .nav-toggle { + top: 5rem; + right: 0; + z-index: 1; + // width: 100%; + position: absolute; + height: auto; + // font-family: var(--HEADING_FONT_FAMILY); + font-size: 14px; + font-weight: 600; + } + + .rt-nav-list { + // padding: 1rem 22rem; + padding: 0rem 3rem; + width: 100%; + right: 0; + text-align: left; + display: flex; + flex-wrap: wrap; + flex-direction: column; + background-color: #ffffff; + box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + line-height: 2rem; + align-content: center; + } + + .rt-list { + cursor: pointer; + width: 100%; + text-align: left; + color: #000; + + & li { + display: inline; + margin: 0 1rem; + color: #000000; + } + } + + .rt-list:hover { + cursor: pointer; + color: #009719 !important; + } + + .usr-acc { + cursor: pointer; + width: 100%; + text-align: center; + + & li { + display: inline; + margin: 0 1rem; + color: #000000; + } + } + + .usr-acc:hover { + cursor: pointer; + color: #009719; + } + + // .nav-user-toggle{ + // position: absolute; + // top: 3rem; + // right: 0; + // z-index: 1; + // // font-family: var(--HEADING_FONT_FAMILY); + // font-size: 14px; + // font-weight: 600; + + // } +} + +.divApplication { + text-align: center; + line-height: 2px; + // width: 10px; + display: flex; + justify-content: space-around; +} + +.divAppname { + display: flex; + flex-direction: row; + // row-gap: 0.1rem; +} + +@media (min-width: 280px) and (max-width: 459px) { + .Home-navbar { + display: none; + } + + .Uppernav { + display: none; + } + + .extranav { + display: none; + } + + .small_nav { + width: 0vh !important; + } + + .extra_small_div { + font-size: 14px !important; + text-transform: uppercase; + } + + .faqsimg { + display: none !important; + } + + .extra_small_nav { + margin: 0vw 0vh; + width: 70vw; + display: flex; + justify-content: space-around; + font-size: 13.2px; + } + + // .toggle-container{ + // width: 80vh !important; + // } + + .collapsed-menu { + width: 80vh !important; + margin: 1vw 0vh !important; + } + + .ant-collapse { + width: 75vh !important; + } +} + +@media all and (max-width: 899px) { + .nav-toggle { + top: 5rem; + right: 0; + z-index: 1; + // width: 100%; + position: absolute; + height: auto; + // font-family: var(--HEADING_FONT_FAMILY); + font-size: 14px; + font-weight: 600; + } + + // .nav-user-toggle{ + // position: absolute; + // top: 3rem; + // right: 0; + // width: 200px; + // z-index: -1; + // background-color: #fff; + // // font-family: var(--HEADING_FONT_FAMILY); + // font-size: 14px; + // font-weight: 600; + + // } + + // .user-nav-opt{ + // padding: 1rem 1rem; + // line-height: 2rem; + // flex-direction: column; + // display: flex; + // align-items: center; + // background-color: #ffffff; + // box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + // } + + .rt-nav-list { + padding: 0rem 3rem; + // position: absolute; + // padding: 1rem 22rem; + width: 100%; + right: 0; + text-align: left; + display: flex; + flex-wrap: wrap; + flex-direction: column; + background-color: #ffffff; + box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); + line-height: 2rem; + align-content: center; + } + + .toggleuppernav { + display: flex; + flex-direction: row; + column-gap: 2rem; + } + + .upmenuList { + display: none !important; + } + + .Home-navbar { + display: none; + } + + .Uppernav { + display: none; + } + + .extranav { + display: none; + } + + // .toggle-container{ + // width: 60vh; + // } + + .extra_small_div { + font-size: 14px !important; + color: #000000; + // font-family: var(--PARA_FONT_FAMILY); + } + + .sliderdiv { + } + + .freebtn { + // width: 30vh; + } +} + +@media (min-width: 1422px) and (max-width: 1077px) { + .Home-navbar { + opacity: 12% !important; + } +} + +* { + margin: 0; + padding: 0; +} + +// body { +// height: 200rem; +// // background-color: rgb(110, 110, 110); +// } +// nav { +// position: fixed; +// width: 100%; +// display: flex; +// justify-content: center; +// background-color:#fff !important; +// align-items: center; +// height: 10rem; +// z-index: 3; +// } +// nav{ +// position: fixed; +// width: 100%; +// display: flex; +// justify-content: space-around; +// background-color: transparent !important; +// // height: 10rem; +// z-index: 10; +// flex-direction: column; +// } + +// ul { +// list-style: none; +// } + +.AppBg { + background-color: var(--APP_BASED_BACKGROUND_COLOR) !important; +} + +.navclass nav { + background-color: white !important; +} + +// .user-nav-opt-fullview{ +// position: absolute !important; +// font-size:14px; +// font-weight:500; +// line-height: 2rem; +// display:flex; +// top: 5rem; +// right: 0; +// // font-family: var(--PARA_FONT_FAMILY); +// align-items: center; +// margin: 1rem 14rem; +// background-color:#ffffff !important; ; +// flex-direction: column; +// box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1) !important; +// text-align:'right'; +// row-gap:'0.7rem'; +// } + +.user-nav-opt-fullview { + color: #00000000; + display: flex; + flex-direction: column; + row-gap: 0.6rem; + margin: 0.3rem; +} + +.honavlinkWOData { + background-color: #9b9b9b; + width: 100px; + height: 15px; + font-size: 22px; +} + +.honavlinkWOData { + font-size: 14px; + width: 80px; + text-decoration: none; + color: #bababa; +} + +.honavPayPreFontwodata { + background-color: #9b9b9b; + width: 100px; + height: 15px; + font-size: 22px; +} + +.honavPayPreFontwodata { + font-size: 14px; + width: 80px; + text-decoration: none; + color: #bababa; +} + +.NavBarForm { + display: flex; + flex-direction: column; +} + +.navclass { + .navbar { + position: relative !important; + } +} + +.scroll { + .nav-links a { + color: #000000 !important; + } +} + +.templatetoHome { + svg { + border: none !important; + padding: 1px 5px 5px 5px !important; + display: flex !important; + } +} diff --git a/src/styles/template/Navbar/SideNav.scss b/src/styles/template/Navbar/SideNav.scss new file mode 100644 index 0000000..42d34cc --- /dev/null +++ b/src/styles/template/Navbar/SideNav.scss @@ -0,0 +1,81 @@ +.UserAvatar{ + display: flex; + justify-content: center; + align-items: flex-end; + margin: 2.5rem 0px; + + // row-gap: 1rem; +} + +.sideNavePar { + width: clamp(43px, 9vw, 2000px); + overflow:auto; + display: flex; + flex-direction: column; + align-items: center; + + + + + // color: white +} + +.appPage{ + min-width: 100vw; + height: 100vh; + display: flex; + overflow: hidden; +} + + +.sidenavpaypreLogoDiv { + display: flex; + justify-content: center; + align-items: center; + margin: .5rem 0px; + // row-gap: 1rem; +} + + +.PreviewNav1{ + display: flex; + align-items: center; + flex-direction: column; + justify-content: space-evenly; + // height: 25rem; + height: inherit; + width: 6rem; +} + +.preVlink{ + display: flex; + flex-direction:column; + color: #000000 !important; + row-gap: 1rem; + cursor: pointer; +} + +// .nvlink{ +// font-size:13px !important +// } + + +// .nvlink:hover{ +// font-weight:600; +// } + + +.nvlinkWOData{ + background-color: #9b9b9b; + width: 100px; + height:15px; + font-size:22px; +} + + +.nvlinkWOData{ + font-size: 14px; + width: 80px; + text-decoration: none; + color: #bababa; +} \ No newline at end of file diff --git a/src/styles/template/commonApp/AppTemplate.scss b/src/styles/template/commonApp/AppTemplate.scss new file mode 100644 index 0000000..858d652 --- /dev/null +++ b/src/styles/template/commonApp/AppTemplate.scss @@ -0,0 +1,529 @@ +// .AppTemplateDIv{ +// background-color: rgb(247, 247, 247); +// margin: 2rem 2rem; +// padding: 2rem 2rem; +// } + +// .Nav-templates{ +// display: flex; +// margin: 2rem 0rem; +// width:100%; +// } + +// .TemplateCard{ +// margin: 2rem 3rem; +// width:max-content; +// } + +// .tempUp{ +// display: flex; +// width: 66vw; +// flex-wrap:wrap; +// // flex-direction: row; +// gap:1rem; +// } +// .swatches-picker{ +// width: min(61vw,250px) !important; +// height: 240px !important; +// } + +// .fontsdiv{ +// display: flex; +// // flex-wrap:wrap; +// flex-direction: row; +// gap:0.5rem; +// } +// .colorBtn{ + +// background-color: var(--PRIMARY_BUTTON_BG_COLOR); +// color: white; +// font-family: var(--HEADING_FONT_FAMILY); +// font-style: normal; +// border: 4.8px solid var(--PRIMARY_BUTTON_BG_COLOR); +// border-radius: 8px; +// width: 30%; +// float: right; +// margin-top: 18px; +// } + +// .colorDropdown .ant-select-single:not(.ant-select-customize-input) .ant-select-selector{ +// height:54px; +// } +// .plusOutlinedIcon{ +// margin-top: 16px; +// } +// .fontInputs{ +// display: flex; +// flex-wrap: wrap; +// gap:1rem; +// } + +// #app { +// height: 100%; +// } + +// .swiper { +// width: 100%; +// height: 100%; +// } + +// .swiper-slide { +// text-align: center; +// font-size: 18px; +// background: #fff; +// width:max-content !important; +// /* Center slide text vertically */ +// display: flex; +// justify-content: center; +// align-items: center; +// } + +// .swiper-slide img { +// display: block; +// width: 100%; +// height: 100%; +// object-fit: cover; +// } + +// .swiper { +// width: 100%; +// height:max-content; +// margin: 10px auto; + +// } + +// .append-buttons { +// text-align: center; +// margin-top: 20px; +// } + +// .append-buttons button { +// display: inline-block; +// cursor: pointer; +// border: 1px solid #007aff; +// color: #007aff; +// text-decoration: none; +// padding: 4px 10px; +// border-radius: 4px; +// margin: 0 10px; +// font-size: 13px; +// } + +// .swiper-wrapper{ +// transform: translate3d(40px, 0px, 0px); +// padding: 0.2rem 0rem; +// } + +// .swiper-button-prev:after, .swiper-button-next:after { +// font-family: swiper-icons; +// font-size: 15px !important; +// text-transform: none !important; +// letter-spacing: 0; +// font-variant: initial; +// text-align:center !important; +// // border:1px solid #000; +// background-color: #fff; +// padding:0.5rem 0.7rem; +// border-radius:50px; +// } + +// .swiper-button-next, .swiper-rtl .swiper-button-prev { +// right: var(--swiper-navigation-sides-offset, 10px); +// left: auto; +// } +// .swiper-button-next, .swiper-rtl .swiper-button-prev { +// right: var(--swiper-navigation-sides-offset, 10px); +// left: auto; +// } +// .swiper-button-prev, .swiper-button-next { +// position: absolute; +// top: var(--swiper-navigation-top-offset, 50%); +// width: 30px !important; +// height: 30px !important; +// z-index: 10; +// cursor: pointer; +// display: flex; +// align-items: center; +// justify-content: center; +// color: #000 !important; + +// } + +// h1{ +// font-size: 18px; +// font-family: var(--HEADING_FONT_FAMILY); +// font-weight: 600; +// } + +.AppTemplateDIv { + background-color: rgb(247, 247, 247); + margin: 2rem 2rem; + padding: 2rem 2rem; +} + +.Nav-templates { + display: flex; + margin: 2rem 0rem; + width: 100%; +} + +.TemplateCard { + margin: 2rem 3rem; + width: max-content; + border-radius: 3%; +} + +.tempUp { + display: flex; + width: 66vw; + flex-wrap: wrap; + // flex-direction: row; + gap: 1rem; + & .field-DropDown { + width: 160px !important; + } +} +.swatches-picker { + width: min(61vw, 250px) !important; + height: 240px !important; +} + +.fontsdiv { + display: flex; + // flex-wrap:wrap; + flex-direction: row; + gap: 0.5rem; +} +.colorBtn { + background-color: var(--PRIMARY_BUTTON_BG_COLOR); + color: white; + font-family: var(--HEADING_FONT_FAMILY); + font-style: normal; + border: 4.8px solid var(--PRIMARY_BUTTON_BG_COLOR); + border-radius: 8px; + width: 30%; + float: right; + margin-top: 18px; +} + +.colorDropdown + .ant-select-single:not(.ant-select-customize-input) + .ant-select-selector { + height: 54px; +} +.plusOutlinedIcon { + margin-top: 16px; +} +.fontInputs { + display: flex; + flex-wrap: wrap; + gap: 1rem; +} + +#app { + height: 100%; +} + +.swiper { + width: 100%; + height: 100%; +} + +.swiper-slide { + text-align: center; + font-size: 18px; + background: #fff; + width: max-content !important; + /* Center slide text vertically */ + display: flex; + justify-content: center; + align-items: center; +} + +.swiper-slide img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} + +.swiper { + width: 100%; + height: max-content; + margin: 10px auto; +} + +.append-buttons { + text-align: center; + margin-top: 20px; +} + +.append-buttons button { + display: inline-block; + cursor: pointer; + border: 1px solid #007aff; + color: #007aff; + text-decoration: none; + padding: 4px 10px; + border-radius: 4px; + margin: 0 10px; + font-size: 13px; +} + +.swiper-wrapper { + transform: translate3d(40px, 0px, 0px); + padding: 0.2rem 0rem; +} + +.swiper-button-prev:after, +.swiper-button-next:after { + font-family: swiper-icons; + font-size: 15px !important; + text-transform: none !important; + letter-spacing: 0; + font-variant: initial; + text-align: center !important; + // border:1px solid #000; + background-color: #fff; + padding: 0.5rem 0.7rem; + border-radius: 50px; +} + +.swiper-button-next, +.swiper-rtl .swiper-button-prev { + right: var(--swiper-navigation-sides-offset, 10px); + left: auto; +} +.swiper-button-next, +.swiper-rtl .swiper-button-prev { + right: var(--swiper-navigation-sides-offset, 10px); + left: auto; +} +.swiper-button-prev, +.swiper-button-next { + position: absolute; + top: var(--swiper-navigation-top-offset, 50%); + width: 30px !important; + height: 30px !important; + z-index: 10; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: #000 !important; +} + +h1 { + font-size: 18px; + font-family: var(--HEADING_FONT_FAMILY); + font-weight: 600; +} + +.setscalesize { + transform: scale(0.9); +} + +.themeselection { + display: block; + flex-direction: column; + align-items: left; + cursor: pointer; + padding: 1rem 1rem; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #fff; + + .navbar { + position: relative !important; + } +} + +.themeselection:hover { + // display: block; + // cursor: pointer; + // padding: 2rem 4rem; + // font-size: 22px; + // -webkit-user-select: none; + // -moz-user-select: none; + // -ms-user-select: none; + // user-select: none; + + // border-style: dashed; + // border-width: 1px; +} + +.themeselection.selected { + border: #424242 solid 1px; + border-style: dashed; + border-width: 1.9px; + background-color: #ffffff; + box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1); + padding: 0rem 1rem; + display: flex; + flex-direction: column; +} + +// updated / + +.themeselection input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +/* Create a custom radio button */ +.checkmark { + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + border-radius: 1%; + z-index: -1; +} + +.themeselection:hover input ~ .checkmark { + background-color: #ccc; +} + +.themeselection input:checked ~ .checkmark { + // background-color: #4ce071; + border: #424242 solid 1px; + border-style: dashed; + border-width: 1.9px; + box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1); +} + +.checkmark:after { + content: ""; + position: absolute; + display: none; +} + +.themeselection .checkmark:after { + top: 10px; + left: 10px; + width: 15px; + height: 15px; + border-radius: 50%; + // background: white; +} + +.selectionCard { + background-color: #ffffff; + // border: #000 solid 1px; + border-radius: 6px; + display: flex; + flex-direction: column; + position: fixed; + padding: 1rem 2rem; + bottom: 0; + right: 0; + margin: 0rem 0.5rem; + z-index: 2; + & ul { + list-style: none; + } +} + +.tempView { + height: 80vh; + width: 80vw; + overflow-y: scroll; + overflow-x: hidden; +} + +.sidenavTempOverall { + display: flex; + flex-direction: column !important; + transition-duration: 0.6s; +} +.tempOptions { + display: flex; + padding: 1rem 0rem; + flex-direction: row; + font-size: 18px; + gap: 1rem; + + svg { + background-color: #141414; + color: #fff; + height: 30px; + width: 30px; + padding: 5px; + border-radius: 5px; + cursor: pointer; + } +} + +.pointerModal { + pointer-events: none; +} + +.FloatSection_Update { + // width: 72%; + height: 60px; + background-color: rgb(255, 255, 255); + position: absolute; + z-index: 1; + bottom: 0; + padding: 0rem 5rem; + display: flex; + flex-direction: row; + column-gap: 2rem; + align-items: flex-end; + right: 0; +} + +@media (min-width: 278px) and (max-width: 499px) { + .CategoryHorizontal-scroll-container { + overflow: auto !important; + width: 57vw !important; + } + .Nav-templates { + margin: 0 !important; + } + .tempOptions { + font-size: 22px !important; + } + + .themeselection { + transform: scale(0.6) !important; + + display: block; + flex-direction: column; + align-items: left; + cursor: pointer; + padding: 1rem 1rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #fff; + } + .themeselection.selected { + transform: scale(0.5); + } +} + +@media (min-width: 500px) and (max-width: 768px) { + .CategoryHorizontal-scroll-container { + overflow: auto !important; + width: 57vw !important; + } + .Nav-templates { + margin: 0 !important; + } + + .themeselection { + padding: 1rem 1rem !important; + transform: scale(0.6); + } + .themeselection.selected { + transform: scale(0.5); + } +} diff --git a/src/styles/template/commonApp/check.scss b/src/styles/template/commonApp/check.scss new file mode 100644 index 0000000..fcbe3fb --- /dev/null +++ b/src/styles/template/commonApp/check.scss @@ -0,0 +1,543 @@ +// .AppTemplateDIv{ +// background-color: rgb(247, 247, 247); +// margin: 2rem 2rem; +// padding: 2rem 2rem; +// } + +// .Nav-templates{ +// display: flex; +// margin: 2rem 0rem; +// width:100%; +// } + +// .TemplateCard{ +// margin: 2rem 3rem; +// width:max-content; +// } + +// .tempUp{ +// display: flex; +// width: 66vw; +// flex-wrap:wrap; +// // flex-direction: row; +// gap:1rem; +// } +// .swatches-picker{ +// width: min(61vw,250px) !important; +// height: 240px !important; +// } + +// .fontsdiv{ +// display: flex; +// // flex-wrap:wrap; +// flex-direction: row; +// gap:0.5rem; +// } +// .colorBtn{ + +// background-color: var(--PRIMARY_BUTTON_BG_COLOR); +// color: white; +// font-family: var(--HEADING_FONT_FAMILY); +// font-style: normal; +// border: 4.8px solid var(--PRIMARY_BUTTON_BG_COLOR); +// border-radius: 8px; +// width: 30%; +// float: right; +// margin-top: 18px; +// } + +// .colorDropdown .ant-select-single:not(.ant-select-customize-input) .ant-select-selector{ +// height:54px; +// } +// .plusOutlinedIcon{ +// margin-top: 16px; +// } +// .fontInputs{ +// display: flex; +// flex-wrap: wrap; +// gap:1rem; +// } + +// #app { +// height: 100%; +// } + +// .swiper { +// width: 100%; +// height: 100%; +// } + +// .swiper-slide { +// text-align: center; +// font-size: 18px; +// background: #fff; +// width:max-content !important; +// /* Center slide text vertically */ +// display: flex; +// justify-content: center; +// align-items: center; +// } + +// .swiper-slide img { +// display: block; +// width: 100%; +// height: 100%; +// object-fit: cover; +// } + +// .swiper { +// width: 100%; +// height:max-content; +// margin: 10px auto; + +// } + +// .append-buttons { +// text-align: center; +// margin-top: 20px; +// } + +// .append-buttons button { +// display: inline-block; +// cursor: pointer; +// border: 1px solid #007aff; +// color: #007aff; +// text-decoration: none; +// padding: 4px 10px; +// border-radius: 4px; +// margin: 0 10px; +// font-size: 13px; +// } + +// .swiper-wrapper{ +// transform: translate3d(40px, 0px, 0px); +// padding: 0.2rem 0rem; +// } + +// .swiper-button-prev:after, .swiper-button-next:after { +// font-family: swiper-icons; +// font-size: 15px !important; +// text-transform: none !important; +// letter-spacing: 0; +// font-variant: initial; +// text-align:center !important; +// // border:1px solid #000; +// background-color: #fff; +// padding:0.5rem 0.7rem; +// border-radius:50px; +// } + +// .swiper-button-next, .swiper-rtl .swiper-button-prev { +// right: var(--swiper-navigation-sides-offset, 10px); +// left: auto; +// } +// .swiper-button-next, .swiper-rtl .swiper-button-prev { +// right: var(--swiper-navigation-sides-offset, 10px); +// left: auto; +// } +// .swiper-button-prev, .swiper-button-next { +// position: absolute; +// top: var(--swiper-navigation-top-offset, 50%); +// width: 30px !important; +// height: 30px !important; +// z-index: 10; +// cursor: pointer; +// display: flex; +// align-items: center; +// justify-content: center; +// color: #000 !important; + +// } + +// h1{ +// font-size: 18px; +// font-family: var(--HEADING_FONT_FAMILY); +// font-weight: 600; +// } + +.AppTemplateDIv { + background-color: rgb(247, 247, 247); + margin: 2rem 2rem; + padding: 2rem 2rem; +} + +.Nav-templates { + display: flex; + margin: 2rem 0rem; + width: 100%; +} + +.TemplateCard { + margin: 2rem 3rem; + width: max-content; + border-radius: 3%; +} + +.tempUp { + display: flex; + width: 66vw; + flex-wrap: wrap; + // flex-direction: row; + gap: 1rem; + + & .field-DropDown { + width: 160px !important; + } +} + +.swatches-picker { + width: min(61vw, 250px) !important; + height: 240px !important; +} + +.fontsdiv { + display: flex; + // flex-wrap:wrap; + flex-direction: row; + gap: 0.5rem; +} + +.colorBtn { + background-color: var(--PRIMARY_BUTTON_BG_COLOR); + color: white; + font-family: var(--HEADING_FONT_FAMILY); + font-style: normal; + border: 4.8px solid var(--PRIMARY_BUTTON_BG_COLOR); + border-radius: 8px; + width: 30%; + float: right; + margin-top: 18px; +} + +.colorDropdown + .ant-select-single:not(.ant-select-customize-input) + .ant-select-selector { + height: 54px; +} + +.plusOutlinedIcon { + margin-top: 16px; +} + +.fontInputs { + display: flex; + flex-wrap: wrap; + gap: 1rem; +} + +#app { + height: 100%; +} + +.swiper { + width: 100%; + height: 100%; +} + +.swiper-slide { + text-align: center; + font-size: 18px; + background: #fff; + width: max-content !important; + /* Center slide text vertically */ + display: flex; + justify-content: center; + align-items: center; +} + +.swiper-slide img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} + +.swiper { + width: 100%; + height: max-content; + margin: 10px auto; +} + +.append-buttons { + text-align: center; + margin-top: 20px; +} + +.append-buttons button { + display: inline-block; + cursor: pointer; + border: 1px solid #007aff; + color: #007aff; + text-decoration: none; + padding: 4px 10px; + border-radius: 4px; + margin: 0 10px; + font-size: 13px; +} + +.swiper-wrapper { + transform: translate3d(40px, 0px, 0px); + padding: 0.2rem 0rem; +} + +.swiper-button-prev:after, +.swiper-button-next:after { + font-family: swiper-icons; + font-size: 15px !important; + text-transform: none !important; + letter-spacing: 0; + font-variant: initial; + text-align: center !important; + // border:1px solid #000; + background-color: #fff; + padding: 0.5rem 0.7rem; + border-radius: 50px; +} + +.swiper-button-next, +.swiper-rtl .swiper-button-prev { + right: var(--swiper-navigation-sides-offset, 10px); + left: auto; +} + +.swiper-button-next, +.swiper-rtl .swiper-button-prev { + right: var(--swiper-navigation-sides-offset, 10px); + left: auto; +} + +.swiper-button-prev, +.swiper-button-next { + position: absolute; + top: var(--swiper-navigation-top-offset, 50%); + width: 30px !important; + height: 30px !important; + z-index: 10; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: #000 !important; +} + +h1 { + font-size: 18px; + font-family: var(--HEADING_FONT_FAMILY); + font-weight: 600; +} + +.setscalesize { + transform: scale(0.9); +} + +.themeselection { + display: block; + flex-direction: column; + align-items: left; + cursor: pointer; + padding: 1rem 1rem; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #fff; + + .navbar { + position: relative !important; + } +} + +.themeselection:hover { + // display: block; + // cursor: pointer; + // padding: 2rem 4rem; + // font-size: 22px; + // -webkit-user-select: none; + // -moz-user-select: none; + // -ms-user-select: none; + // user-select: none; + + // border-style: dashed; + // border-width: 1px; +} + +.themeselection.selected { + border: #424242 solid 1px; + border-style: dashed; + border-width: 1.9px; + background-color: #ffffff; + box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1); + padding: 0rem 1rem; + display: flex; + flex-direction: column; +} + +// updated / + +.themeselection input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +/* Create a custom radio button */ +.checkmark { + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + border-radius: 1%; + z-index: -1; +} + +.themeselection:hover input ~ .checkmark { + background-color: #ccc; +} + +.themeselection input:checked ~ .checkmark { + // background-color: #4ce071; + border: #424242 solid 1px; + border-style: dashed; + border-width: 1.9px; + box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1); +} + +.checkmark:after { + content: ""; + position: absolute; + display: none; +} + +.themeselection .checkmark:after { + top: 10px; + left: 10px; + width: 15px; + height: 15px; + border-radius: 50%; + // background: white; +} + +.selectionCard { + background-color: #ffffff; + // border: #000 solid 1px; + border-radius: 6px; + display: flex; + flex-direction: column; + position: fixed; + padding: 1rem 2rem; + bottom: 0; + right: 0; + margin: 0rem 0.5rem; + z-index: 2; + + & ul { + list-style: none; + } +} + +.tempView { + height: 80vh; + width: 80vw; + overflow-y: scroll; + overflow-x: hidden; +} + +.sidenavTempOverall { + display: flex; + flex-direction: column !important; + transition-duration: 0.6s; +} + +.tempOptions { + display: flex; + padding: 1rem 0rem; + flex-direction: row; + font-size: 18px; + gap: 1rem; + + svg { + background-color: #141414; + color: #fff; + height: 30px; + width: 30px; + padding: 5px; + border-radius: 5px; + cursor: pointer; + } +} + +.pointerModal { + pointer-events: none; +} + +.FloatSection_Update { + // width: 72%; + height: 60px; + background-color: rgb(255, 255, 255); + position: absolute; + z-index: 1; + bottom: 0; + padding: 0rem 5rem; + display: flex; + flex-direction: row; + column-gap: 2rem; + align-items: flex-end; + right: 0; +} + +@media (min-width: 278px) and (max-width: 499px) { + .CategoryHorizontal-scroll-container { + overflow: auto !important; + width: 57vw !important; + } + + .Nav-templates { + margin: 0 !important; + } + + .tempOptions { + font-size: 22px !important; + } + + .themeselection { + transform: scale(0.6) !important; + + display: block; + flex-direction: column; + align-items: left; + cursor: pointer; + padding: 1rem 1rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #fff; + } + + .themeselection.selected { + transform: scale(0.5); + } +} + +@media (min-width: 500px) and (max-width: 768px) { + .CategoryHorizontal-scroll-container { + overflow: auto !important; + width: 57vw !important; + } + + .Nav-templates { + margin: 0 !important; + } + + .themeselection { + padding: 1rem 1rem !important; + transform: scale(0.6); + } + + .themeselection.selected { + transform: scale(0.5); + } +} diff --git a/src/styles/template/contact/contact.css b/src/styles/template/contact/contact.css new file mode 100644 index 0000000..6a5bbf2 --- /dev/null +++ b/src/styles/template/contact/contact.css @@ -0,0 +1,85 @@ +.contact1 { + display: flex; + /* flex-wrap: wrap; */ + flex-direction: row; + row-gap: 1rem; + justify-content: space-evenly; + margin: 8vw 8vh; + } + .contactNo{ + display: flex; + } + .ContactMail{ + flex-direction: column; + display: flex; + justify-content: space-evenly; + } + .contact-no { + font-style: normal; + font-weight: 500; + font-size: 27.3037px; + color: #000; + } + .contactimg1 { + width: 286px; + height: 244px; + border-radius: 35.9316px 0 0 35.9316px; + } + .helpContainer{ + display: flex; + } + .helpDesk{ + display: flex; + } + .mailLogo{ + display: flex; + align-items: center; + } + @media screen and (max-width:990px){ + .contact1 { + display: flex; + /* flex-wrap: wrap; */ + /* flex-direction: column; */ + row-gap: 2rem; + justify-content: space-evenly; + margin: 0; + align-items: center; + padding: 5px; + } + } + @media screen and (max-width:768px){ + .contactimg1{ + display: none; + } + } + @media screen and (max-width:330px){ + .mailLogo{ + flex-direction: column ; + } + .mail-contact-logo{ + width: fit-content; + margin: auto; + } + } + + @media screen and (max-width:499px){ + .contactimg1{ + display: none; + } + .contact-no{ + font-size: 18px; + } + .resupgrading{ + font-size: 12px; + } + .contact1{ + row-gap: 1.5rem; + } + } + .contact-cont{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + row-gap: 2rem; + } \ No newline at end of file diff --git a/src/styles/template/downloadsource/downloadsource.css b/src/styles/template/downloadsource/downloadsource.css new file mode 100644 index 0000000..3577671 --- /dev/null +++ b/src/styles/template/downloadsource/downloadsource.css @@ -0,0 +1,201 @@ +.downloadtext1 { + font-style: normal; + font-weight: 400; + font-size: clamp(2rem, 1.5dvw, 6rem); + color: #000; + width: 100%; +} +.downloadSource-container { + padding: 4rem 3rem; + display: flex; + justify-content: space-evenly; + background-color: #E8E8E8B2; +} +.downloadsubtext1 { + font-style: normal; + font-weight: 600; + font-size: clamp(0.5rem, 0.8dvw, 1rem); + color: #000; + opacity: 0.7; +} +.left-container { + display: flex; + flex-wrap: wrap; + flex-direction: column; + row-gap: 1rem; + padding: 0rem 2rem; +} +.DS-subcontainer { + display: flex; + flex-direction: row; + row-gap: 1rem; +} +.downloadsources1 { + width: 100%; + background-color: #f8f8f8; + padding-bottom: 5vh; + border-radius: 8px; + display: flex; + flex-direction: column; + justify-content: center; +} + +.downloadsource { + display: flex; + flex-wrap: wrap; + flex-direction: row; + margin: 12vw -1vh; + row-gap: 1rem; +} + +.downloaddiv { + display: flex; + flex-wrap: wrap; + flex-direction: column; + row-gap: 1rem; + display: flex; + flex-grow: 1; + margin: 1vw 16vh; +} + +.downloadtext { + font-style: normal; + font-weight: 400; + font-size: clamp(1rem, 1.5dvw, 6rem); + color: #000000; +} +.downloadsubtext { + font-style: normal; + font-weight: 600; + font-size: clamp(0.5rem, 0.8dvw, 1rem); + color: #000000; + opacity: 0.7; +} +.DS-button-container { + display: flex; + justify-content: center; +} + +.downloadsources { + width: 880px; + height: 224px; + display: flex; + flex-wrap: wrap; + flex-grow: 1; + flex-direction: column; + row-gap: 1rem; + background: rgba(240, 240, 240, 0.5); + border-radius: 18.3177px; +} + +.downloadsourcestext { + font-style: normal; + font-weight: 500; + font-size: 22.7337px; + color: #000000; + font-size: clamp(1.5rem, 1.5dvw, 2rem); + padding: 17px 48px; +} + +/* CSS */ +.downloadbutton1 { + width: 170px; + height: 45px; + background-color: #37943C; + font-family: Gilroy; + color: #fff; + font-style: normal; + font-weight: 500; + font-size: 14px; + border-radius: 8px; + display: flex; + letter-spacing: 0.5px; + justify-content: space-between; + align-items: center; + z-index: 2; + margin-top: 1rem; + + padding: 1rem; + border: none; +} +.ancharTag{ + text-decoration: none; + color: #000; +} +.tryIt{ + text-decoration: none; + color:#fff; +} +@media screen and (max-width: 980px) { + .DS-subcontainer { + flex-direction: column; + } +} + + + +@media screen and (max-width: 550px) { + .DS-subcontainer { + flex-direction: column; + } + .downloadtext1 { + font-size: clamp(1rem, 1.5dvw, 6rem); + width: 100%; + } + .left-container{ + padding: 0; + } + + .resupgrading{ + width: 80%; + } + .Hide-on-smallScreen{ + display: none !important; + } + .overview-downloads-grp{ + font-size: 13px; + font-weight: 600; + width: max-content !important; + } + .contactimg1{ + display: none; + } + .downloadSource-container{ + padding: 0rem 1rem; + } + .downloadsourcestext { + font-style: normal; + font-weight: 500; + font-size: 22.7337px; + color: #000000; + font-size: clamp(1rem, 1.5dvw, 2rem); + padding: 17px 14px; + } + .downloadssrc{ + display: flex; + /* flex-wrap: wrap; */ + justify-content: flex-start; + row-gap: 1rem; + column-gap: 1rem; + margin: 0px 0px; + } + .downloadsources1 .overview-downloads-grp{ + padding: 0.4rem 0.5rem !important; + } + +} + +.overview-downloads-grp{ + width: max-content !important; + font-size: 13px; + font-weight: 600; + padding:0.4rem 1rem +} +.downloadssrc{ + display: flex; + /* flex-wrap: wrap; */ + justify-content: flex-start; + row-gap: 1rem; + column-gap: 1rem; + margin: 0px 10px; +} diff --git a/src/styles/template/overView/overView1.scss b/src/styles/template/overView/overView1.scss new file mode 100644 index 0000000..309dd5c --- /dev/null +++ b/src/styles/template/overView/overView1.scss @@ -0,0 +1,372 @@ +// .Overview1ImageDiv +// { +// width: 31vw; +// } +// .Overview1ImagePreview +// { +// width: 22vw; +// position: relative; +// right: 50%; +// } +//dhana +.Overview1ImagePreview +{ + width: 100%; + position: relative; +} + +.Overview1ImageDiv { + position: absolute; + z-index: 0; + top: 15%; + width: 50%; + right: 0%; +} +//dhana + +// .Overview1ImageDiv +// { +// position: absolute; +// z-index: 0; +// top: 10.6%; +// width: 68vw; +// right: -6%; +// } + +.overviewmaindiv { + display: flex; + flex-wrap: wrap; + flex-direction: column; +} + +.overviewmainDIV{ + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; +} + +.overviewsubdiv { + display: flex; + // flex-wrap: wrap; + flex-direction: row; + gap: 0.5rem; +} +.overview1subdiv { + display: flex; + flex-wrap: wrap; + flex-direction: column; + gap: 1.6rem; + // pointer-events: none; + flex-grow: 1; + padding: 0px 50px; + justify-content: center; +} +// .overview1subdiv { +// display: flex; +// flex-wrap: wrap; +// flex-direction: column; +// gap: 1.6rem; +// // pointer-events: none; +// flex-grow: 1; +// padding: 0px 60px; +// } +.overview1subdivdata { + display: flex; + flex-wrap: wrap; + flex-direction: column; + // gap: 0.5rem; + // pointer-events: none; + padding: 3.5rem 0; +} + +// .overview1subdivdata { +// display: flex; +// flex-wrap: wrap; +// flex-direction: column; +// padding: 3.5rem 0; +// } + +.overviewmain { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.overviewmainmodal { + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: space-between; +} + +.overviewImg p { + color: deepskyblue; +} + +.overviewbtn { + display: flex; + justify-content: flex-end; +} + +.empTitleData { + background-color: #929292; + color: #333; + border: 0; + height: 10px; + width: 180px; +} +.empSubTitleData { + background-color: #cccccc; + color: #333; + border: 0; + height: 10px; + width: 80px; +} + +.empButtonTextData { + background-color: #f97068; + color: #333; + border: 0; + height: 20px; + width: 100px; +} +.empLinkData { + background-color: #cccccc; + color: #333; + border: 0; + height: 10px; + width: 30px; + display: flex; +} + +.overviewpreTitleData { + // width: min(45vw,36vw); + font-size: max(2.8rem, 2.5dvw); + font-weight: 600; + color: #000; + // line-height: 1.5; +} + +.preSubTitleData { + font-style: normal; + font-weight: 400; + font-size: max(0.8rem, 1.3dvw); + color: #2e2e2e; + width: min(47vw, 437px); +} + +.preLinkData { + width: min(60vw, 165px); + box-shadow: 0 4px 15px #0000001a; + border-radius: 10px; + border: 0px; + background: rgba(255, 255, 255, 0.5); + display: flex; + align-items: center; + column-gap: 0.5rem; + padding: 7px 18px; + font-size: 0.8rem; + border: 1px solid rgba(0, 0, 0, 0.048); + transition-duration: 0.6s; + cursor: pointer; +} + +.overviewNodata { + align-items: center; + font-size: 20px; + display: flex; + flex-wrap: wrap; + flex-direction: column; + gap: 1rem; +} + +.preButtonTextData { + width: 230px; + height: 45px; + color: #fff; + font-style: normal; + font-weight: 500; + font-size: 14px; + border-radius: 8px; + display: flex; + letter-spacing: 0.5px; + justify-content: space-between; + align-items: center; + border: none; + z-index: 2; +} + +.preButtonTextData { + // border: 1px solid; + overflow: hidden; + span { + z-index: 20; + } + + &:after { + background: #fff; + content: ""; + height: 155px; + left: -75px; + opacity: 0.2; + position: absolute; + top: -50px; + transform: rotate(35deg); + transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1); + width: 50px; + z-index: -10; + } +} + +.preButtonTextData:hover { + &:after { + left: 120%; + transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1); + } +} + +.preButtonTextData:focus { + // border:1.8px solid var(--PRIMARY_BUTTON_BG_COLOR); + background-color: #ffffff !important; + // color: #901D77; + font-weight: 600; + font-size: 14px; +} + +.preButtonTextData:focus:hover { + // border:1.8px solid var(--PRIMARY_BUTTON_BG_COLOR); + background-color: white !important; + // color: var(--PRIMARY_BUTTON_BG_COLOR); + font-weight: 600; + font-size: 14px; +} + +.RightsectionDiv { + width: 50%; + // margin: auto; + flex-grow: 1; +} + +@media screen and (max-width: 900px) { + .preBannerImageData { + display: none; + } + + .RightsectionDiv { + display: none; + } + + .overviewpreTitleData { + font-weight: 600; + font-size: 20px; + // width: 88vw; + } + .overview1subdiv { + padding: 10px 26px; + } + .overviewsubdiv{ + flex-wrap: wrap ; + } +} + +.preAppLinkTextData { + font-size: 12px; +} + +@media screen and (max-width: 499px) { + .Hide-on-smallScreen1 { + display: none !important; + } + .preLinkData { + width: max-content !important; + } + .overview1subdiv { + padding: 0px 26px; + } +} + + + + + + +.gradient-header { + color: #000000; + background-image: -webkit-linear-gradient(9deg, #000000, #4454b1); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -webkit-animation: hue 3s infinite linear; +} + +@-webkit-keyframes hue { + from { + -webkit-filter: hue-rotate(0deg); + } + to { + -webkit-filter: hue-rotate(-360deg); + } +} + + + + +.btn-shine { + color: #000000; + font-weight: 500; + // background: linear-gradient(to right, #4d4d4d 0, #fff 10%, #4d4d4d 20%); + // background: linear-gradient(to right, #000000 0, #fff 10%, #000000 20%); + background-position: 0; + // -webkit-background-clip: text; + // -webkit-text-fill-color: transparent; + // animation: shine 8s infinite linear; + // animation-fill-mode: forwards; + // -webkit-text-size-adjust: none; + // font-weight: 600; + text-decoration: none; + z-index: 1; +} +@-moz-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@-webkit-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@-o-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 780px; + } + 100% { + background-position: 1200px; + } +} diff --git a/src/styles/template/overView/overView2.scss b/src/styles/template/overView/overView2.scss new file mode 100644 index 0000000..37c710b --- /dev/null +++ b/src/styles/template/overView/overView2.scss @@ -0,0 +1,284 @@ + +.overview2maindiv{ + display:flex; + flex-wrap: wrap; + flex-direction: column; +} + +.overview2subdiv{ + display:flex; + flex-wrap: wrap; + flex-direction: row; + gap:0.5rem; +} + +.overview2subdiv2{ + display:flex; + flex-wrap: wrap; + flex-direction: column; + gap: 0.5rem; + // pointer-events: none; + position: absolute; + z-index: 1; + width: 100%; + height: 95%; + +} + +.overview2subdivwithout{ + display:flex; + flex-wrap: wrap; + flex-direction: column; + gap: 0.5rem; + // pointer-events: none; + // position: absolute; + z-index: 1; + + +} + +.overview2subdivdata{ + display:flex; + flex-wrap: wrap; + flex-direction: column; + gap: 2rem; + // pointer-events: none; + flex-grow: 1; + // padding: 54px 26px; + justify-content: center; + align-items: center; +} + +.overview2main{ + display:flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: space-between; +} + +.overview2main2{ + display:flex; + flex-direction: row; + justify-content: space-between; + +} + +.overview2Img p{ + color:deepskyblue; +} + +.overview2SubImg{ + display:flex; + flex-wrap: wrap; + flex-direction: row; + gap:2rem; +} + +.overview2btn{ + display:flex; + justify-content:flex-end; +} + +.ant-form input[type="file"] { + display: none; +} + +.emp2TitleData{ + background-color: #929292; + color:#333; + border:0; + height:10px; + width:180px; +} + +.emp2SubTitleData{ + background-color: #CCCCCC; + color:#333; + border:0; + height:10px; + width:80px; +} + +.emp2ButtonTextData{ + background-color: #F97068; + color:#333; + border:0; + height:20px; + width:100px; +} + +.emp2LinkData{ + background-color: #CCCCCC; + color:#333; + border:0; + height:10px; + width:30px; + display:flex; +} + +.pre2TitleData{ + width: 66vw; + font-style: normal; + font-weight: 600; + font-size: max(1rem, 2.5dvw); + color: #000; + text-shadow: 2px 1px 1px #0c0c0c; + text-align: center; + line-height: 1.5; + // width: 80vw; + // font-style: normal; + // font-weight: 500; + // font-size: max(1rem, 2.5dvw); + // color: #000; + // text-align: center; + // line-height: 1.5; +} + +.pre2SubTitleData{ + font-style: normal; + font-weight: 400; + font-size: max(0.8rem,1.3dvw); + color: #2e2e2e; + width: min(55vw,800px); + text-align: center; +} + +.pre2LinkData{ + width: min(60vw,155px); + box-shadow: 0 4px 15px #0000001a; + border-radius: 10px; + border: 0px; + background: rgba(255,255,255,.5); + display: flex; + align-items: center; + column-gap: 0.5rem; + padding: 4px 18px; + font-size: .8rem; + border: 1px solid rgba(0,0,0,.048); + transition-duration: .6s; + cursor: pointer; +} + +.background-video-container { + position: relative; + width: 100%; + height: 100vh; /* Adjust to your preferred height */ + overflow: hidden; +} + +.background-video-container1 { + width: min(90vw,321px); + height: 231px; + background-color: #e3e1e1; +} + +.background-video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; +} + +.overviewNodata{ + align-items: center; + font-size: 20px; + display: flex; + flex-wrap: wrap; + flex-direction: column; + gap:1rem; +} + + +// @media screen and (max-width:450px) { +// .pre2BannerImageData{ +// display: none; + +// } +// } + +.RightsectionDiv2{ + width: 50%; + margin: auto; + flex-grow: 1; +} + + +@media screen and (max-width:900px) { + .pre2BannerImageData{ + display: none; + + } + + .RightsectionDiv2{ + display: none; + } + + .pre2TitleData{ + font-weight: 600; + font-size:20px; + width: 88vw; + } + + +} + + +.btn-shine1 { + color: #000000; + // background: linear-gradient(to right, #4d4d4d 0, #fff 10%, #4d4d4d 20%); + // background: linear-gradient(to right, #969696 0, #4b4b4b 10%, #ffffff 20%); + // background-position: 0; + // -webkit-background-clip: text; + // -webkit-text-fill-color: transparent; + // animation: shine 8s infinite linear; + // animation-fill-mode: forwards; + // -webkit-text-size-adjust: none; + // font-weight: 600; + // text-decoration: none; +} +@-moz-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@-webkit-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@-o-keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 180px; + } + 100% { + background-position: 180px; + } +} +@keyframes shine { + 0% { + background-position: 0; + } + 60% { + background-position: 780px; + } + 100% { + background-position: 1200px; + } +} diff --git a/src/styles/template/template/template.css b/src/styles/template/template/template.css new file mode 100644 index 0000000..231383a --- /dev/null +++ b/src/styles/template/template/template.css @@ -0,0 +1,22 @@ + +.appcontent{ + height: 100vh; + overflow:auto; +} +.navBarHover .dispflex { + background-color: white !important; + justify-content: space-between; + padding: 0px 2rem; +} + +.navBarHover { + z-index: 999; +} + + + +@media screen and (max-width: 900px) { + .homeNavdiv{ + display:none; + } +} \ No newline at end of file diff --git a/src/styles/testimonials/Testimonials.scss b/src/styles/testimonials/Testimonials.scss new file mode 100644 index 0000000..553b179 --- /dev/null +++ b/src/styles/testimonials/Testimonials.scss @@ -0,0 +1,21 @@ +.uder-details-tesimonial{ + display: flex; + align-items: flex-start; + width: 100%; + gap: 2rem; + font-family: "Gilroy" !important; + >div:nth-child(2){ + font-weight: 500; + font-size: 16px; + width: 600px; + padding: 6px 4px; + + } + >div:nth-child(1){ + padding: 2px 25px; + font-weight: 500; + width: 140px; + font-size: 16px; + + } +} \ No newline at end of file diff --git a/src/styles/testimonials/TestimonialsPublic.scss b/src/styles/testimonials/TestimonialsPublic.scss new file mode 100644 index 0000000..ee77a36 --- /dev/null +++ b/src/styles/testimonials/TestimonialsPublic.scss @@ -0,0 +1,344 @@ +.PozoTestimonial-Master { + width: 100vw; + height: 100vh; + overflow: scroll; + font-family: "Poppins" !important; + background-color: #f0f9ff; + + .PozoTestimonial-Navbar { + position: sticky !important; + top: 0px !important; + width: 100%; + z-index: 999; + padding: 1rem; + background-color: #fff; + display: flex; + align-items: center; + justify-content: flex-start; + svg { + font-size: 35px; + border: 1px solid #000; + padding: 6px; + border-radius: 10pc; + cursor: pointer; + transition: all 0.2s; + &:hover { + background-color: #000; + color: #fff; + } + } + } + + .PozoTestimonial-main { + padding: 1rem 2rem 1rem 2rem; + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-family: "Poppins" !important; + } + + .PozoTestimonial-header { + font-size: 32px; + margin: 10px 10px; + font-weight: 500; + text-align: center; + } + + .PozoTestimonial-Subheader { + font-size: 18px; + font-weight: 400; + word-spacing: 3px; + letter-spacing: 0.5px; + + span { + font-size: 18px; + font-weight: 700; + letter-spacing: 1.5px; + } + } + + .CustomerStories-main { + width: 100%; + display: flex; + flex-wrap: wrap; + padding: 3rem 0rem; + gap: 1rem; + justify-content: flex-start; + z-index: 0; + } + + .CustomerStories { + width: 25vw; + height: 500px; + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px; + border-radius: 12px; + display: flex; + align-items: center; + flex-direction: column; + background-color: #fff; + overflow: hidden; + + &:hover { + .CustomerStories-image { + overflow: hidden; + + img { + transform: scale(1.04); + transition: transform 0.3s ease-in-out; + } + } + } + } + + .CustomerStories-image { + img { + transition: transform 0.5s ease-in-out; + + &:hover { + transform: scale(1.04); + } + } + } + + .playicon-testimonial { + transition: transform 0.3s ease-in-out; + } + + .CustomerStories-image:hover .playicon-testimonial { + transform: scale(1.35); + color: #fff; + } + + .CustomerStories-image { + width: 100%; + position: relative; + } + + .CustomerStories-image { + width: 100%; + + img { + width: 100%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + height: 220px; + object-fit: scale-down; + filter: brightness(0.9); + } + } + + .playicon-testimonial { + // color: rgba(255, 255, 255, 0.678); + color: #fff; + position: absolute; + left: 0; + font-size: 52px; + width: 100%; + top: 5.5rem; + cursor: pointer; + } + + .CustomerStories-shopDetails { + display: flex; + width: 100%; + align-items: center; + justify-content: flex-start; + gap: 1rem; + padding: 4px 10px; + } + + .shopDetails-logo { + width: 80px; + height: 80px; + display: flex; + align-items: center; + justify-content: center; + + img { + width: 70%; + object-fit: cover; + } + } + + .AllDetailsOfShop-main { + display: flex; + flex-direction: column; + gap: 3px; + align-items: flex-start; + text-align: left; + } + + .testimonial-adminName { + font-size: 22px; + font-weight: 600; + letter-spacing: 1px; + } + + .testimonial-ShopName { + font-size: 11px; + font-weight: 500; + letter-spacing: 0.5px; + text-transform: uppercase; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-overflow: ellipsis; + } + + .testimonial-AdminDestionation { + font-size: 10px; + font-weight: 500; + letter-spacing: 0.5px; + color: #e33333; + text-transform: uppercase; + } + + .customer-reviewStores { + padding: 5px 26px; + + .reviewStores-div { + font-size: 12px; + text-align: left; + width: 98%; + font-weight: 400; + word-spacing: 2px; + letter-spacing: 0.3px; + font-family: "Poppins"; + line-height: 1.6; + height: 150px; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 8; + text-overflow: ellipsis; + } + + p { + color: #1292ee; + cursor: pointer; + font-size: 14px; + padding: 4px 0; + } + } + + .ant-modal-content { + .reviewStores-div { + font-size: 12px; + text-align: left; + width: 98%; + font-weight: 400; + word-spacing: 2px; + letter-spacing: 0.3px; + font-family: "Poppins"; + line-height: 1.6; + height: 130px; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 8; + text-overflow: ellipsis; + } + } + + .PozoTestimonial-Thnx { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 3rem 2rem; + background-color: rgb(217 217 217 / 10%); + gap: 1rem; + } + + .thnx-header { + font-size: clamp(24px, 4vw, 32px); + font-weight: 500; + text-align: center; + } + + .thnx-content { + width: 70%; + text-align: center; + font-size: 14px; + font-weight: 400; + } + + .btnof-newVideo { + width: max-content; + padding: 10px 22px; + background-color: #292929; + display: flex; + align-items: center; + justify-content: space-between; + gap: 2rem; + color: #fff; + border-radius: 50px; + cursor: pointer; + font-size: 15px; + font-weight: 500; + } +} +.reviewModal-testimonial { + .ant-modal-body { + font-size: 14px !important; + font-family: "poppins" !important; + } +} + +@media (max-width: 768px) { + .CustomerStories-main { + display: grid !important; + grid-template-columns: repeat(2, 1fr); + } + + .CustomerStories { + width: 100% !important; + } + + .CustomerStories-story { + width: 95vw !important; + } +} + +@media (max-width: 499px) { + .CustomerStories-main { + display: grid !important; + grid-template-columns: repeat(1, 1fr); + } + + .CustomerStories { + width: 100% !important; + } + + .CustomerStories-image img { + height: 210px !important; + } + + .PozoTestimonial-header { + font-size: clamp(22px, 3vw, 32px) !important; + } + + .PozoTestimonial-Subheader { + font-size: clamp(13px, 3vw, 18px) !important; + margin-top: -9px; + } + + .TrustedCustomer-title { + font-size: clamp(12px, 2vw, 16px); + padding: 5px 0; + } + + .CustomerStories-story { + width: 93vw !important; + } + + .thnx-content { + width: 80% !important; + text-align: center; + font-size: 10px !important; + font-weight: 400; + margin-top: -7px; + } +} diff --git a/src/styles/user/userForm.scss b/src/styles/user/userForm.scss new file mode 100644 index 0000000..e86523f --- /dev/null +++ b/src/styles/user/userForm.scss @@ -0,0 +1,48 @@ +// .userPage { +// height: 100%; +// width: 100%; +// padding: 0px max(10px, 9vw); +// overflow: auto; +// } + +// .userPageContent { +// height: 100%; +// width: 100%; + +// } + +// .formDiv { +// display: flex; +// flex-wrap: wrap; +// column-gap: 3rem; +// padding-top: 2rem; +// row-gap: 1.5rem; +// } + +// .formdes { +// font-style: normal; +// color: var(--PARA_COLOR); +// font-family: var(--PARA_FONT_FAMILY); +// font-size: 2.1vh; + +// } +// .submitButton { +// display: flex; +// flex-grow: 1; +// justify-content: flex-end; +// } + + +.busi-desc { + + .label { + background-color: #fff !important; + width: 80% !important; + } + .label-float{ + top: 1px !important; + } + textarea{ + scrollbar-width: thin; + } +} \ No newline at end of file diff --git a/src/styles/userAccount/userAccount.scss b/src/styles/userAccount/userAccount.scss new file mode 100644 index 0000000..f452fbe --- /dev/null +++ b/src/styles/userAccount/userAccount.scss @@ -0,0 +1,225 @@ +.userAccount { + margin: min(2.5rem, 5dvw); + background-color: white; + display: flex; + flex-grow: 1; + border-radius: var(--BORDER_RADIUS); +} + +.optionSection { + width: 25%; + border-radius: var(--BORDER_RADIUS); + border-right: solid 0.5px #C9C9C9; + // background-color: yellow; + display: flex; + flex-direction: column; + text-align: center; + padding: 0px 10px; + + & .userAccountHeading { + padding: 1rem 0px; + font-weight: 600; + font-size: 1.4rem; + font-family: var(--HEADING_FONT_FAMILY); + height: 100px; + } + + & .userAccountTab { + font-size: 0.9rem; + font-weight: 500; + padding: 0.5rem 0px; + width: 100%; + font-family: var(--HEADING_FONT_FAMILY); + cursor: pointer; + } + + & .userAccountTab:hover { + background-color: #F4EAF2; + color: #901D77; + } +} + + +.userAccountCont { + padding: max(2px, 0.7dvw); + width: 100%; + overflow-y: auto; +} + +.userAccountSec { + padding: max(2px, 0.7dvw); + width: 100%; + height: 100%; + overflow-y: auto; + +} + +.securityContentPage { + display: flex; + flex-wrap: wrap; + width: 100%; + overflow-y: auto; + column-gap: 2rem; + row-gap: 2rem; + + & .userPage { + padding: 0; + + } + + & .pageOverAllUser { + flex-grow: 1; + height: fit-content; + border-radius: var(--CARD_BORDER_RADIUS); + border: solid 0.5px #A9ACAA; + row-gap: 2rem; + } + + // & .formedit{ + // display: flex; + // // width: 100%; + // flex-grow: 1; + // } + + & .formDiv { + justify-content: center; + align-items: center; + } + + & .formDivAnt { + flex-direction: column; + } + + & .inputForm { + flex-direction: column; + } + +} + +.myProfileHeading { + font-weight: 600; + font-size: 1.4rem; + padding-bottom: 2rem; + font-family: var(--HEADING_FONT_FAMILY); +} + + +.showData { + border: solid 1px #A9ACAA; + border-radius: var(--CARD_BORDER_RADIUS); + display: flex; + flex-wrap: wrap; + padding: 1rem; + margin: 1rem 0px; + column-gap: min(0rem, 4dvw); + row-gap: 2rem; + justify-content: space-around; + + & .heading { + color: #818181; + } + + & .userAccountField { + text-align: center; + margin: auto 0px; + } + + & .userAccountButton { + margin: auto 0px; + + & button { + background-color: white; + border: solid 1px #A9ACAA; + padding: .5rem; + } + } + +} + +.editData { + border: solid 1px #A9ACAA; + border-radius: var(--CARD_BORDER_RADIUS); + display: flex; + flex-wrap: wrap; + padding: 1rem; + margin: 1rem 0px; + // column-gap: 1rem; + row-gap: 2rem; +} + +.backClassUser { + display: flex; + justify-content: flex-end; + flex-grow: 1; + color: #004BA9; +} + +.profileImage { + width: max(200px, 20%); + ; + border-radius: 50%; + // border: solid 1px black +} + +.mobileViewClose { + display: none; + text-align: right; + padding-right: 1rem; + padding-top: 1rem; +} + +.menuIcon { + display: none; + padding-top: 0.5rem; + padding-left: 0.5rem; + font-size: 20px; +} + +@media screen and (max-width: 450px) { + .optionSection { + width: 100%; + font-size: 30px; + + & .userAccountHeading { + font-size: 8dvw; + font-weight: 700; + } + + & .userAccountTab { + font-size: 6dvw; + } + } + + .userSectionClose { + display: none; + } + + .userSectionOpen { + display: block; + } + + .mobileViewClose { + display: block; + } + + .showData { + justify-content: center; + } + + .menuIcon { + display: block; + } +} + + +.userAccountTabDiv { + display: flex; + flex-direction: column; + text-align: left; + margin-left: 1rem; + + // display: flex; + // flex-direction: column; + // text-align: center; + +} \ No newline at end of file diff --git a/src/styles/versionManagement/versionManagement.scss b/src/styles/versionManagement/versionManagement.scss new file mode 100644 index 0000000..5f48700 --- /dev/null +++ b/src/styles/versionManagement/versionManagement.scss @@ -0,0 +1,41 @@ +.versionManagementDropDown{ + .ant-select-single { + width: 110px !important; + } +} + + + +.versionMangement { + overflow: auto; + width: 80vw; + //Sridhar + height: 60vh !important; + // +} +.versionMangement{ + & .ant-checkbox .ant-checkbox-inner:after{ + background: black; + display: inline; + } +} + +.versionMangement { + .ant-table-thead { + position: sticky; + top: 0; + background-color: #f3f3f3; + z-index: 1; + } +} + + + + .versionMangement{ + .ant-pagination{ + position: sticky; + bottom: 0; + margin: 0 !important; + padding: 0.5rem; + background-color: #fafafa; +}} \ No newline at end of file diff --git a/src/theme/pozo.css b/src/theme/pozo.css new file mode 100644 index 0000000..d56488d --- /dev/null +++ b/src/theme/pozo.css @@ -0,0 +1,160 @@ +/* Optional: Inter font — comment out if you prefer system font only */ +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"); + +/* --------- CSS Variables --------- */ +:root { + --bg: #ffffff; + --surface: #f8fafc; /* subtle panel bg */ + --text: #111827; /* slate-900 */ + --muted: #64748b; /* slate-500 */ + --border: #e5e7eb; /* slate-200 */ + --primary: #111827; /* minimal dark primary */ + --primary-contrast: #ffffff; + --radius: 10px; + --shadow: 0 10px 30px rgba(0,0,0,0.08); +} + +/* --------- Global / Typography --------- */ +html, body { + background: var(--bg); + color: var(--text); + font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif; + line-height: 1.6; +} + +/* h1, h2, h3 { + margin: 0.4rem 0 0.6rem; + font-weight: 700; +} +h1 { font-size: 1.75rem; } +h2 { font-size: 1.25rem; } +h3 { font-size: 1.1rem; } */ + +small, .muted { color: var(--muted); } + +/* --------- Layout helpers --------- */ +.container { + max-width: 1200px; + margin: 16px auto; + padding: 0 16px; +} +.grid { + display: grid; + gap: 16px; +} +.two-pane { + grid-template-columns: 320px 1fr; +} +@media (max-width: 980px) { + .two-pane { grid-template-columns: 1fr; } +} + +/* --------- Header / Toolbar --------- */ +.toolbar { + position: sticky; + top: 0; + z-index: 20; + background: var(--bg); + border-bottom: 1px solid var(--border); + padding: 10px 16px; + display: flex; + gap: 12px; + align-items: center; +} +.toolbar .title-input { + flex: 1; + border: none; + outline: none; + font-size: 20px; + font-weight: 700; + background: transparent; +} + +/* --------- Cards / Panels --------- */ +.card { + background: var(--bg); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 12px; +} +.panel { + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 12px; +} + +/* --------- Inputs --------- */ +.input, .textarea, .select { + width: 100%; + padding: 8px 10px; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--bg); + color: var(--text); +} +.textarea { min-height: 90px; } +.input:focus, .textarea:focus, .select:focus { + outline: 2px solid #cbd5e1; /* light focus ring */ + outline-offset: 2px; +} + +/* --------- Buttons --------- */ +.btn { + padding: 8px 12px; + border-radius: 10px; + border: 1px solid var(--border); + background: var(--bg); + color: var(--text); + transition: background 120ms ease, transform 80ms ease, border-color 120ms ease; +} +.btn:hover { background: #f3f4f6; } +.btn:active { transform: translateY(1px); } + +.btn-primary { + background: var(--primary); + color: var(--primary-contrast); + border-color: var(--primary); +} +.btn-primary:hover { filter: brightness(1.08); } +.btn-ghost { + background: transparent; + border-color: var(--border); +} +.btn-outline { + background: var(--bg); + border-color: var(--border); +} + +/* --------- Chips --------- */ +.chip { + display: inline-block; + padding: 2px 8px; + border-radius: 999px; + border: 1px solid var(--border); + font-size: 12px; + font-weight: 600; +} +.chip-success { background: #ecfdf5; border-color: #34d399; color: #065f46; } +.chip-neutral { background: #f1f5f9; border-color: var(--border); color: #334155; } + +/* --------- Toast --------- */ +.toast { + position: fixed; + right: 20px; + bottom: 20px; + z-index: 50; + background: #111827; + color: #fff; + padding: 10px 12px; + border-radius: 8px; + box-shadow: var(--shadow); + font-size: 14px; +} + +/* --------- Editor area safety --------- */ +#pozo-editor, #pozo-editor * { + pointer-events: auto !important; + user-select: text !important; +} +.preview-content img { display: block; max-width: 100%; height: auto; } \ No newline at end of file diff --git a/src/useVisitLogger.jsx b/src/useVisitLogger.jsx new file mode 100644 index 0000000..faad9b3 --- /dev/null +++ b/src/useVisitLogger.jsx @@ -0,0 +1,41 @@ +import { useEffect } from "react"; +import { useLocation } from "react-router-dom"; +import { getSession } from "./Services/others"; + +const useVisitLogger = (pricingData) => { + const location = useLocation(); + const UserId = getSession("UserId"); + const AppId = getSession("AppId"); + + useEffect(() => { + const stored = JSON.parse(localStorage.getItem("visitLogFormat") || "null"); + + const newVisit = { + VisitTime: new Date().toISOString(), + Location: location?.pathname + }; + + let updatedLog; + + if (stored) { + const oldVisits = Array.isArray(stored.LocationVistDtl) ? stored.LocationVistDtl : []; + + updatedLog = { + ...stored, + PricingId: pricingData?.PricingId || stored.PricingId || null, + LocationVistDtl: [...oldVisits, newVisit] + }; + } else { + updatedLog = { + UserId, + AppId, + PricingId: pricingData?.PricingId || null, + LocationVistDtl: [newVisit] + }; + } + + localStorage.setItem("visitLogFormat", JSON.stringify(updatedLog)); + }, [location, pricingData]); +}; + +export default useVisitLogger; diff --git a/src/utils/history.js b/src/utils/history.js new file mode 100644 index 0000000..af79e22 --- /dev/null +++ b/src/utils/history.js @@ -0,0 +1,27 @@ +const KEY = "pozo-editor-history"; + +export function loadHistory() { + try { + const raw = localStorage.getItem(KEY); + return raw ? JSON.parse(raw) : []; + } catch { + return []; + } +} + +export function addSnapshot(post) { + const hist = loadHistory(); + const snap = { + id: Date.now(), + slug: post.slug || "", + title: post.title || "", + featureImage: post.featureImage, + seoTitle: post.seoTitle || "", + seoDescription: post.seoDescription || "", + blocks: post.blocks, + ts: new Date().toISOString() + }; + hist.unshift(snap); + localStorage.setItem(KEY, JSON.stringify(hist.slice(0, 50))); // cap 50 + return snap; +} \ No newline at end of file diff --git a/src/utils/seo.js b/src/utils/seo.js new file mode 100644 index 0000000..da8f84b --- /dev/null +++ b/src/utils/seo.js @@ -0,0 +1,48 @@ +export const generateBlogSEO = (post) => ({ + title: `${post.title} | My Blog`, + description: post.excerpt, + keywords: post.tags.join(', '), + author: post.author, + publishedTime: post.date, + image: post.imageUrl, + url: `${window.location.origin}/blog/${post.id}` +}); + +export const generateBlogListSEO = () => ({ + title: 'My Blog - Latest Articles & Insights', + description: 'Discover the latest articles on web development, React, CSS, and modern programming techniques.', + keywords: 'blog, web development, React, CSS, JavaScript, programming', + url: `${window.location.origin}/blog` +}); + +export const generatePageSEO = (page) => ({ + title: `${page.title} | My Blog`, + description: page.description, + keywords: page.keywords || 'web development, blog', + url: `${window.location.origin}${page.path}` +}); + +export const generateHomeSEO = () => ({ + title: 'My Blog - Web Development & Programming', + description: 'Welcome to my blog featuring articles on web development, React, JavaScript, and modern programming.', + keywords: 'web development, React, JavaScript, programming, blog', + url: window.location.origin +}); + +export const updateMetaTags = (seoData) => { + document.title = seoData.title; + + const updateMeta = (name, content) => { + let meta = document.querySelector(`meta[name="${name}"]`); + if (!meta) { + meta = document.createElement('meta'); + meta.name = name; + document.head.appendChild(meta); + } + meta.content = content; + }; + + updateMeta('description', seoData.description); + updateMeta('keywords', seoData.keywords); + if (seoData.author) updateMeta('author', seoData.author); +}; \ No newline at end of file diff --git a/src/utils/storage.js b/src/utils/storage.js new file mode 100644 index 0000000..42b5834 --- /dev/null +++ b/src/utils/storage.js @@ -0,0 +1,18 @@ +const KEY = "pozo-editor-post"; + +export function loadPost() { + try { const raw = localStorage.getItem(KEY); return raw ? JSON.parse(raw) : null; } + catch { return null; } +} + +export function savePost(post) { + try { localStorage.setItem(KEY, JSON.stringify(post)); return true; } + catch (e) { console.error("Failed to save post", e); return false; } +} + +export function slugify(str) { + return (str || "").toLowerCase().trim() + .replace(/[^\w\s-]/g, "") + .replace(/\s+/g, "-") + .slice(0, 80); +} diff --git a/src/utils/textUtils.js b/src/utils/textUtils.js new file mode 100644 index 0000000..f532f57 --- /dev/null +++ b/src/utils/textUtils.js @@ -0,0 +1,25 @@ +export const slugify = (text) => { + return text + .toLowerCase() + .trim() + .replace(/[^\w\s-]/g, '') + .replace(/[\s_-]+/g, '-') + .replace(/^-+|-+$/g, ''); +}; + +export const countWordsFromBlocks = (blocks) => { + if (!blocks) return 0; + + return blocks?.reduce((count, block) => { + if (block.data && block.data.text) { + const text = block.data.text.replace(/<[^>]*>/g, ''); // Remove HTML tags + return count + text.split(/\s+/).filter(word => word.length > 0).length; + } + return count; + }, 0); +}; + +export const minutesRead = (wordCount) => { + const wordsPerMinute = 200; + return Math.ceil(wordCount / wordsPerMinute); +}; \ No newline at end of file diff --git a/src/utils/utils.js b/src/utils/utils.js new file mode 100644 index 0000000..fb63ffa --- /dev/null +++ b/src/utils/utils.js @@ -0,0 +1,5 @@ +export const getCookie = (name) => { + const value = `; ${document.cookie}`; + const parts = value.split(`; ${name}=`); + if (parts.length === 2) return parts.pop().split(';').shift(); +}; \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..18ad717 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,105 @@ +// import { defineConfig } from "vite"; +// import react from "@vitejs/plugin-react"; +// import sitemap from "vite-plugin-sitemap"; + +// export default defineConfig(({ mode }) => { +// const isProd = mode === "production"; + +// return { +// plugins: [ +// react(), +// isProd && +// sitemap({ +// hostname: "https://pozo.app", +// routes: ["/", "/signin", "/signup", "/dashboard", "/features", "/pricing", "/contact-us", "/blog"], +// }), +// ], +// base: "/home/", +// envDir: "src", +// envPrefix: "ENV_", +// build: { +// chunkSizeWarningLimit: 1000, +// rollupOptions: { +// output: { +// manualChunks: { +// vendor: ['react', 'react-dom'], +// editor: ['@editorjs/editorjs', '@editorjs/header', '@editorjs/image', '@editorjs/list', '@editorjs/paragraph', '@editorjs/code', '@editorjs/embed', '@editorjs/link', '@editorjs/quote'] +// } +// } +// } +// }, +// server: { +// host: "192.168.1.68", +// port: process.env.PORT || 3000, +// }, +// optimizeDeps: { +// exclude: ["console.log"], +// include: [ +// "@editorjs/editorjs", +// "@editorjs/header", +// "@editorjs/image", +// "@editorjs/list", +// "@editorjs/paragraph", +// "@editorjs/code", +// "@editorjs/embed", +// "@editorjs/link", +// "@editorjs/quote", +// ], +// }, +// }; +// }); + + +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import { terser } from "rollup-plugin-terser"; +// https://vitejs.dev/config/ +export default defineConfig(({ command, mode, ssrBuild }) => { + if (mode == "production") { + return { + plugins: [ + react(), + // terser({ // Add terser plugin for production + // compress: { + // drop_console: true, // This removes all console.* statements + // }, + // }), + ], + base: "/home/", + envDir: "src", + envPrefix: "ENV_", + }; + } else { + return { + plugins: [react()], + envDir: "src", + envPrefix: "ENV_", + + server: { + host: "192.168.1.50", + port: process.env.PORT || 3001, + }, + optimizeDeps: { + exclude: ["console.log"], + + include: [ + '@editorjs/editorjs', + '@editorjs/header', + '@editorjs/image', + '@editorjs/delimiter', + '@editorjs/list', + '@editorjs/paragraph' + ] + + }, + }; + } +}); + +// export default defineConfig({ +// plugins: [react()], +// server: { +// host: '192.168.1.17', +// port: process.env.PORT || 3000, +// }, +// }); diff --git a/web.config b/web.config new file mode 100644 index 0000000..bd89fd7 --- /dev/null +++ b/web.config @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web.config.simple b/web.config.simple new file mode 100644 index 0000000..2ccf7be --- /dev/null +++ b/web.config.simple @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +