From b5a388479f1a11bc18c2ce6e98deb67c36f19235 Mon Sep 17 00:00:00 2001 From: Jimmy Liow <18777396951@163.com> Date: Tue, 11 Apr 2023 15:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=93=E6=9E=84=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 + README.md | 6 + build.bat | 1 + index.html | 26 + package-lock.json | 2548 ++++++++++++++++++++++++++++++++++++ package.json | 25 + public/app-logo.jpg | Bin 0 -> 34937 bytes public/favicon.ico | Bin 0 -> 4286 bytes src/assets/react.svg | 1 + src/error-page.jsx | 16 + src/global.css | 15 + src/main.jsx | 48 + src/stores/Plan.js | 20 + src/stores/Root.js | 11 + src/stores/StoreContext.js | 7 + src/utils/commons.js | 124 ++ src/utils/request.js | 69 + src/views/App.jsx | 145 ++ src/views/Index.jsx | 13 + src/views/Plan.jsx | 143 ++ start.bat | 1 + vite.config.js | 7 + 22 files changed, 3250 insertions(+) create mode 100644 .gitignore create mode 100644 build.bat create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/app-logo.jpg create mode 100644 public/favicon.ico create mode 100644 src/assets/react.svg create mode 100644 src/error-page.jsx create mode 100644 src/global.css create mode 100644 src/main.jsx create mode 100644 src/stores/Plan.js create mode 100644 src/stores/Root.js create mode 100644 src/stores/StoreContext.js create mode 100644 src/utils/commons.js create mode 100644 src/utils/request.js create mode 100644 src/views/App.jsx create mode 100644 src/views/Index.jsx create mode 100644 src/views/Plan.jsx create mode 100644 start.bat create mode 100644 vite.config.js 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/README.md b/README.md index 213f470..81feaad 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ # GHHub Global Highlights Hub 海外供应商平台 + +## 开发设置 + +1. 安装组件:npm install +2. 运行开发环境:npm run dev 或者 start.bat +3. 打包代码:npm run build 或者 build.bat \ No newline at end of file diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..10da9ff --- /dev/null +++ b/build.bat @@ -0,0 +1 @@ +npm run build \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c316114 --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + + + Global Highlights Hub + + + +
+
+ +
+
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c11bcd6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2548 @@ +{ + "name": "global.highlights.hub", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "global.highlights.hub", + "version": "0.0.0", + "dependencies": { + "antd": "^5.4.0", + "mobx": "^6.9.0", + "mobx-react": "^7.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react": "^3.1.0", + "vite": "^4.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz", + "integrity": "sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.8.1.tgz", + "integrity": "sha512-pOQJV9H9viB6qB9u7hkpKEOIQGx4dd8zjpwzF1v8YNwjffbZTlyUNQYln56gwpFF7SFskpYpnSfgoqTK4sFE/Q==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.0.10", + "rc-util": "^5.27.0", + "stylis": "^4.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.0.1.tgz", + "integrity": "sha512-ZyF4ksXCcdtwA/1PLlnFLcF/q8/MhwxXhKHh4oCHDA4Ip+ZzAHoICtyp4wZWfiCVDP0yuz3HsjyvuldHFb3wjA==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.2.1", + "@babel/runtime": "^7.11.2", + "classnames": "^2.2.6", + "rc-util": "^5.9.4" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", + "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.0.tgz", + "integrity": "sha512-OKxZsn8TAf8fYxP79rDXgLs9zvKMTslK6dJ4iLhDXOujUqC5zJPBRszyrcEHXcMPOm1Sgk40JgyF3yiL/Swd7w==", + "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.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", + "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", + "engines": { + "node": ">=10" + } + }, + "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.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz", + "integrity": "sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz", + "integrity": "sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.15.tgz", + "integrity": "sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz", + "integrity": "sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz", + "integrity": "sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz", + "integrity": "sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz", + "integrity": "sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz", + "integrity": "sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz", + "integrity": "sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz", + "integrity": "sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz", + "integrity": "sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz", + "integrity": "sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz", + "integrity": "sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz", + "integrity": "sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz", + "integrity": "sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz", + "integrity": "sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz", + "integrity": "sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz", + "integrity": "sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz", + "integrity": "sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz", + "integrity": "sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz", + "integrity": "sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz", + "integrity": "sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@rc-component/context": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.3.0.tgz", + "integrity": "sha512-6QdaCJ7Wn5UZLJs15IEfqy4Ru3OaL5ctqpQYWd5rlfV9wwzrzdt6+kgAQZV/qdB0MUPN4nhyBfRembQCIvBf+w==", + "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.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz", + "integrity": "sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.0.0.tgz", + "integrity": "sha512-okqRJSfNisXdI6CUeOLZC5ukBW/8kir2Ii4PJiKpUt+3+uS7dxwJUMxsUZquxA1rQuL8YcEmKVp/TCnR+yUdZA==", + "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.1", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.1.tgz", + "integrity": "sha512-m8w3dFXX0H6UkJ4wtfrSwhe2/6M08uz24HHrF8pWfAXPwA9hwCuTE5per/C86KwNLouRpwFGcr7LfpHaa1F38g==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.8.0.tgz", + "integrity": "sha512-rrRGioHTLQlGca27G2+lw7QpRb3uuMYCUIJjj31/B44VCJS0P2tqYhOgtzvWQmaLMlWH3ZlpzotkKX13NT4XEA==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^1.3.6", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.7.3.tgz", + "integrity": "sha512-IyOUfpnY4ZLZyulcRLtXuINPfxMIpOcslcoY/Vw1aVJ8f+myZ/tsWdvzgdSflTNZAuBoK2ebvIOmVQ2i6HF1OA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-align": "^4.0.0", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.29.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@remix-run/router": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz", + "integrity": "sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", + "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.1.0-beta.0" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antd": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.4.0.tgz", + "integrity": "sha512-eWCNFUGMuuHu2wufbq7yzPzwSesO2Our0AnCjCkom646wHw2TOUhfS58FeUSlV/Hhjb+ZLEvdy/mC+vJUb+EXg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/cssinjs": "^1.7.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/react-slick": "~1.0.0", + "@babel/runtime": "^7.18.3", + "@ctrl/tinycolor": "^3.6.0", + "@rc-component/mutate-observer": "^1.0.0", + "@rc-component/tour": "~1.8.0", + "@rc-component/trigger": "^1.5.9", + "classnames": "^2.2.6", + "copy-to-clipboard": "^3.2.0", + "dayjs": "^1.11.1", + "qrcode.react": "^3.1.0", + "rc-cascader": "~3.10.0", + "rc-checkbox": "~3.0.0", + "rc-collapse": "~3.5.2", + "rc-dialog": "~9.1.0", + "rc-drawer": "~6.1.1", + "rc-dropdown": "~4.0.0", + "rc-field-form": "~1.29.0", + "rc-image": "~5.16.0", + "rc-input": "~1.0.4", + "rc-input-number": "~7.4.0", + "rc-mentions": "~2.2.0", + "rc-menu": "~9.8.3", + "rc-motion": "^2.6.1", + "rc-notification": "~5.0.0", + "rc-pagination": "~3.3.1", + "rc-picker": "~3.5.0", + "rc-progress": "~3.4.1", + "rc-rate": "~2.10.0", + "rc-resize-observer": "^1.2.0", + "rc-segmented": "~2.1.2", + "rc-select": "~14.4.0", + "rc-slider": "~10.1.0", + "rc-steps": "~6.0.0", + "rc-switch": "~4.0.0", + "rc-table": "~7.31.0", + "rc-tabs": "~12.5.6", + "rc-textarea": "~1.2.2", + "rc-tooltip": "~6.0.0", + "rc-tree": "~5.7.0", + "rc-tree-select": "~5.8.0", + "rc-trigger": "^5.3.4", + "rc-upload": "~4.3.0", + "rc-util": "^5.27.0", + "scroll-into-view-if-needed": "^3.0.3", + "throttle-debounce": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001477", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz", + "integrity": "sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==", + "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/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/compute-scroll-into-view": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.2.tgz", + "integrity": "sha512-UCXenIpZspASrI2Jsk/eUoa7zpFaD20xIqnC85c1rRIBVS3mOzPKF72QPZYmtcw24ZGqtyiFceBN/JKKVV4ALg==" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "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/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dom-align": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz", + "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.356", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz", + "integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz", + "integrity": "sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.15", + "@esbuild/android-arm64": "0.17.15", + "@esbuild/android-x64": "0.17.15", + "@esbuild/darwin-arm64": "0.17.15", + "@esbuild/darwin-x64": "0.17.15", + "@esbuild/freebsd-arm64": "0.17.15", + "@esbuild/freebsd-x64": "0.17.15", + "@esbuild/linux-arm": "0.17.15", + "@esbuild/linux-arm64": "0.17.15", + "@esbuild/linux-ia32": "0.17.15", + "@esbuild/linux-loong64": "0.17.15", + "@esbuild/linux-mips64el": "0.17.15", + "@esbuild/linux-ppc64": "0.17.15", + "@esbuild/linux-riscv64": "0.17.15", + "@esbuild/linux-s390x": "0.17.15", + "@esbuild/linux-x64": "0.17.15", + "@esbuild/netbsd-x64": "0.17.15", + "@esbuild/openbsd-x64": "0.17.15", + "@esbuild/sunos-x64": "0.17.15", + "@esbuild/win32-arm64": "0.17.15", + "@esbuild/win32-ia32": "0.17.15", + "@esbuild/win32-x64": "0.17.15" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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/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/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mobx": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.9.0.tgz", + "integrity": "sha512-HdKewQEREEJgsWnErClfbFoVebze6rGazxFLU/XUyrII8dORfVszN1V0BMRnQSzcgsNNtkX8DHj3nC6cdWE9YQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.6.0.tgz", + "integrity": "sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA==", + "dependencies": { + "mobx-react-lite": "^3.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/mobx-react-lite": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz", + "integrity": "sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "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/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/qrcode.react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/rc-align": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz", + "integrity": "sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "dom-align": "^1.7.0", + "rc-util": "^5.26.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.10.1.tgz", + "integrity": "sha512-tImBYEAqLlIZ+jnRmfQQEm5gOXa09N9aGV9AKxriXlCvsNEfdZMIRyY0p74sEZIUn0ycXHo8VcOlqsgLcgFknQ==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "array-tree-filter": "^2.1.0", + "classnames": "^2.3.1", + "rc-select": "~14.4.0", + "rc-tree": "~5.7.0", + "rc-util": "^5.6.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.0.0.tgz", + "integrity": "sha512-tOEs1+wWDUei7DuP2EsJCZfam5vxMjKTCGcZdXVgsiOcNszc41Esycbo31P0/jFwUAPmd5oPYFWkcnFUCTLZxA==", + "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.5.2", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.5.2.tgz", + "integrity": "sha512-/TNiT3DW1t3sUCiVD/DPUYooJZ3BLA93/2rZsB3eM2bGJCCla2X9D2E4tgm7LGMQGy5Atb2lMUn2FQuvQNvavQ==", + "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.1.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.1.0.tgz", + "integrity": "sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==", + "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": "6.1.5", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-6.1.5.tgz", + "integrity": "sha512-MDRomQXFi+tvDuwsRAddJ2Oy2ayLCZ29weMzp3rJFO9UNEVLEVV7nuyx5lEgNJIdM//tE6wWQV95cTUiMVqD6w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-6", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.21.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.0.1.tgz", + "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.6", + "rc-trigger": "^5.3.1", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.29.1.tgz", + "integrity": "sha512-LbspDMu1ei71LoAdot0QRcMQn3WyAwgAp/P4thqUFLOy0eQsbtLZN24a3KV7xdv/b9KAd/A4/T9apWz7YZqalQ==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "async-validator": "^4.1.0", + "rc-util": "^5.8.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.16.0.tgz", + "integrity": "sha512-11DOye57IgTXh2yTsmxFNynZJG3tdx8RZnnaqb38eYWrBPPyhVHIuURxyiSZ8B68lEUAggR7SBA0Zb95KP/CyQ==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.1.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.0.6" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.0.4.tgz", + "integrity": "sha512-clY4oneVHRtKHYf/HCxT/MO+4BGzCIywSNLosXWOm7fcQAS0jQW7n0an8Raa8JMB8kpxc8m28p7SNwFZmlMj6g==", + "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": "7.4.2", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.4.2.tgz", + "integrity": "sha512-yGturTw7WGP+M1GbJ+UTAO7L4buxeW6oilhL9Sq3DezsRS8/9qec4UiXUbeoiX9bzvRXH11JvgskBtxSp4YSNg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-util": "^5.28.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.2.0.tgz", + "integrity": "sha512-R7ncCldr02uKgJBBPlXdtnOGQIjZ9C3uoIMi4fabU3CPFdmefYlNF6QM4u2AzgcGt8V0KkoHTN5T6HPdUpet8g==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.6", + "rc-input": "~1.0.0", + "rc-menu": "~9.8.0", + "rc-textarea": "~1.2.0", + "rc-util": "^5.22.5" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.8.4", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.8.4.tgz", + "integrity": "sha512-lmw2j8I2fhdIzHmC9ajfImfckt0WDb2KVJJBBRIsxPEw2kGkEfjLMUoB1NgiNT/Q5cC8PdjGOGQjHJIJMwyNMw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.2.8", + "rc-trigger": "^5.1.2", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.3.tgz", + "integrity": "sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.0.3.tgz", + "integrity": "sha512-+wHbHu6RiTNtsZYx42WxWA+tC5m0qyKvJAauO4/6LIEyJspK8fRlFQz+OCFgFwGuNs3cOdo9tLs+cPfztSZwbQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.6.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.0.tgz", + "integrity": "sha512-p2Qt4SWPTHAYl4oAao1THy669Fm5q8pYBDBHRaFOekCvcdcrgIx0ByXQMEkyPm8wUDX4BK6aARWecvCRc/7CTA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.19.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.3.1.tgz", + "integrity": "sha512-eI4dSeB3OrFxll7KzWa3ZH63LV2tHxt0AUmZmDwuI6vc3CK5lZhaKUYq0fRowb5586hN+L26j5WZoSz9cwEfjg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-3.5.1.tgz", + "integrity": "sha512-T/rqhB2IVU014k14x713JGzHCUT56YEYsGkUT8vBVOANdoRCe18oN/8zdeWYB/7mQRTTHJ1vCSPnxOowjLyN8Q==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.1", + "rc-util": "^5.27.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": "3.4.1", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.4.1.tgz", + "integrity": "sha512-eAFDHXlk8aWpoXl0llrenPMt9qKHQXphxcVsnKs0FHC6eCSk1ebJtyaVjJUzKe0233ogiLDeEFK1Uihz3s67hw==", + "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.10.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.10.0.tgz", + "integrity": "sha512-TCjEpKPeN1m0EnGDDbb1KyxjNTJRzoReiPdtbrBJEey4Ryf/UGOQ6vqmz2yC6DJdYVDVUoZPdoz043ryh0t/nQ==", + "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.3.1", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz", + "integrity": "sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.27.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.1.2.tgz", + "integrity": "sha512-qGo1bCr83ESXpXVOCXjFe1QJlCAQXyi9KCiy8eX3rIMYlTeJr/ftySIaTnYsitL18SvWf5ZEHsfqIWoX0EMfFQ==", + "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.4.2", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.4.2.tgz", + "integrity": "sha512-Ykk4bIPwEMd1WDoG8pHrcggRcB7Sji+OhyWj3ADuGKtDQGlgg7PgM79Opf3qtbkLQX+Q9DiQ16UykozAgL5gMw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.0.0", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.4.13" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.1.1.tgz", + "integrity": "sha512-gn8oXazZISEhnmRinI89Z/JD/joAaM35jp+gDtIVSTD/JJMCCBqThqLk1SVJmvtfeiEF/kKaFY0+qt4SDHFUDw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.27.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.0.tgz", + "integrity": "sha512-+KfMZIty40mYCQSDvYbZ1jwnuObLauTiIskT1hL4FFOBHP6ZOr8LK0m143yD3kEN5XKHSEX1DIwCj3AYZpoeNQ==", + "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.0.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.0.0.tgz", + "integrity": "sha512-IfrYC99vN0gKaTyjQdqYuADU0eH00SAFHg3jOp8HrmUpJruhV1SohJzrCbPqPraZeX/6X/QKkdLfkdnUub05WA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-util": "^5.0.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.31.1", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.31.1.tgz", + "integrity": "sha512-KZPi35aGpv2VaL1Jbc58FBJo063HtKyVjhOFWX4AkBV7tjHHQokMdUoua5E+GPJh6QZUpK/a8PjKa9IZzPLIEA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.3.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.27.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "12.5.10", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.5.10.tgz", + "integrity": "sha512-Ay0l0jtd4eXepFH9vWBvinBjqOpqzcsJTerBGwJy435P2S90Uu38q8U/mvc1sxUEVOXX5ZCFbxcWPnfG3dH+tQ==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.0.0", + "rc-menu": "~9.8.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.16.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.2.2.tgz", + "integrity": "sha512-S9fkiek5VezfwJe2McEs/NH63xgnnZ4iDh6a8n01mIfzyNJj0HkS0Uz6boyR3/eONYjmKaqhrpuJJuEClRDEBw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.0.4", + "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.0.1", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.0.1.tgz", + "integrity": "sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^1.0.4", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.7.3.tgz", + "integrity": "sha512-Oql2S9+ZmT+mfTp5SNo1XM0QvkENjc0mPRFsHWRFSPuKird0OYMZZKmLznUJ+0aGDeFFWN42wiUZJtMFhrLgLw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.4.8" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.8.0.tgz", + "integrity": "sha512-NozrkVLR8k3cpx8R5/YFmJMptgOacR5zEQHZGMQg31bD6jEgGiJeOn2cGRI6x0Xdyvi1CSqCbUsIoqiej74wzw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-select": "~14.4.0", + "rc-tree": "~5.7.0", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-trigger": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.4.tgz", + "integrity": "sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.6", + "rc-align": "^4.0.0", + "rc-motion": "^2.0.0", + "rc-util": "^5.19.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-upload": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.4.tgz", + "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==", + "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.29.3", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.29.3.tgz", + "integrity": "sha512-wX6ZwQTzY2v7phJBquN4mSEIFR0E0qumlENx0zjENtDvoVSq2s7cR95UidKRO1hOHfDsecsfM9D1gO4Kebs7fA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^16.12.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz", + "integrity": "sha512-cPOVDmcNM7rH6ANotanMDilW/55XnFPw0Jh/GQYtrzZSy3AmWvCnqVNyNC/pgg3lfVmX2994dlzAhuUrd4jG7w==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.15.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", + "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", + "dependencies": { + "@remix-run/router": "1.5.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", + "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", + "dependencies": { + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.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/rollup": { + "version": "3.20.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.2.tgz", + "integrity": "sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.9.tgz", + "integrity": "sha512-El9s4RTy0DVX4sBHSt2BnyXVw40zQ7V7jG3NDWoLdTWlrEnc7RCjajwQy+ufd/ptGmY2zxh2l7Y1o8nq0CAovQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "optional": true, + "peer": true, + "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==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.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/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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/terser": { + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.18.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c6bf54a --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "global.highlights.hub", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "antd": "^5.4.0", + "mobx": "^6.9.0", + "mobx-react": "^7.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react": "^3.1.0", + "vite": "^4.2.0" + } +} diff --git a/public/app-logo.jpg b/public/app-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0969a97e2dc500e2def13ff6d423329fa4d8cc48 GIT binary patch literal 34937 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 aN&pqAi8D$ugow+D|17ZoXW!E0^uGWAOmNx& literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..05186130ef4503c04f5c2a5e3eca3b3e9212f86d GIT binary patch literal 4286 zcmeHLdr*{B6#pnwN)eE^;4Um63n)o~1w95D3(Ks0mE)lKie8rGqtc>OQbtFcX(pR8 zVV8aLR1^exibP_pG}b5&3kl5!W{QY{0>93=+ehS})gMfM)G~L^xA(jE{?7fK-#PaV zl4M7JzP=KFOBN?da+f4YO^v#w7;4-vKJ;$Xa9gu=NRrA)kHKy}_oTsZqz-lPu0QQfNjR~QISBPJ3p`))L+xQgh^I;TG*~|PJL{nso`wm27QB(LAB$!eVL92w z&le+UO*IzMZ?`*B2aN;9XO7igCKyudu=14ynD=ZU;-Ydf!QXF7tU5s#& zzQkKgE0MUe8jkclhP1#jk+m>b*u1VBgK)oeM2BVz>_8WT=)WZ{@fJX1c$|u!Z#iy& zykWeX$8(=@gic`lJJXs2%eZI$#RJgM?9DnzN=Jfe=i}}o_f^bx114jKBhkf`f zY+j$|dJorN&NKTk_t||=IBJC-97oT)G;qBm1)Ni|zqWPtB9>}TBO(Gb;OnS^x4qWp z!vK89bNgGHPIe$JHWvpgPob@?6Z|=L^cT#YRsbiv?Rfm*-I(=sA(XT}`^ngx%YGyE z!ndh0d$4M0CE}+SB6?glJcnwsFA*5mulESsez_BuE_I@(r&s)LsQVS8om0hr z$GRHeWv@ZvI|t$GmWFMg9Kqy=c2Qk3VJlY+alHJcx~Z+Y~E0fnESKw>Y{S2f3F%#m+Xg5 zdkoX3>=khday7z1+K$a1)e8JmC)?3*^n!TiuZr>(tWB)K`EwoExV{Fi!%{F#VTN8? zhZ#@hO3)W>o$cV;1$zjgpCmVSk# z52|6*)FblV3@nN-#)fs@prr656fS9)J+%OlK^br%zJo|7!F2wN9;U&>;B?#msgLnT zNMFGE%~^rb)!8jrPz_#QScU+qNz8qOIs+DC z1M+tNNZPkypFZ6#w8M3UIZ}{L;vU?ExwG=2+3`KruRbJvWBn*e<9yBsx*L%2LMg&j zW~?A?3iF!CRv?q~w1(moLHUyWVGX7~nNPW$4|n?%Z2HIwEA43p@uX5{(9v;S?0siW zBk}$@SRb6nT;u#HU*kw)ZxatkzHLQi<B>*`Qe z(t_ylbi7ACEQ~J_8sW2va86lM8yg%MQH}-++PDD^T zmdr1r9O=SW2Tmc(&jb&uk(`_CBR8&te$G0CDJ_@~U`7@Bx{ma}dPNmBuB{Q=z58Yr zJcgx;=NV7z71&&Ju3WKk@cgtwQ6I#4#I;xWK{boG=DgmTY{k_pUAXw`HO!onPh(Ta z2jYv*4Dx|3*B|C%a?~#3I1gEtMns2Y!{_ca43Rz+^;6}d$9G503;Zp~hw;LkV)4wH zaOt3+ho$<6r@J-t16a6%TvR4Z~vu9<9kEw>>lq_;A3UGGLG@%GF4 ztC$v>2QSJmdH=G{Jcnb)_cHk%gI=XNC!aYLRO^+lS~>@{7%}tFjuBa=!3a#*p!4%Y4Ys!3rZR`bIIgyW3XlIsWx^ z7m#H*4%Wx!BrCRTv|{nRQp|g<7&GGbl7>t13URi9a;dbah3a$rCgWC@o)B(HOqGnZv2k( qO2+LUS9#vwwIWCQ>Ed?t`s4hQdAD2h|95}H`oF}5{C|Ld%l-!U^{0FQ literal 0 HcmV?d00001 diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/error-page.jsx b/src/error-page.jsx new file mode 100644 index 0000000..798274d --- /dev/null +++ b/src/error-page.jsx @@ -0,0 +1,16 @@ +import { useRouteError } from "react-router-dom"; + +export default function ErrorPage() { + const error = useRouteError(); + console.error(error); + + return ( +
+

Oops!

+

Sorry, an unexpected error has occurred.

+

+ {error.statusText || error.message} +

+
+ ); +} \ No newline at end of file diff --git a/src/global.css b/src/global.css new file mode 100644 index 0000000..7749438 --- /dev/null +++ b/src/global.css @@ -0,0 +1,15 @@ +.logo { + float: left; + width: 120px; + height: 31px; + margin: 16px 24px 16px 0; + background: rgba(255, 255, 255, 0.3); +} + +#error-page { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 100%; +} \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..b5142c3 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,48 @@ +import React from "react"; +import { configure } from "mobx"; +import ReactDOM from "react-dom/client"; +import { + createBrowserRouter, + RouterProvider, +} from "react-router-dom"; +import RootStore from "./stores/Root"; +import { StoreContext } from './stores/StoreContext.js'; +import "./global.css"; +import App from "./views/App"; +import Index from "./views/index"; +import ErrorPage from "./error-page"; +import Plan from "./views/Plan"; + +configure({ + useProxies: "ifavailable", + enforceActions: "always", + computedRequiresReaction: true, + reactionRequiresObservable: true, + observableRequiresReaction: true, + disableErrorBoundaries: true +}); + +const router = createBrowserRouter([ + { + path: "/", + element: , + errorElement: , + children: [ + { index: true, element: }, + { + path: "plan/:planId", + element: , + } + ] + } +]); + +const rootStore = new RootStore(); + +ReactDOM.createRoot(document.getElementById("root")).render( + + + + + +); \ No newline at end of file diff --git a/src/stores/Plan.js b/src/stores/Plan.js new file mode 100644 index 0000000..8bf24c5 --- /dev/null +++ b/src/stores/Plan.js @@ -0,0 +1,20 @@ +import { makeAutoObservable } from "mobx"; + +class Plan { + count = 0; + + constructor(root) { + makeAutoObservable(this, { rootStore: false }); + this.root = root; + } + + increase() { + this.count += 1; + } + + decrease() { + this.count -= 1; + } +} + +export default Plan; \ No newline at end of file diff --git a/src/stores/Root.js b/src/stores/Root.js new file mode 100644 index 0000000..f369e8f --- /dev/null +++ b/src/stores/Root.js @@ -0,0 +1,11 @@ +import { makeAutoObservable } from "mobx"; +import Plan from "./Plan"; + +class Root { + constructor() { + this.plan = new Plan(this); + makeAutoObservable(this); + } +} + +export default Root; \ No newline at end of file diff --git a/src/stores/StoreContext.js b/src/stores/StoreContext.js new file mode 100644 index 0000000..aca4a62 --- /dev/null +++ b/src/stores/StoreContext.js @@ -0,0 +1,7 @@ +import { createContext, useContext } from "react"; + +export const StoreContext = createContext(); + +export function useStore() { + return useContext(StoreContext); +} \ No newline at end of file diff --git a/src/utils/commons.js b/src/utils/commons.js new file mode 100644 index 0000000..82bfc79 --- /dev/null +++ b/src/utils/commons.js @@ -0,0 +1,124 @@ +export function copy(obj) { + return JSON.parse(JSON.stringify(obj)); +} + +export function formatDate(date) { + if (isEmpty(date)) { + return "NaN"; + } + + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + + const monthStr = ("" + month).padStart(2, 0); + const dayStr = ("" + day).padStart(2, 0); + const formatted = year + "-" + monthStr + "-" + dayStr; + + return formatted; +} + +export function formatTime(date) { + const hours = date.getHours(); + const minutes = date.getMinutes(); + + const hoursStr = ("" + hours).padStart(2, 0); + const minutesStr = ("" + minutes).padStart(2, 0); + const formatted = hoursStr + ":" + minutesStr; + + return formatted; +} + +export function formatDatetime(date) { + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + + const monthStr = ("" + month).padStart(2, 0); + const dayStr = ("" + day).padStart(2, 0); + + const hours = date.getHours(); + const minutes = date.getMinutes(); + + const hoursStr = ("" + hours).padStart(2, 0); + const minutesStr = ("" + minutes).padStart(2, 0); + + const formatted = year + "-" + monthStr + "-" + dayStr + " " + hoursStr + ":" + minutesStr; + + return formatted; +} + +export function camelCase(name) { + return name.substr(0, 1).toLowerCase() + name.substr(1); +} + +export class UrlBuilder { + constructor(url) { + this.url = url; + this.paramList = []; + } + + append(name, value) { + if (isNotEmpty(value)) { + this.paramList.push({ name: name, value: value }); + } + return this; + } + + build() { + this.paramList.forEach((e, i, a) => { + if (i === 0) { + this.url += "?"; + } else { + this.url += "&"; + } + this.url += e.name + "=" + e.value; + }); + return this.url; + } +} + +export function isNotEmpty(val) { + return val !== undefined && val !== null && val !== ""; +} + +export function isEmpty(val) { + return val === undefined || val === null || val === ""; +} + +export function prepareUrl(url) { + return new UrlBuilder(url); +} + +export function debounce(fn, delay = 500) { + let timer; + return e => { + e.persist(); + clearTimeout(timer); + timer = setTimeout(() => { + fn(e); + }, delay); + }; +} + +export function throttle(fn, delay, atleast) { + let timeout = null, + startTime = new Date(); + return function () { + let curTime = new Date(); + clearTimeout(timeout); + if (curTime - startTime >= atleast) { + fn(); + startTime = curTime; + } else { + timeout = setTimeout(fn, delay); + } + }; +} + +export function clickUrl(url) { + const httpLink = document.createElement("a"); + httpLink.href = url; + httpLink.target = "_blank"; + httpLink.click(); +} \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..e28de42 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,69 @@ +function checkStatus(response) { + if (response.status >= 200 && response.status < 300) { + return response; + } else { + const message = + 'Fetch error: ' + response.url + ' ' + response.status + ' (' + + response.statusText + ')'; + const error = new Error(message); + error.response = response; + throw error; + } +} + +export function fetchText(url) { + return fetch(url) + .then(checkStatus) + .then(response => response.text()) + .catch(error => { + throw error; + }); +} + +export function fetchJSON(url) { + return fetch(url) + .then(checkStatus) + .then(response => response.json()) + .catch(error => { + throw error; + }); +} + +export function postForm(url, data) { + return fetch(url, { + method: 'POST', + body: data + }).then(checkStatus) + .then(response => response.json()) + .catch(error => { + throw error; + }); +} + +export function postJSON(url, obj) { + return fetch(url, { + method: 'POST', + body: JSON.stringify(obj), + headers: { + 'Content-type': 'application/json; charset=UTF-8' + } + }).then(checkStatus) + .then(response => response.json()) + .catch(error => { + throw error; + }); +} + +export function postStream(url, obj) { + return fetch(url, { + method: 'POST', + body: JSON.stringify(obj), + headers: { + 'Content-type': 'application/octet-stream' + } + }).then(checkStatus) + .then(response => response.json()) + .catch(error => { + throw error; + }); +} diff --git a/src/views/App.jsx b/src/views/App.jsx new file mode 100644 index 0000000..e36848e --- /dev/null +++ b/src/views/App.jsx @@ -0,0 +1,145 @@ +import { Outlet, Link, useNavigation } from "react-router-dom"; +import { useState, useEffect } from 'react'; +import { Breadcrumb, Layout, Menu, ConfigProvider, theme, Dropdown, Space, Row, Col } from 'antd'; +import { + MenuFoldOutlined, + MenuUnfoldOutlined, + UploadOutlined, + UserOutlined, + VideoCameraOutlined, + DownOutlined +} from '@ant-design/icons'; +import 'antd/dist/reset.css'; + +const { Header, Content, Footer, Sider } = Layout; +const items = [ + { + label: ( + + Profile + + ), + key: '0', + }, + { + label: ( + + Privacy + + ), + key: '1', + }, + { + type: 'divider', + }, + { + label: ( + + Logout + + ), + key: '3', + }, +] +export default function App() { + const { + token: { colorBgContainer }, + } = theme.useToken(); + return ( + + +
+ + + +
+ + Plan }, + { key: 2, label: Invoice }, + { key: 3, label: Feedback } + ] + } /> + + + + e.preventDefault()}> + + LiaoYijun + + + + + + + + +
+ + + + , + label: Jim, + }, + { + key: '2', + icon: , + label: Bill, + }, + ]} + /> + + + + Home + Plan + Recent + + + + +
+
+
+ + + + ); +} \ No newline at end of file diff --git a/src/views/Index.jsx b/src/views/Index.jsx new file mode 100644 index 0000000..2b55a12 --- /dev/null +++ b/src/views/Index.jsx @@ -0,0 +1,13 @@ +export default function Index() { + return ( +

+ This is a demo for React Router. +
+ Check out{" "} + + the docs at reactrouter.com + + . +

+ ); +} \ No newline at end of file diff --git a/src/views/Plan.jsx b/src/views/Plan.jsx new file mode 100644 index 0000000..ae195a3 --- /dev/null +++ b/src/views/Plan.jsx @@ -0,0 +1,143 @@ +import { Form, useParams } from "react-router-dom"; +import { useState, useEffect } from 'react'; +import { observer } from "mobx-react"; +import { Row, Col, Typography, Space, DatePicker, Button, Select, Table, Tag } from 'antd'; +import { + SearchOutlined, +} from '@ant-design/icons'; +import { useStore } from '../stores/StoreContext.js'; + +const columns = [ + { + title: 'Name', + dataIndex: 'name', + key: 'name', + render: (text) => {text}, + }, + { + title: 'Age', + dataIndex: 'age', + key: 'age', + }, + { + title: 'Address', + dataIndex: 'address', + key: 'address', + }, + { + title: 'Tags', + key: 'tags', + dataIndex: 'tags', + render: (_, { tags }) => ( + <> + {tags.map((tag) => { + let color = tag.length > 5 ? 'geekblue' : 'green'; + if (tag === 'loser') { + color = 'volcano'; + } + return ( + + {tag.toUpperCase()} + + ); + })} + + ), + }, + { + title: 'Action', + key: 'action', + render: (_, record) => ( + + Invite {record.name} + Delete + + ), + }, +]; +const data = [ + { + key: '1', + name: 'John Brown', + age: 32, + address: 'New York No. 1 Lake Park', + tags: ['nice', 'developer'], + }, + { + key: '2', + name: 'Jim Green', + age: 42, + address: 'London No. 1 Lake Park', + tags: ['loser'], + }, + { + key: '3', + name: 'Joe Black', + age: 32, + address: 'Sydney No. 1 Lake Park', + tags: ['cool', 'teacher'], + }, +]; + +function Plan() { + + const {planId} = useParams(); + const [count, setCount] = useState(0); + const store = useStore(); + const planStore = store.plan; + + useEffect(() => { + console.info('planId: ' + planId); + }, [planId]); + + const contact = { + first: "Your", + last: "Name", + avatar: "https://placekitten.com/g/200/200", + twitter: "your_handle", + notes: "Some notes", + favorite: true, + }; + + return ( + + + + Parameter: {planId} + + + + + + + + + + + + + + ); +} + +function Favorite({ contact }) { + // yes, this is a `let` for later + let favorite = contact.favorite; + return ( + + + + ); +} + +export default observer(Plan); \ No newline at end of file diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..b896a08 --- /dev/null +++ b/start.bat @@ -0,0 +1 @@ +npm run dev \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +})