diff --git a/.github/workflows/dev-azure-staticwebapp.yml b/.github/workflows/dev-azure-staticwebapp.yml
deleted file mode 100644
index f0e3a5c..0000000
--- a/.github/workflows/dev-azure-staticwebapp.yml
+++ /dev/null
@@ -1,118 +0,0 @@
-# This workflow will build and push a web application to an Azure Static Web App when you change your code.
-#
-# This workflow assumes you have already created the target Azure Static Web App.
-# For instructions see https://docs.microsoft.com/azure/static-web-apps/get-started-portal?tabs=vanilla-javascript
-#
-# To configure this workflow:
-#
-# 1. Set up a secret in your repository named AZURE_STATIC_WEB_APPS_API_TOKEN with the value of your Static Web Apps deployment token.
-# For instructions on obtaining the deployment token see: https://docs.microsoft.com/azure/static-web-apps/deployment-token-management
-#
-# 3. Change the values for the APP_LOCATION, API_LOCATION and APP_ARTIFACT_LOCATION, AZURE_STATIC_WEB_APPS_API_TOKEN environment variables (below).
-# For instructions on setting up the appropriate configuration values go to https://docs.microsoft.com/azure/static-web-apps/front-end-frameworks
-name: Deploy DEV EOEFANS WEB to Azure Static Web Apps
-
-on:
- push:
- branches: [ "main" ]
-# pull_request:
-# types: [synchronize, closed]
-# branches: [ "main" ]
-
-# Environment variables available to all jobs and steps in this workflow
-env:
- APP_LOCATION: "dist" # location of your client code
- API_LOCATION: "" # location of your api source code - optional
- APP_ARTIFACT_LOCATION: "" # location of client code build output
- AZURE_STATIC_WEB_APPS_API_TOKEN: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_DEV }} # secret containing deployment token for your static web app
- SKIP_APP_BUILD: true
-
-permissions:
- contents: read
-
-jobs:
- build_and_deploy_job:
- permissions:
- contents: read # for actions/checkout to fetch code
- pull-requests: write # for Azure/static-web-apps-deploy to comment on PRs
- if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
- runs-on: [ self-hosted, Linux ]
- environment:
- name: 'Development'
-# url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
-
- strategy:
- matrix:
- node-version: [18.x]
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
-
- name: Build and Deploy Job
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
-
-
- - uses: actions/setup-node@v3
- name: Use Node.js ${{ matrix.node-version }}
- with:
- node-version: ${{ matrix.node-version }}
-
- - uses: pnpm/action-setup@v2
- name: Install pnpm
- id: pnpm-install
- with:
- version: 7
- run_install: false
-
- - name: Get pnpm store directory
- id: pnpm-cache
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
-
- - uses: actions/cache@v3
- name: Setup pnpm cache
- with:
- path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - name: Install dependencies
- run: pnpm install
-
- - name: Use pnpm to build
- run: pnpm run build
-
-# - name: post-build test
-# run: pnpm test
-
- - name: Deploy build artifacts to Azure
- id: builddeploy
- uses: Azure/static-web-apps-deploy@v1
- with:
- azure_static_web_apps_api_token: ${{ env.AZURE_STATIC_WEB_APPS_API_TOKEN }} # secret containing api token for app
- repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
- action: "upload"
- ###### Repository/Build Configurations - These values can be configured to match you app requirements. ######
- # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
- app_location: ${{ env.APP_LOCATION }}
- api_location: ${{ env.API_LOCATION }}
- app_artifact_location: ${{ env.APP_ARTIFACT_LOCATION }}
- skip_app_build: ${{ env.SKIP_APP_BUILD }} #comment this out to use azure oryx build
- ###### End of Repository/Build Configurations ######
-
- close_pull_request_job:
- permissions:
- contents: none
- if: github.event_name == 'pull_request' && github.event.action == 'closed'
- runs-on: [ self-hosted, Linux ]
- name: Close Pull Request Job
- steps:
- - name: Close Pull Request
- id: closepullrequest
- uses: Azure/static-web-apps-deploy@v1
- with:
- azure_static_web_apps_api_token: ${{ env.AZURE_STATIC_WEB_APPS_API_TOKEN }} # secret containing api token for app
- action: "close"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e5285e..6cee00b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,79 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+# [1.0.0](/compare/v0.3.0...v1.0.0) (2023-03-01)
+
+
+
+# [0.3.0](/compare/v0.2.0...v0.3.0) (2023-03-01)
+
+
+### ✨ Features
+
+* **custom**: 添加重大事项通知 a949fe4
+
+
+
+# [0.2.0](/compare/v0.1.2...v0.2.0) (2023-03-01)
+
+
+### ✨ Features
+
+* **custom**: 测试1.0版本 8e656d5
+
+
+
+## [0.1.2](/compare/v0.1.1...v0.1.2) (2023-03-01)
+
+
+### 📝 Documentation
+
+* **custom**: 修改文档 605770f
+
+
+
+## [0.1.1](/compare/v0.1.0...v0.1.1) (2023-03-01)
+
+
+### ♻ Code Refactoring
+
+* **custom**: 手机端高级搜索完成,至此全部搜索初版完成 deeebb4, closes #20 #28
+
+
+### ⚡ Performance Improvements
+
+* **custom**: 平板端样式更新以及适配 bc59157
+* **custom**: 添加初版重构页面 f3b31d1
+* **custom**: 添加普通搜索以及页面优化 c4f8e4e
+* **custom**: 增加pc端搜索动态效果 7c4e758
+
+
+### 🎫 Chores
+
+* **custom**: 升级依赖 1df0974
+
+
+### 🐛 Bug Fixes
+
+* **custom**: 修复搜索栏无法使用问题,添加点击蛞蝓回到主页 aac18c5, closes #25 #26
+* **custom**: dev环境下路径问题 ba34908, closes #19
+
+
+### 💄 Styles
+
+* **custom**: 顶部固定 e6d0048
+* **custom**: 视频页内容区修改样式 4a7c449
+* **custom**: 手机端搜索栏样式修改,pc端高级搜索当无输入内容时展示默认内容 edd527f
+* **custom**: 添加手机端普通搜索样式 2a84717
+* **custom**: 添加pc端高级搜索样式 8554d28
+* **custom**: 添加tailwind css 1e6785d
+* **custom**: 修改手机端拉取栏样式 bcf0987
+* **custom**: 修改首页样式以及右侧拉栏样式 c9f2f31
+* **custom**: 修改tailwind 227ede4
+* **custom**: tag栏修改样式 1f68668
+
+
+
# [0.1.0](/compare/v0.0.3...v0.1.0) (2023-02-19)
diff --git a/config/vite.dev.config.ts b/config/vite.dev.config.ts
index 4ed1636..0d8e6ba 100644
--- a/config/vite.dev.config.ts
+++ b/config/vite.dev.config.ts
@@ -6,7 +6,7 @@ export const addProjectPath = (originPath: string) => `../${originPath}`;
import { createHtmlPlugin } from "vite-plugin-html";
export default defineConfig({
define: {
- __APP_VERSION__: "0.01",
+ __APP_VERSION__: "0.02",
isdev: true,
isrelease: false,
},
diff --git a/config/vite.dev.config.ts.timestamp-1677330152133.mjs b/config/vite.dev.config.ts.timestamp-1677330152133.mjs
new file mode 100644
index 0000000..169be8a
--- /dev/null
+++ b/config/vite.dev.config.ts.timestamp-1677330152133.mjs
@@ -0,0 +1,48 @@
+// config/vite.dev.config.ts
+import { defineConfig } from "file:///E:/code/project/bitbucket/eoefans-web/node_modules/.pnpm/vite@4.1.4_ve7l6t5koctut52smtaue47xhi/node_modules/vite/dist/node/index.js";
+import path from "path";
+import react from "file:///E:/code/project/bitbucket/eoefans-web/node_modules/.pnpm/@vitejs+plugin-react-swc@3.2.0_vite@4.1.4/node_modules/@vitejs/plugin-react-swc/index.mjs";
+import { createHtmlPlugin } from "file:///E:/code/project/bitbucket/eoefans-web/node_modules/.pnpm/vite-plugin-html@3.2.0_vite@4.1.4/node_modules/vite-plugin-html/dist/index.mjs";
+var __vite_injected_original_dirname = "E:\\code\\project\\bitbucket\\eoefans-web\\config";
+var addProjectPath = (originPath) => `../${originPath}`;
+var vite_dev_config_default = defineConfig({
+ define: {
+ __APP_VERSION__: "0.01",
+ isdev: true,
+ isrelease: false
+ },
+ resolve: {
+ alias: {
+ "@utils": path.resolve(__vite_injected_original_dirname, addProjectPath("src/utils")),
+ "@components": path.resolve(__vite_injected_original_dirname, addProjectPath("src/components")),
+ "@store": path.resolve(__vite_injected_original_dirname, addProjectPath("src/store")),
+ "@routers": path.resolve(__vite_injected_original_dirname, addProjectPath("src/routers")),
+ "@assets": path.resolve(__vite_injected_original_dirname, addProjectPath("src/assets"))
+ }
+ },
+ plugins: [
+ react(),
+ createHtmlPlugin({
+ entry: "src/main.tsx",
+ template: "index.html",
+ inject: {
+ data: {
+ injectScript: ``
+ }
+ }
+ })
+ ],
+ server: {
+ proxy: {
+ "/v1": {
+ target: "https://api.eoe.best/eoefans-api",
+ changeOrigin: true
+ }
+ }
+ }
+});
+export {
+ addProjectPath,
+ vite_dev_config_default as default
+};
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29uZmlnL3ZpdGUuZGV2LmNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXGNvZGVcXFxccHJvamVjdFxcXFxiaXRidWNrZXRcXFxcZW9lZmFucy13ZWJcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxjb2RlXFxcXHByb2plY3RcXFxcYml0YnVja2V0XFxcXGVvZWZhbnMtd2ViXFxcXGNvbmZpZ1xcXFx2aXRlLmRldi5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2NvZGUvcHJvamVjdC9iaXRidWNrZXQvZW9lZmFucy13ZWIvY29uZmlnL3ZpdGUuZGV2LmNvbmZpZy50c1wiO2ltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCI7XHJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XHJcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3Qtc3djXCI7XHJcbi8vcmVkaWN0UGF0aFxyXG5leHBvcnQgY29uc3QgYWRkUHJvamVjdFBhdGggPSAob3JpZ2luUGF0aDogc3RyaW5nKSA9PiBgLi4vJHtvcmlnaW5QYXRofWA7XHJcbmltcG9ydCB7IGNyZWF0ZUh0bWxQbHVnaW4gfSBmcm9tIFwidml0ZS1wbHVnaW4taHRtbFwiO1xyXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xyXG4gIGRlZmluZToge1xyXG4gICAgX19BUFBfVkVSU0lPTl9fOiBcIjAuMDFcIixcclxuICAgIGlzZGV2OiB0cnVlLFxyXG4gICAgaXNyZWxlYXNlOiBmYWxzZSxcclxuICB9LFxyXG4gIHJlc29sdmU6IHtcclxuICAgIGFsaWFzOiB7XHJcbiAgICAgIFwiQHV0aWxzXCI6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIGFkZFByb2plY3RQYXRoKFwic3JjL3V0aWxzXCIpKSxcclxuICAgICAgXCJAY29tcG9uZW50c1wiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBhZGRQcm9qZWN0UGF0aChcInNyYy9jb21wb25lbnRzXCIpKSxcclxuICAgICAgXCJAc3RvcmVcIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgYWRkUHJvamVjdFBhdGgoXCJzcmMvc3RvcmVcIikpLFxyXG4gICAgICBcIkByb3V0ZXJzXCI6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIGFkZFByb2plY3RQYXRoKFwic3JjL3JvdXRlcnNcIikpLFxyXG4gICAgICBcIkBhc3NldHNcIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgYWRkUHJvamVjdFBhdGgoXCJzcmMvYXNzZXRzXCIpKSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBwbHVnaW5zOiBbXHJcbiAgICByZWFjdCgpLFxyXG4gICAgY3JlYXRlSHRtbFBsdWdpbih7XHJcbiAgICAgIGVudHJ5OiBcInNyYy9tYWluLnRzeFwiLFxyXG4gICAgICB0ZW1wbGF0ZTogXCJpbmRleC5odG1sXCIsXHJcbiAgICAgIGluamVjdDoge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGluamVjdFNjcmlwdDogYGAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgc2VydmVyOiB7XHJcbiAgICBwcm94eToge1xyXG4gICAgICBcIi92MVwiOiB7XHJcbiAgICAgICAgdGFyZ2V0OiBcImh0dHBzOi8vYXBpLmVvZS5iZXN0L2VvZWZhbnMtYXBpXCIsXHJcbiAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG59KTtcclxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUEwVSxTQUFTLG9CQUFvQjtBQUN2VyxPQUFPLFVBQVU7QUFDakIsT0FBTyxXQUFXO0FBR2xCLFNBQVMsd0JBQXdCO0FBTGpDLElBQU0sbUNBQW1DO0FBSWxDLElBQU0saUJBQWlCLENBQUMsZUFBdUIsTUFBTTtBQUU1RCxJQUFPLDBCQUFRLGFBQWE7QUFBQSxFQUMxQixRQUFRO0FBQUEsSUFDTixpQkFBaUI7QUFBQSxJQUNqQixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsRUFDYjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsVUFBVSxLQUFLLFFBQVEsa0NBQVcsZUFBZSxXQUFXLENBQUM7QUFBQSxNQUM3RCxlQUFlLEtBQUssUUFBUSxrQ0FBVyxlQUFlLGdCQUFnQixDQUFDO0FBQUEsTUFDdkUsVUFBVSxLQUFLLFFBQVEsa0NBQVcsZUFBZSxXQUFXLENBQUM7QUFBQSxNQUM3RCxZQUFZLEtBQUssUUFBUSxrQ0FBVyxlQUFlLGFBQWEsQ0FBQztBQUFBLE1BQ2pFLFdBQVcsS0FBSyxRQUFRLGtDQUFXLGVBQWUsWUFBWSxDQUFDO0FBQUEsSUFDakU7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixpQkFBaUI7QUFBQSxNQUNmLE9BQU87QUFBQSxNQUNQLFVBQVU7QUFBQSxNQUNWLFFBQVE7QUFBQSxRQUNOLE1BQU07QUFBQSxVQUNKLGNBQWM7QUFBQSxRQUNoQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixPQUFPO0FBQUEsTUFDTCxPQUFPO0FBQUEsUUFDTCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
diff --git a/config/vite.master.config.ts b/config/vite.master.config.ts
index 56938d5..dcac897 100644
--- a/config/vite.master.config.ts
+++ b/config/vite.master.config.ts
@@ -83,6 +83,8 @@ export default mergeConfig(
react: ["react", "react-dom"],
"react-router": ["react-router-dom"],
"react-redux": ["@reduxjs/toolkit", "react-redux"],
+ masonic: ["masonic"],
+ sentry: ["@sentry/react", "@sentry/tracing"],
axios: ["axios"],
lib: [
"@mui/icons-material",
@@ -104,6 +106,7 @@ export default mergeConfig(
"react-intersection-observer",
"dayjs",
],
+ "react-photo-view": ["react-photo-view"],
},
},
},
diff --git a/index.html b/index.html
index a2966e7..9ef6ac0 100644
--- a/index.html
+++ b/index.html
@@ -3,6 +3,7 @@
+
diff --git a/package.json b/package.json
index 1c405f3..b82f1a0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "eoefans-web",
- "version": "0.1.0",
+ "version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite --config ./config/vite.dev.config.ts",
@@ -26,7 +26,7 @@
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@mui/icons-material": "^5.11.9",
- "@mui/lab": "5.0.0-alpha.119",
+ "@mui/lab": "5.0.0-alpha.121",
"@mui/material": "^5.11.9",
"@reduxjs/toolkit": "^1.9.2",
"@sentry/react": "^7.37.2",
@@ -59,6 +59,7 @@
"@types/react-lazy-load-image-component": "^1.5.2",
"@vitejs/plugin-legacy": "^4.0.1",
"@vitejs/plugin-react-swc": "^3.1.0",
+ "autoprefixer": "^10.4.13",
"commitizen": "^4.3.0",
"commitlint": "^17.4.3",
"commitlint-config-gitmoji": "^2.3.1",
@@ -67,11 +68,13 @@
"cz-customizable": "^7.0.0",
"husky": "^8.0.3",
"less": "^4.1.3",
+ "postcss": "^8.4.21",
"rollup-plugin-visualizer": "^5.9.0",
"standard-version": "^9.5.0",
+ "tailwindcss": "^3.2.7",
"terser": "^5.16.3",
"typescript": "^4.9.5",
- "vite": "4.1.1",
+ "vite": "4.1.4",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-html": "^3.2.0",
"vite-plugin-sentry": "^1.1.7"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 268ece3..84579ba 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,7 +9,7 @@ specifiers:
'@emotion/react': ^11.10.6
'@emotion/styled': ^11.10.6
'@mui/icons-material': ^5.11.9
- '@mui/lab': 5.0.0-alpha.119
+ '@mui/lab': 5.0.0-alpha.121
'@mui/material': ^5.11.9
'@reduxjs/toolkit': ^1.9.2
'@sentry/react': ^7.37.2
@@ -22,6 +22,7 @@ specifiers:
'@types/react-lazy-load-image-component': ^1.5.2
'@vitejs/plugin-legacy': ^4.0.1
'@vitejs/plugin-react-swc': ^3.1.0
+ autoprefixer: ^10.4.13
axios: ^1.3.3
commitizen: ^4.3.0
commitlint: ^17.4.3
@@ -39,6 +40,7 @@ specifiers:
material-ui-popup-state: ^5.0.4
nanoid: ^4.0.1
normalize.css: ^8.0.1
+ postcss: ^8.4.21
react: ^18.2.0
react-dom: ^18.2.0
react-flip-toolkit: ^7.0.17
@@ -49,27 +51,28 @@ specifiers:
react-use: ^17.4.0
rollup-plugin-visualizer: ^5.9.0
standard-version: ^9.5.0
+ tailwindcss: ^3.2.7
terser: ^5.16.3
typescript: ^4.9.5
- vite: 4.1.1
+ vite: 4.1.4
vite-plugin-compression: ^0.5.1
vite-plugin-html: ^3.2.0
vite-plugin-sentry: ^1.1.7
dependencies:
- '@dnd-kit/core': 6.0.7_biqbaboplfbrettd7655fr4n2y
- '@dnd-kit/modifiers': 6.0.1_pmudlfv2z3i7vvlookxjkeidxe
- '@dnd-kit/sortable': 7.0.2_pmudlfv2z3i7vvlookxjkeidxe
+ '@dnd-kit/core': 6.0.8_biqbaboplfbrettd7655fr4n2y
+ '@dnd-kit/modifiers': 6.0.1_52scne4zmdeyjh2otzkgz2xfvu
+ '@dnd-kit/sortable': 7.0.2_52scne4zmdeyjh2otzkgz2xfvu
'@dnd-kit/utilities': 3.2.1_react@18.2.0
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
'@emotion/styled': 11.10.6_oouaibmszuch5k64ms7uxp2aia
- '@mui/icons-material': 5.11.9_ofpk46txu7v2f5mzrtv4xsczka
- '@mui/lab': 5.0.0-alpha.119_oc7w4sqyc6xrc5vjlyub4opq2u
- '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli
- '@reduxjs/toolkit': 1.9.2_k4ae6lp43ej6mezo3ztvx6pykq
- '@sentry/react': 7.38.0_react@18.2.0
- '@sentry/tracing': 7.38.0
- axios: 1.3.3
+ '@mui/icons-material': 5.11.11_h5fh5ntwxtyr677wxvzgewjsma
+ '@mui/lab': 5.0.0-alpha.121_gyxidxyv3rk32gbfkthfb2r3tm
+ '@mui/material': 5.11.11_xqeqsl5kvjjtyxwyi3jhw3yuli
+ '@reduxjs/toolkit': 1.9.3_k4ae6lp43ej6mezo3ztvx6pykq
+ '@sentry/react': 7.40.0_react@18.2.0
+ '@sentry/tracing': 7.40.0
+ axios: 1.3.4
dayjs: 1.11.7
intersection-observer: 0.12.2
json-bigint: 1.0.0
@@ -81,22 +84,23 @@ dependencies:
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
react-flip-toolkit: 7.0.17_biqbaboplfbrettd7655fr4n2y
- react-intersection-observer: 9.4.2_react@18.2.0
+ react-intersection-observer: 9.4.3_react@18.2.0
react-photo-view: 1.2.3_biqbaboplfbrettd7655fr4n2y
react-redux: 8.0.5_3xleytyzprlgycb2ded54tx72i
- react-router-dom: 6.8.1_biqbaboplfbrettd7655fr4n2y
+ react-router-dom: 6.8.2_biqbaboplfbrettd7655fr4n2y
react-use: 17.4.0_biqbaboplfbrettd7655fr4n2y
devDependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@types/imagesloaded': 4.1.2
'@types/json-bigint': 1.0.1
- '@types/node': 18.14.0
+ '@types/node': 18.14.5
'@types/react': 18.0.28
'@types/react-dom': 18.0.11
'@types/react-lazy-load-image-component': 1.5.2
- '@vitejs/plugin-legacy': 4.0.1_terser@5.16.4+vite@4.1.1
- '@vitejs/plugin-react-swc': 3.2.0_vite@4.1.1
+ '@vitejs/plugin-legacy': 4.0.1_terser@5.16.5+vite@4.1.4
+ '@vitejs/plugin-react-swc': 3.2.0_vite@4.1.4
+ autoprefixer: 10.4.13_postcss@8.4.21
commitizen: 4.3.0
commitlint: 17.4.4
commitlint-config-gitmoji: 2.3.1
@@ -105,14 +109,16 @@ devDependencies:
cz-customizable: 7.0.0
husky: 8.0.3
less: 4.1.3
+ postcss: 8.4.21
rollup-plugin-visualizer: 5.9.0
standard-version: 9.5.0
- terser: 5.16.4
+ tailwindcss: 3.2.7_postcss@8.4.21
+ terser: 5.16.5
typescript: 4.9.5
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
- vite-plugin-compression: 0.5.1_vite@4.1.1
- vite-plugin-html: 3.2.0_vite@4.1.1
- vite-plugin-sentry: 1.1.7_vite@4.1.1
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
+ vite-plugin-compression: 0.5.1_vite@4.1.4
+ vite-plugin-html: 3.2.0_vite@4.1.4
+ vite-plugin-sentry: 1.1.7_vite@4.1.4
packages:
@@ -130,25 +136,25 @@ packages:
dependencies:
'@babel/highlight': 7.18.6
- /@babel/compat-data/7.20.14:
- resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==}
+ /@babel/compat-data/7.21.0:
+ resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core/7.20.12:
- resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
+ /@babel/core/7.21.0:
+ resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.0
'@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.14
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helpers': 7.20.13
- '@babel/parser': 7.20.15
+ '@babel/generator': 7.21.1
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
+ '@babel/helper-module-transforms': 7.21.2
+ '@babel/helpers': 7.21.0
+ '@babel/parser': 7.21.2
'@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -158,12 +164,13 @@ packages:
- supports-color
dev: true
- /@babel/generator/7.20.14:
- resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==}
+ /@babel/generator/7.21.1:
+ resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
'@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.17
jsesc: 2.5.2
dev: true
@@ -171,7 +178,7 @@ packages:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-builder-binary-assignment-operator-visitor/7.18.9:
@@ -179,34 +186,34 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-explode-assignable-expression': 7.18.6
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
- /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12:
+ /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/compat-data': 7.20.14
- '@babel/core': 7.20.12
- '@babel/helper-validator-option': 7.18.6
+ '@babel/compat-data': 7.21.0
+ '@babel/core': 7.21.0
+ '@babel/helper-validator-option': 7.21.0
browserslist: 4.21.5
lru-cache: 5.1.1
semver: 6.3.0
dev: true
- /@babel/helper-create-class-features-plugin/7.20.12_@babel+core@7.20.12:
- resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==}
+ /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-member-expression-to-functions': 7.20.7
+ '@babel/helper-function-name': 7.21.0
+ '@babel/helper-member-expression-to-functions': 7.21.0
'@babel/helper-optimise-call-expression': 7.18.6
'@babel/helper-replace-supers': 7.20.7
'@babel/helper-skip-transparent-expression-wrappers': 7.20.0
@@ -215,24 +222,24 @@ packages:
- supports-color
dev: true
- /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.12:
- resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==}
+ /@babel/helper-create-regexp-features-plugin/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-annotate-as-pure': 7.18.6
regexpu-core: 5.3.1
dev: true
- /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12:
+ /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.21.0:
resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
peerDependencies:
'@babel/core': ^7.4.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
debug: 4.3.4
lodash.debounce: 4.0.8
@@ -251,39 +258,39 @@ packages:
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
- /@babel/helper-function-name/7.19.0:
- resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
+ /@babel/helper-function-name/7.21.0:
+ resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-hoist-variables/7.18.6:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
- /@babel/helper-member-expression-to-functions/7.20.7:
- resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
+ /@babel/helper-member-expression-to-functions/7.21.0:
+ resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-module-imports/7.18.6:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
- /@babel/helper-module-transforms/7.20.11:
- resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==}
+ /@babel/helper-module-transforms/7.21.2:
+ resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-environment-visitor': 7.18.9
@@ -292,8 +299,8 @@ packages:
'@babel/helper-split-export-declaration': 7.18.6
'@babel/helper-validator-identifier': 7.19.1
'@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -302,7 +309,7 @@ packages:
resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-plugin-utils/7.20.2:
@@ -310,17 +317,17 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12:
+ /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-environment-visitor': 7.18.9
'@babel/helper-wrap-function': 7.20.5
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -330,11 +337,11 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-member-expression-to-functions': 7.20.7
+ '@babel/helper-member-expression-to-functions': 7.21.0
'@babel/helper-optimise-call-expression': 7.18.6
'@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -343,21 +350,21 @@ packages:
resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-skip-transparent-expression-wrappers/7.20.0:
resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-split-export-declaration/7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
/@babel/helper-string-parser/7.19.4:
@@ -368,8 +375,8 @@ packages:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-option/7.18.6:
- resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
+ /@babel/helper-validator-option/7.21.0:
+ resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
engines: {node: '>=6.9.0'}
dev: true
@@ -377,21 +384,21 @@ packages:
resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-function-name': 7.19.0
+ '@babel/helper-function-name': 7.21.0
'@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helpers/7.20.13:
- resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==}
+ /@babel/helpers/7.21.0:
+ resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -404,414 +411,414 @@ packages:
chalk: 2.4.2
js-tokens: 4.0.0
- /@babel/parser/7.20.15:
- resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
+ /@babel/parser/7.21.2:
+ resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.2
dev: true
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-environment-visitor': 7.18.9
'@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12
+ '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-class-static-block/7.20.7_@babel+core@7.20.12:
- resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==}
+ /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.14
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/compat-data': 7.21.0
+ '@babel/core': 7.21.0
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.12:
- resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==}
+ /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0
dev: true
- /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.20.12:
- resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==}
+ /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12
+ '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
engines: {node: '>=4'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12:
+ /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.0:
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12:
+ /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.0:
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12:
+ /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.0:
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12:
+ /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.21.0:
resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12:
+ /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.0:
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12:
+ /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.0:
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12:
+ /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.0:
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12:
+ /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.0:
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12:
+ /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.0:
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-module-imports': 7.18.6
'@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12
+ '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-block-scoping/7.20.15_@babel+core@7.20.12:
- resolution: {integrity: sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==}
+ /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12:
- resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==}
+ /@babel/plugin-transform-classes/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
'@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
+ '@babel/helper-function-name': 7.21.0
'@babel/helper-optimise-call-expression': 7.18.6
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-replace-supers': 7.20.7
@@ -821,399 +828,399 @@ packages:
- supports-color
dev: true
- /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
'@babel/template': 7.20.7
dev: true
- /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.12:
- resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+ /@babel/plugin-transform-for-of/7.21.0_@babel+core@7.21.0:
+ resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
- '@babel/helper-function-name': 7.19.0
+ '@babel/core': 7.21.0
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
+ '@babel/helper-function-name': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-transform-literals/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12:
+ /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.21.0:
resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
+ '@babel/core': 7.21.0
+ '@babel/helper-module-transforms': 7.21.2
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-commonjs/7.20.11_@babel+core@7.20.12:
- resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==}
+ /@babel/plugin-transform-modules-commonjs/7.21.2_@babel+core@7.21.0:
+ resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
+ '@babel/core': 7.21.0
+ '@babel/helper-module-transforms': 7.21.2
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-simple-access': 7.20.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12:
+ /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.21.0:
resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-module-transforms': 7.20.11
+ '@babel/helper-module-transforms': 7.21.2
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-validator-identifier': 7.19.1
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
+ '@babel/core': 7.21.0
+ '@babel/helper-module-transforms': 7.21.2
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12:
+ /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.21.0:
resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-replace-supers': 7.20.7
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.12:
+ /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.21.0:
resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
regenerator-transform: 0.15.1
dev: true
- /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12:
+ /@babel/plugin-transform-spread/7.20.7_@babel+core@7.21.0:
resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.20.0
dev: true
- /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12:
+ /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.21.0:
resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12:
+ /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.21.0:
resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12:
+ /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.0:
resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/preset-env/7.20.2_@babel+core@7.20.12:
+ /@babel/preset-env/7.20.2_@babel+core@7.21.0:
resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.14
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/compat-data': 7.21.0
+ '@babel/core': 7.21.0
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-class-static-block': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.12
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12
- '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12
- '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12
- '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12
- '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12
- '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12
- '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12
- '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-block-scoping': 7.20.15_@babel+core@7.20.12
- '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12
- '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12
- '@babel/plugin-transform-modules-commonjs': 7.20.11_@babel+core@7.20.12
- '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12
- '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12
- '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.12
- '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12
- '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12
- '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12
- '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12
- '@babel/preset-modules': 0.1.5_@babel+core@7.20.12
- '@babel/types': 7.20.7
- babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12
- babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12
- babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12
- core-js-compat: 3.28.0
+ '@babel/helper-validator-option': 7.21.0
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0
+ '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.21.0
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.21.0
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0
+ '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.0
+ '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-for-of': 7.21.0_@babel+core@7.21.0
+ '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.21.0
+ '@babel/plugin-transform-modules-commonjs': 7.21.2_@babel+core@7.21.0
+ '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.21.0
+ '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.21.0
+ '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.21.0
+ '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.21.0
+ '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.21.0
+ '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.21.0
+ '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/preset-modules': 0.1.5_@babel+core@7.21.0
+ '@babel/types': 7.21.2
+ babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0
+ babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0
+ babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0
+ core-js-compat: 3.29.0
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/preset-modules/0.1.5_@babel+core@7.20.12:
+ /@babel/preset-modules/0.1.5_@babel+core@7.21.0:
resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12
- '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12
- '@babel/types': 7.20.7
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0
+ '@babel/types': 7.21.2
esutils: 2.0.3
dev: true
@@ -1221,8 +1228,8 @@ packages:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
dev: true
- /@babel/runtime/7.20.13:
- resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==}
+ /@babel/runtime/7.21.0:
+ resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
@@ -1232,30 +1239,30 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.18.6
- '@babel/parser': 7.20.15
- '@babel/types': 7.20.7
+ '@babel/parser': 7.21.2
+ '@babel/types': 7.21.2
dev: true
- /@babel/traverse/7.20.13:
- resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
+ /@babel/traverse/7.21.2:
+ resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.14
+ '@babel/generator': 7.21.1
'@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
+ '@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.20.15
- '@babel/types': 7.20.7
+ '@babel/parser': 7.21.2
+ '@babel/types': 7.21.2
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types/7.20.7:
- resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
+ /@babel/types/7.21.2:
+ resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.19.4
@@ -1276,7 +1283,7 @@ packages:
lodash.isfunction: 3.0.9
resolve-from: 5.0.0
resolve-global: 1.0.0
- yargs: 17.7.0
+ yargs: 17.7.1
transitivePeerDependencies:
- '@swc/core'
- '@swc/wasm'
@@ -1341,15 +1348,15 @@ packages:
'@commitlint/execute-rule': 17.4.0
'@commitlint/resolve-extends': 17.4.4
'@commitlint/types': 17.4.4
- '@types/node': 18.14.0
+ '@types/node': 18.14.5
chalk: 4.1.2
- cosmiconfig: 8.0.0
- cosmiconfig-typescript-loader: 4.3.0_ipkhww4xc5z2tt2x53vp2mt2be
+ cosmiconfig: 8.1.0
+ cosmiconfig-typescript-loader: 4.3.0_v3kbstntxphny76zodmlbds7aa
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
resolve-from: 5.0.0
- ts-node: 10.9.1_tncu2ai53lzgmizdedur7lbibe
+ ts-node: 10.9.1_2cogyjchoknpkalymtikkc6nay
typescript: 4.9.5
transitivePeerDependencies:
- '@swc/core'
@@ -1439,8 +1446,8 @@ packages:
tslib: 2.5.0
dev: false
- /@dnd-kit/core/6.0.7_biqbaboplfbrettd7655fr4n2y:
- resolution: {integrity: sha512-qcLBTVTjmLuLqC0RHQ+dFKN5neWmAI56H9xZ+he9WEJEkAvR76YAcz7DSWDJfjErepfG2H3Fkb9lYiX7cPR62g==}
+ /@dnd-kit/core/6.0.8_biqbaboplfbrettd7655fr4n2y:
+ resolution: {integrity: sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
@@ -1452,25 +1459,25 @@ packages:
tslib: 2.5.0
dev: false
- /@dnd-kit/modifiers/6.0.1_pmudlfv2z3i7vvlookxjkeidxe:
+ /@dnd-kit/modifiers/6.0.1_52scne4zmdeyjh2otzkgz2xfvu:
resolution: {integrity: sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==}
peerDependencies:
'@dnd-kit/core': ^6.0.6
react: '>=16.8.0'
dependencies:
- '@dnd-kit/core': 6.0.7_biqbaboplfbrettd7655fr4n2y
+ '@dnd-kit/core': 6.0.8_biqbaboplfbrettd7655fr4n2y
'@dnd-kit/utilities': 3.2.1_react@18.2.0
react: 18.2.0
tslib: 2.5.0
dev: false
- /@dnd-kit/sortable/7.0.2_pmudlfv2z3i7vvlookxjkeidxe:
+ /@dnd-kit/sortable/7.0.2_52scne4zmdeyjh2otzkgz2xfvu:
resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==}
peerDependencies:
'@dnd-kit/core': ^6.0.7
react: '>=16.8.0'
dependencies:
- '@dnd-kit/core': 6.0.7_biqbaboplfbrettd7655fr4n2y
+ '@dnd-kit/core': 6.0.8_biqbaboplfbrettd7655fr4n2y
'@dnd-kit/utilities': 3.2.1_react@18.2.0
react: 18.2.0
tslib: 2.5.0
@@ -1489,7 +1496,7 @@ packages:
resolution: {integrity: sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==}
dependencies:
'@babel/helper-module-imports': 7.18.6
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/hash': 0.9.0
'@emotion/memoize': 0.8.0
'@emotion/serialize': 1.1.1
@@ -1534,7 +1541,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/babel-plugin': 11.10.6
'@emotion/cache': 11.10.5
'@emotion/serialize': 1.1.1
@@ -1570,7 +1577,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/babel-plugin': 11.10.6
'@emotion/is-prop-valid': 1.2.0
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
@@ -1895,32 +1902,8 @@ packages:
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
dev: false
- /@mui/base/5.0.0-alpha.117_zula6vjvt3wdocc4mwcxqa6nzi:
- resolution: {integrity: sha512-3GlRSZdSrvDQ4k03dSV2rM+97JbNWimFOqGsE7n7Mi8WuBSYCgnPe56bQp3E5cShOrTn11dGH8FRCmVMcCEXqQ==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@types/react': ^17.0.0 || ^18.0.0
- react: ^17.0.0 || ^18.0.0
- react-dom: ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@babel/runtime': 7.20.13
- '@emotion/is-prop-valid': 1.2.0
- '@mui/types': 7.2.3_@types+react@18.0.28
- '@mui/utils': 5.11.9_react@18.2.0
- '@popperjs/core': 2.11.6
- '@types/react': 18.0.28
- clsx: 1.2.1
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0_react@18.2.0
- react-is: 18.2.0
- dev: false
-
- /@mui/base/5.0.0-alpha.118_zula6vjvt3wdocc4mwcxqa6nzi:
- resolution: {integrity: sha512-GAEpqhnuHjRaAZLdxFNuOf2GDTp9sUawM46oHZV4VnYPFjXJDkIYFWfIQLONb0nga92OiqS5DD/scGzVKCL0Mw==}
+ /@mui/base/5.0.0-alpha.119_zula6vjvt3wdocc4mwcxqa6nzi:
+ resolution: {integrity: sha512-XA5zhlYfXi67u613eIF0xRmktkatx6ERy3h+PwrMN5IcWFbgiL1guz8VpdXON+GWb8+G7B8t5oqTFIaCqaSAeA==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@types/react': ^17.0.0 || ^18.0.0
@@ -1930,10 +1913,10 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/is-prop-valid': 1.2.0
'@mui/types': 7.2.3_@types+react@18.0.28
- '@mui/utils': 5.11.9_react@18.2.0
+ '@mui/utils': 5.11.11_react@18.2.0
'@popperjs/core': 2.11.6
'@types/react': 18.0.28
clsx: 1.2.1
@@ -1943,12 +1926,12 @@ packages:
react-is: 18.2.0
dev: false
- /@mui/core-downloads-tracker/5.11.9:
- resolution: {integrity: sha512-YGEtucQ/Nl91VZkzYaLad47Cdui51n/hW+OQm4210g4N3/nZzBxmGeKfubEalf+ShKH4aYDS86XTO6q/TpZnjQ==}
+ /@mui/core-downloads-tracker/5.11.11:
+ resolution: {integrity: sha512-0YK0K9GfW1ysw9z4ztWAjLW+bktf+nExMyn2+EQe1Ijb0kF2kz1kIOmb4+di0/PsXG70uCuw4DhEIdNd+JQkRA==}
dev: false
- /@mui/icons-material/5.11.9_ofpk46txu7v2f5mzrtv4xsczka:
- resolution: {integrity: sha512-SPANMk6K757Q1x48nCwPGdSNb8B71d+2hPMJ0V12VWerpSsbjZtvAPi5FAn13l2O5mwWkvI0Kne+0tCgnNxMNw==}
+ /@mui/icons-material/5.11.11_h5fh5ntwxtyr677wxvzgewjsma:
+ resolution: {integrity: sha512-Eell3ADmQVE8HOpt/LZ3zIma8JSvPh3XgnhwZLT0k5HRqZcd6F/QDHc7xsWtgz09t+UEFvOYJXjtrwKmLdwwpw==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@mui/material': ^5.0.0
@@ -1958,14 +1941,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
- '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli
+ '@babel/runtime': 7.21.0
+ '@mui/material': 5.11.11_xqeqsl5kvjjtyxwyi3jhw3yuli
'@types/react': 18.0.28
react: 18.2.0
dev: false
- /@mui/lab/5.0.0-alpha.119_oc7w4sqyc6xrc5vjlyub4opq2u:
- resolution: {integrity: sha512-74l+gA7fybcB2zyOLjWsPbOxt2F4ydu4t0a5rEC/Y4v6q0wDKaW1El1S/+zuE5Xw/fQmiwNrQ+Do5fDbRZDAsw==}
+ /@mui/lab/5.0.0-alpha.121_gyxidxyv3rk32gbfkthfb2r3tm:
+ resolution: {integrity: sha512-/W5H09zje9psma3RixtilTf1Tk2zUuK9j16e1W+V7oe/1pW6hNj6aZfm8y0t4qPUDQfxMBzlQm26XQx9i8F9PA==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
@@ -1982,14 +1965,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
'@emotion/styled': 11.10.6_oouaibmszuch5k64ms7uxp2aia
- '@mui/base': 5.0.0-alpha.117_zula6vjvt3wdocc4mwcxqa6nzi
- '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli
- '@mui/system': 5.11.9_d2lgyfpecxdc2bsiwyag5wf7ti
+ '@mui/base': 5.0.0-alpha.119_zula6vjvt3wdocc4mwcxqa6nzi
+ '@mui/material': 5.11.11_xqeqsl5kvjjtyxwyi3jhw3yuli
+ '@mui/system': 5.11.11_d2lgyfpecxdc2bsiwyag5wf7ti
'@mui/types': 7.2.3_@types+react@18.0.28
- '@mui/utils': 5.11.9_react@18.2.0
+ '@mui/utils': 5.11.11_react@18.2.0
'@types/react': 18.0.28
clsx: 1.2.1
prop-types: 15.8.1
@@ -1998,8 +1981,8 @@ packages:
react-is: 18.2.0
dev: false
- /@mui/material/5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli:
- resolution: {integrity: sha512-Wb3WzjzYyi/WKSl/XlF7aC8kk2NE21IoHMF7hNQMkPb0GslbWwR4OUjlBpxtG+RSZn44wMZkEDNB9Hw0TDsd8g==}
+ /@mui/material/5.11.11_xqeqsl5kvjjtyxwyi3jhw3yuli:
+ resolution: {integrity: sha512-sSe0dmKjB1IGOYt32Pcha+cXV3IIrX5L5mFAF9LDRssp/x53bluhgLLbkc8eTiJvueVvo6HAyze6EkFEYLQRXQ==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
@@ -2015,14 +1998,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
'@emotion/styled': 11.10.6_oouaibmszuch5k64ms7uxp2aia
- '@mui/base': 5.0.0-alpha.118_zula6vjvt3wdocc4mwcxqa6nzi
- '@mui/core-downloads-tracker': 5.11.9
- '@mui/system': 5.11.9_d2lgyfpecxdc2bsiwyag5wf7ti
+ '@mui/base': 5.0.0-alpha.119_zula6vjvt3wdocc4mwcxqa6nzi
+ '@mui/core-downloads-tracker': 5.11.11
+ '@mui/system': 5.11.11_d2lgyfpecxdc2bsiwyag5wf7ti
'@mui/types': 7.2.3_@types+react@18.0.28
- '@mui/utils': 5.11.9_react@18.2.0
+ '@mui/utils': 5.11.11_react@18.2.0
'@types/react': 18.0.28
'@types/react-transition-group': 4.4.5
clsx: 1.2.1
@@ -2034,8 +2017,8 @@ packages:
react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y
dev: false
- /@mui/private-theming/5.11.9_pmekkgnqduwlme35zpnqhenc34:
- resolution: {integrity: sha512-XMyVIFGomVCmCm92EvYlgq3zrC9K+J6r7IKl/rBJT2/xVYoRY6uM7jeB+Wxh7kXxnW9Dbqsr2yL3cx6wSD1sAg==}
+ /@mui/private-theming/5.11.11_pmekkgnqduwlme35zpnqhenc34:
+ resolution: {integrity: sha512-yLgTkjNC1mpye2SOUkc+zQQczUpg8NvQAETvxwXTMzNgJK1pv4htL7IvBM5vmCKG7IHAB3hX26W2u6i7bxwF3A==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@types/react': ^17.0.0 || ^18.0.0
@@ -2044,15 +2027,15 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
- '@mui/utils': 5.11.9_react@18.2.0
+ '@babel/runtime': 7.21.0
+ '@mui/utils': 5.11.11_react@18.2.0
'@types/react': 18.0.28
prop-types: 15.8.1
react: 18.2.0
dev: false
- /@mui/styled-engine/5.11.9_xqp3pgpqjlfxxa3zxu4zoc4fba:
- resolution: {integrity: sha512-bkh2CjHKOMy98HyOc8wQXEZvhOmDa/bhxMUekFX5IG0/w4f5HJ8R6+K6nakUUYNEgjOWPYzNPrvGB8EcGbhahQ==}
+ /@mui/styled-engine/5.11.11_xqp3pgpqjlfxxa3zxu4zoc4fba:
+ resolution: {integrity: sha512-wV0UgW4lN5FkDBXefN8eTYeuE9sjyQdg5h94vtwZCUamGQEzmCOtir4AakgmbWMy0x8OLjdEUESn9wnf5J9MOg==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@emotion/react': ^11.4.1
@@ -2064,7 +2047,7 @@ packages:
'@emotion/styled':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/cache': 11.10.5
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
'@emotion/styled': 11.10.6_oouaibmszuch5k64ms7uxp2aia
@@ -2073,8 +2056,8 @@ packages:
react: 18.2.0
dev: false
- /@mui/system/5.11.9_d2lgyfpecxdc2bsiwyag5wf7ti:
- resolution: {integrity: sha512-h6uarf+l3FO6l75Nf7yO+qDGrIoa1DM9nAMCUFZQsNCDKOInRzcptnm8M1w/Z3gVetfeeGoIGAYuYKbft6KZZA==}
+ /@mui/system/5.11.11_d2lgyfpecxdc2bsiwyag5wf7ti:
+ resolution: {integrity: sha512-a9gaOAJBjpzypDfhbGZQ8HzdcxdxsKkFvbp1aAWZhFHBPdehEkARNh7mj851VfEhD/GdffYt85PFKFKdUta5Eg==}
engines: {node: '>=12.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
@@ -2089,13 +2072,13 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@emotion/react': 11.10.6_pmekkgnqduwlme35zpnqhenc34
'@emotion/styled': 11.10.6_oouaibmszuch5k64ms7uxp2aia
- '@mui/private-theming': 5.11.9_pmekkgnqduwlme35zpnqhenc34
- '@mui/styled-engine': 5.11.9_xqp3pgpqjlfxxa3zxu4zoc4fba
+ '@mui/private-theming': 5.11.11_pmekkgnqduwlme35zpnqhenc34
+ '@mui/styled-engine': 5.11.11_xqp3pgpqjlfxxa3zxu4zoc4fba
'@mui/types': 7.2.3_@types+react@18.0.28
- '@mui/utils': 5.11.9_react@18.2.0
+ '@mui/utils': 5.11.11_react@18.2.0
'@types/react': 18.0.28
clsx: 1.2.1
csstype: 3.1.1
@@ -2114,13 +2097,13 @@ packages:
'@types/react': 18.0.28
dev: false
- /@mui/utils/5.11.9_react@18.2.0:
- resolution: {integrity: sha512-eOJaqzcEs4qEwolcvFAmXGpln+uvouvOS9FUX6Wkrte+4I8rZbjODOBDVNlK+V6/ziTfD4iNKC0G+KfOTApbqg==}
+ /@mui/utils/5.11.11_react@18.2.0:
+ resolution: {integrity: sha512-neMM5rrEXYQrOrlxUfns/TGgX4viS8K2zb9pbQh11/oUUYFlGI32Tn+PHePQx7n6Fy/0zq6WxdBFC9VpnJ5JrQ==}
engines: {node: '>=12.0.0'}
peerDependencies:
react: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@types/prop-types': 15.7.5
'@types/react-is': 17.0.3
prop-types: 15.8.1
@@ -2216,8 +2199,8 @@ packages:
react: 18.2.0
dev: false
- /@reduxjs/toolkit/1.9.2_k4ae6lp43ej6mezo3ztvx6pykq:
- resolution: {integrity: sha512-5ZAZ7hwAKWSii5T6NTPmgIBUqyVdlDs+6JjThz6J6dmHLDm6zCzv2OjHIFAi3Vvs1qjmXU0bm6eBojukYXjVMQ==}
+ /@reduxjs/toolkit/1.9.3_k4ae6lp43ej6mezo3ztvx6pykq:
+ resolution: {integrity: sha512-GU2TNBQVofL09VGmuSioNPQIu6Ml0YLf4EJhgj0AvBadRlCGzUWet8372LjvO4fqKZF2vH1xU0htAa7BrK9pZg==}
peerDependencies:
react: ^16.9.0 || ^17.0.0 || ^18
react-redux: ^7.2.1 || ^8.0.2
@@ -2235,8 +2218,8 @@ packages:
reselect: 4.1.7
dev: false
- /@remix-run/router/1.3.2:
- resolution: {integrity: sha512-t54ONhl/h75X94SWsHGQ4G/ZrCEguKSRQr7DrjTciJXW0YU1QhlwYeycvK5JgkzlxmvrK7wq1NB/PLtHxoiDcA==}
+ /@remix-run/router/1.3.3:
+ resolution: {integrity: sha512-YRHie1yQEj0kqqCTCJEfHqYSSNlZQ696QJG+MMiW4mxSl9I0ojz/eRhJS4fs88Z5i6D1SmoF9d3K99/QOhI8/w==}
engines: {node: '>=14'}
dev: false
@@ -2248,19 +2231,19 @@ packages:
picomatch: 2.3.1
dev: true
- /@sentry/browser/7.38.0:
- resolution: {integrity: sha512-rPJr+2jRYL29PeMYA2JgzYKTZQx6bc3T9evbAdIh0n+popSjpVyOpOMV/3l6A7KZeeix3dpp6eUZUxTJukqriQ==}
+ /@sentry/browser/7.40.0:
+ resolution: {integrity: sha512-07rZ+cTcpmYB1r84/oZtmSPJJvLCxW8yIh/5s4MdKRyZpqIDKhOz6cCS/4j+l1V+MeLcNLZBjFtNdKA2eocTpg==}
engines: {node: '>=8'}
dependencies:
- '@sentry/core': 7.38.0
- '@sentry/replay': 7.38.0
- '@sentry/types': 7.38.0
- '@sentry/utils': 7.38.0
+ '@sentry/core': 7.40.0
+ '@sentry/replay': 7.40.0
+ '@sentry/types': 7.40.0
+ '@sentry/utils': 7.40.0
tslib: 1.14.1
dev: false
- /@sentry/cli/2.13.0:
- resolution: {integrity: sha512-F0WmiMmVjn6zZyD89MF8B1zGgcrJTi5yxPmd+sqpRKOfGCtucdRdM/BL1aU27BApaseCCfI1bgwtJSB2fUQqlw==}
+ /@sentry/cli/2.14.3:
+ resolution: {integrity: sha512-/u8SKYohSDbg/Tf180qAJY+wgxIwwpZwH0uV/xn9t7/Rdb6x/YyD4AbFcPlBORnEZq4goVazWBLjJEkepO95YA==}
engines: {node: '>= 10'}
hasBin: true
requiresBuild: true
@@ -2275,63 +2258,63 @@ packages:
- supports-color
dev: true
- /@sentry/core/7.38.0:
- resolution: {integrity: sha512-+hXh/SO3Ie6WC2b+wi01xLhyVREdkRXS5QBmCiv3z2ks2HvYXp7PoKSXJvNKiwCP+pBD+enOnM1YEzM2yEy5yw==}
+ /@sentry/core/7.40.0:
+ resolution: {integrity: sha512-OPAobQG0GTY++r5LWUcOA1lS+2TY2Lmw/i5s4kL9WbY+f08dbLNEGNBObY7/V98OL4f7OG+nWaPFybgM7kqUTQ==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.38.0
- '@sentry/utils': 7.38.0
+ '@sentry/types': 7.40.0
+ '@sentry/utils': 7.40.0
tslib: 1.14.1
dev: false
- /@sentry/react/7.38.0_react@18.2.0:
- resolution: {integrity: sha512-IZpQ0aptV3UPjvDj+xorrgPgnW2xIL6Zcy7B6wAgwTC81OUITE7YaShglGD0sJ8M1ReFuH9duwTysr/uv8AytQ==}
+ /@sentry/react/7.40.0_react@18.2.0:
+ resolution: {integrity: sha512-7yYagpOCdsXnVTtLL8Y7wAf2xXgsk2ncuju3O/G4kEckkLewZWmQeoknOSGFlAgVdGNhTaXc2WGzgOiBMOkhug==}
engines: {node: '>=8'}
peerDependencies:
react: 15.x || 16.x || 17.x || 18.x
dependencies:
- '@sentry/browser': 7.38.0
- '@sentry/types': 7.38.0
- '@sentry/utils': 7.38.0
+ '@sentry/browser': 7.40.0
+ '@sentry/types': 7.40.0
+ '@sentry/utils': 7.40.0
hoist-non-react-statics: 3.3.2
react: 18.2.0
tslib: 1.14.1
dev: false
- /@sentry/replay/7.38.0:
- resolution: {integrity: sha512-Ai78/OIYedny605x8uS0n/a5uj7qnuevogGD6agLat9lGc8DFvC07m2iS+EFyGOwtQzyDlRYJvYkHL8peR3crQ==}
+ /@sentry/replay/7.40.0:
+ resolution: {integrity: sha512-Y9Kvo9jKouUdrHQhHVv5SmWZClF5o7BFI6oVpLlv4zXORPQlyoZONM/9sxiMvvH73alDSpxzCoxyhlypAOH4ww==}
engines: {node: '>=12'}
dependencies:
- '@sentry/core': 7.38.0
- '@sentry/types': 7.38.0
- '@sentry/utils': 7.38.0
+ '@sentry/core': 7.40.0
+ '@sentry/types': 7.40.0
+ '@sentry/utils': 7.40.0
dev: false
- /@sentry/tracing/7.38.0:
- resolution: {integrity: sha512-ejXJp8oOT64MVtBzqdECUUaNzKbpu25St8Klub1i4Sm7xO+ZjDQDI4TIHvWojZvtkwQ3F4jcsCclc8KuyJunyQ==}
+ /@sentry/tracing/7.40.0:
+ resolution: {integrity: sha512-y1SNwlFEC7a2ThtWbT/KbnAVecAWyIeKiO/IRgyZSdcj1z4CliADKNQmkUhnDlLy8jV1ARGuZ1DvsuPNlWyDfw==}
engines: {node: '>=8'}
dependencies:
- '@sentry/core': 7.38.0
- '@sentry/types': 7.38.0
- '@sentry/utils': 7.38.0
+ '@sentry/core': 7.40.0
+ '@sentry/types': 7.40.0
+ '@sentry/utils': 7.40.0
tslib: 1.14.1
dev: false
- /@sentry/types/7.38.0:
- resolution: {integrity: sha512-NKOALR6pNUMzUrsk2m+dkPrO8uGNvNh1LD0BCPswKNjC2qHo1h1mDGCgBmF9+EWyii8ZoACTIsxvsda+MBf97Q==}
+ /@sentry/types/7.40.0:
+ resolution: {integrity: sha512-dIbqBenbmDx1F8pvfC11C88J83ecwumUhV+YOIxcmVd1fmlPF2hXWZ01+NTkTDkCu341sJx4wPQogByFy8FwGA==}
engines: {node: '>=8'}
dev: false
- /@sentry/utils/7.38.0:
- resolution: {integrity: sha512-MgbI3YmYuyyhUtvcXkgGBqjOW+nuLLNGUdWCK+C4kObf8VbLt3dSE/7SEMT6TSHLYQmxs2BxFgx5Agn97m68kQ==}
+ /@sentry/utils/7.40.0:
+ resolution: {integrity: sha512-ZdCbTpAXPiVVfvNJVftnDhsctOui71MDUhVIdLkgg4Cuic+WHGPRmmZ+H6uZdp7vRaeB+Uvnn5+t2iSAVo/mAA==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.38.0
+ '@sentry/types': 7.40.0
tslib: 1.14.1
dev: false
- /@swc/core-darwin-arm64/1.3.35:
- resolution: {integrity: sha512-zQUFkHx4gZpu0uo2IspvPnKsz8bsdXd5bC33xwjtoAI1cpLerDyqo4v2zIahEp+FdKZjyVsLHtfJiQiA1Qka3A==}
+ /@swc/core-darwin-arm64/1.3.37:
+ resolution: {integrity: sha512-iIyVqqioUpVeT/hbBVfkrsjfCyL4idNH+LVKGmoTAWaTTSB0+UNhNuA7Wh2CqIHWh1Mv7IlumitWPcqsVDdoEw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
@@ -2339,8 +2322,8 @@ packages:
dev: true
optional: true
- /@swc/core-darwin-x64/1.3.35:
- resolution: {integrity: sha512-oOSkSGWtALovaw22lNevKD434OQTPf8X+dVPvPMrJXJpJ34dWDlFWpLntoc+arvKLNZ7LQmTuk8rR1hkrAY7cw==}
+ /@swc/core-darwin-x64/1.3.37:
+ resolution: {integrity: sha512-dao5nXPWKxtaxqak4ZkRyBoApNIelW/glantQhPhj0FjMjuIQc+v03ldJ8XDByWOG+6xuVUTheANCtEccxoQBw==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
@@ -2348,8 +2331,8 @@ packages:
dev: true
optional: true
- /@swc/core-linux-arm-gnueabihf/1.3.35:
- resolution: {integrity: sha512-Yie8k00O6O8BCATS/xeKStquV4OYSskUGRDXBQVDw1FrE23PHaSeHCgg4q6iNZjJzXCOJbaTCKnYoIDn9DMf7A==}
+ /@swc/core-linux-arm-gnueabihf/1.3.37:
+ resolution: {integrity: sha512-/mVrc8H/f062CUkqKGmBiil2VIYu4mKawHxERfeP1y38X5K/OwjG5s9MgO9TVxy+Ly6vejwj70kRhSa3hVp1Bw==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
@@ -2357,8 +2340,8 @@ packages:
dev: true
optional: true
- /@swc/core-linux-arm64-gnu/1.3.35:
- resolution: {integrity: sha512-Zlv3WHa/4x2p51HSvjUWXHfSe1Gl2prqImUZJc8NZOlj75BFzVuR0auhQ+LbwvIQ3gaA1LODX9lyS9wXL3yjxA==}
+ /@swc/core-linux-arm64-gnu/1.3.37:
+ resolution: {integrity: sha512-eRQ3KaZI0j5LidTfOIi/kUVOOMuVmw1HCdt/Z1TAUKoHMLVxY8xcJ3pEE3/+ednI60EmHpwpJRs6LelXyL6uzQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -2366,8 +2349,8 @@ packages:
dev: true
optional: true
- /@swc/core-linux-arm64-musl/1.3.35:
- resolution: {integrity: sha512-u6tCYsrSyZ8U+4jLMA/O82veBfLy2aUpn51WxQaeH7wqZGy9TGSJXoO8vWxARQ6b72vjsnKDJHP4MD8hFwcctg==}
+ /@swc/core-linux-arm64-musl/1.3.37:
+ resolution: {integrity: sha512-w2BRLODyxNQY2rfHZMZ5ir6QrrnGBPlnIslTrgKmVbn1OjZoxUCtuqhrYnCmybaAc4DOkeH02TqynEFXrm+EMw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -2375,8 +2358,8 @@ packages:
dev: true
optional: true
- /@swc/core-linux-x64-gnu/1.3.35:
- resolution: {integrity: sha512-Dtxf2IbeH7XlNhP1Qt2/MvUPkpEbn7hhGfpSRs4ot8D3Vf5QEX4S/QtC1OsFWuciiYgHAT1Ybjt4xZic9DSkmA==}
+ /@swc/core-linux-x64-gnu/1.3.37:
+ resolution: {integrity: sha512-CfoH8EsZJZ9kunjMUjBNYD5fFuO86zw+K/o4wEw72Yg6ZEiqPmeIlCKU8tpTv4sK+CbhUXrmVzMB5tqsb2jALQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -2384,8 +2367,8 @@ packages:
dev: true
optional: true
- /@swc/core-linux-x64-musl/1.3.35:
- resolution: {integrity: sha512-4XavNJ60GprjpTiESCu5daJUnmErixPAqDitJSMu4TV32LNIE8G00S9pDLXinDTW1rgcGtQdq1NLkNRmwwovtg==}
+ /@swc/core-linux-x64-musl/1.3.37:
+ resolution: {integrity: sha512-9YPrHYNdoG7PK11gV51GfL45biI2dic+YTqHUDKyykemsD7Ot1zUFX7Ty//pdvpKcKSff6SrHbfFACD5ziNirA==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -2393,8 +2376,8 @@ packages:
dev: true
optional: true
- /@swc/core-win32-arm64-msvc/1.3.35:
- resolution: {integrity: sha512-dNGfKCUSX2M4qVyaS80Lyos0FkXyHRCvrdQ2Y4Hrg3FVokiuw3yY6fLohpUfQ5ws3n2A39dh7jGDeh34+l0sGA==}
+ /@swc/core-win32-arm64-msvc/1.3.37:
+ resolution: {integrity: sha512-h17Ek8/wCDje6BrXOvCXBM80oBRmTSMMdLyt87whTl5xqYlWYYs9oQIzZndNRTlNpTgjGO8Ns2eo4kwVxIkBIA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
@@ -2402,8 +2385,8 @@ packages:
dev: true
optional: true
- /@swc/core-win32-ia32-msvc/1.3.35:
- resolution: {integrity: sha512-ChuPSrDR+JBf7S7dEKPicnG8A3bM0uWPsW2vG+V2wH4iNfNxKVemESHosmYVeEZXqMpomNMvLyeHep1rjRsc0Q==}
+ /@swc/core-win32-ia32-msvc/1.3.37:
+ resolution: {integrity: sha512-1BR175E1olGy/zdt94cgdb6ps/lBNissAOaxyBk8taFpcjy3zpdP30yAoH0GIsC6isnZ5JfArbOJNRXXO5tE0Q==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
@@ -2411,8 +2394,8 @@ packages:
dev: true
optional: true
- /@swc/core-win32-x64-msvc/1.3.35:
- resolution: {integrity: sha512-/RvphT4WfuGfIK84Ha0dovdPrKB1bW/mc+dtdmhv2E3EGkNc5FoueNwYmXWRimxnU7X0X7IkcRhyKB4G5DeAmg==}
+ /@swc/core-win32-x64-msvc/1.3.37:
+ resolution: {integrity: sha512-1siDQ7dccQ1pesJmgAL3BUBbRPtfbNInOWnZOkiie/DfFqGQ117QKnCVyjUvwFKfTQx1+3UUTDmMSlRd00SlXg==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
@@ -2420,21 +2403,21 @@ packages:
dev: true
optional: true
- /@swc/core/1.3.35:
- resolution: {integrity: sha512-KmiBin0XSVzJhzX19zTiCqmLslZ40Cl7zqskJcTDeIrRhfgKdiAsxzYUanJgMJIRjYtl9Kcg1V/Ip2o2wL8v3w==}
+ /@swc/core/1.3.37:
+ resolution: {integrity: sha512-VOFlEQ1pReOM73N9A7R8rt561GU8Rxsq833jiimWDUB2sXEN3V6n6wFTgYmZuMz2T4/R0cQA1nV48KkaT4gkFw==}
engines: {node: '>=10'}
requiresBuild: true
optionalDependencies:
- '@swc/core-darwin-arm64': 1.3.35
- '@swc/core-darwin-x64': 1.3.35
- '@swc/core-linux-arm-gnueabihf': 1.3.35
- '@swc/core-linux-arm64-gnu': 1.3.35
- '@swc/core-linux-arm64-musl': 1.3.35
- '@swc/core-linux-x64-gnu': 1.3.35
- '@swc/core-linux-x64-musl': 1.3.35
- '@swc/core-win32-arm64-msvc': 1.3.35
- '@swc/core-win32-ia32-msvc': 1.3.35
- '@swc/core-win32-x64-msvc': 1.3.35
+ '@swc/core-darwin-arm64': 1.3.37
+ '@swc/core-darwin-x64': 1.3.37
+ '@swc/core-linux-arm-gnueabihf': 1.3.37
+ '@swc/core-linux-arm64-gnu': 1.3.37
+ '@swc/core-linux-arm64-musl': 1.3.37
+ '@swc/core-linux-x64-gnu': 1.3.37
+ '@swc/core-linux-x64-musl': 1.3.37
+ '@swc/core-win32-arm64-msvc': 1.3.37
+ '@swc/core-win32-ia32-msvc': 1.3.37
+ '@swc/core-win32-x64-msvc': 1.3.37
dev: true
/@tsconfig/node10/1.0.9:
@@ -2484,8 +2467,8 @@ packages:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
dev: true
- /@types/node/18.14.0:
- resolution: {integrity: sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==}
+ /@types/node/18.14.5:
+ resolution: {integrity: sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw==}
dev: true
/@types/normalize-package-data/2.4.1:
@@ -2544,33 +2527,33 @@ packages:
resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==}
dev: false
- /@vitejs/plugin-legacy/4.0.1_terser@5.16.4+vite@4.1.1:
+ /@vitejs/plugin-legacy/4.0.1_terser@5.16.5+vite@4.1.4:
resolution: {integrity: sha512-/ZV63NagI1c9TB5E4ijGmycY//fNm/2L02nsnXXxACwYaF9W+/OyVlgIW24jYUIS+g0yQRtn+N5hzBc8RLNhGA==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
terser: ^5.4.0
vite: ^4.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/preset-env': 7.20.2_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/preset-env': 7.20.2_@babel+core@7.21.0
browserslist: 4.21.5
- core-js: 3.28.0
+ core-js: 3.29.0
magic-string: 0.27.0
regenerator-runtime: 0.13.11
- systemjs: 6.13.0
- terser: 5.16.4
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
+ systemjs: 6.14.0
+ terser: 5.16.5
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
transitivePeerDependencies:
- supports-color
dev: true
- /@vitejs/plugin-react-swc/3.2.0_vite@4.1.1:
+ /@vitejs/plugin-react-swc/3.2.0_vite@4.1.4:
resolution: {integrity: sha512-IcBoXL/mcH7JdQr/nfDlDwTdIaH8Rg7LpfQDF4nAht+juHWIuv6WhpKPCSfY4+zztAaB07qdBoFz1XCZsgo3pQ==}
peerDependencies:
vite: ^4
dependencies:
- '@swc/core': 1.3.35
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
+ '@swc/core': 1.3.37
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
dev: true
/@xobotyi/scrollbar-width/1.9.5:
@@ -2585,11 +2568,30 @@ packages:
through: 2.3.8
dev: true
+ /acorn-node/1.8.2:
+ resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
+ dependencies:
+ acorn: 7.4.1
+ acorn-walk: 7.2.0
+ xtend: 4.0.2
+ dev: true
+
+ /acorn-walk/7.2.0:
+ resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
/acorn-walk/8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'}
dev: true
+ /acorn/7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
/acorn/8.8.2:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
@@ -2658,10 +2660,22 @@ packages:
color-convert: 2.0.1
dev: true
+ /anymatch/3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
/arg/4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
dev: true
+ /arg/5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+ dev: true
+
/argparse/2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
@@ -2688,8 +2702,24 @@ packages:
engines: {node: '>= 4.0.0'}
dev: true
- /axios/1.3.3:
- resolution: {integrity: sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==}
+ /autoprefixer/10.4.13_postcss@8.4.21:
+ resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-lite: 1.0.30001460
+ fraction.js: 4.2.0
+ normalize-range: 0.1.2
+ picocolors: 1.0.0
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+ dev: true
+
+ /axios/1.3.4:
+ resolution: {integrity: sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==}
dependencies:
follow-redirects: 1.15.2
form-data: 4.0.0
@@ -2702,43 +2732,43 @@ packages:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
cosmiconfig: 7.1.0
resolve: 1.22.1
dev: false
- /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12:
+ /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.21.0:
resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.14
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
+ '@babel/compat-data': 7.21.0
+ '@babel/core': 7.21.0
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12:
+ /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.21.0:
resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
- core-js-compat: 3.28.0
+ '@babel/core': 7.21.0
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0
+ core-js-compat: 3.29.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12:
+ /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.0:
resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12
+ '@babel/core': 7.21.0
+ '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -2755,12 +2785,17 @@ packages:
resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==}
dev: false
+ /binary-extensions/2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
/bl/4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
dependencies:
buffer: 5.7.1
inherits: 2.0.4
- readable-stream: 3.6.0
+ readable-stream: 3.6.1
dev: true
/boolbase/1.0.0:
@@ -2792,8 +2827,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001456
- electron-to-chromium: 1.4.302
+ caniuse-lite: 1.0.30001460
+ electron-to-chromium: 1.4.317
node-releases: 2.0.10
update-browserslist-db: 1.0.10_browserslist@4.21.5
dev: true
@@ -2825,6 +2860,11 @@ packages:
tslib: 2.5.0
dev: true
+ /camelcase-css/2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+ dev: true
+
/camelcase-keys/6.2.2:
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
engines: {node: '>=8'}
@@ -2839,8 +2879,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /caniuse-lite/1.0.30001456:
- resolution: {integrity: sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==}
+ /caniuse-lite/1.0.30001460:
+ resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==}
dev: true
/chalk/2.4.2:
@@ -2863,6 +2903,21 @@ packages:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
+ /chokidar/3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
/classnames/2.3.2:
resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==}
dev: false
@@ -3038,7 +3093,7 @@ packages:
dependencies:
buffer-from: 1.1.2
inherits: 2.0.4
- readable-stream: 3.6.0
+ readable-stream: 3.6.1
typedarray: 0.0.6
dev: true
@@ -3243,14 +3298,14 @@ packages:
toggle-selection: 1.0.6
dev: false
- /core-js-compat/3.28.0:
- resolution: {integrity: sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==}
+ /core-js-compat/3.29.0:
+ resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==}
dependencies:
browserslist: 4.21.5
dev: true
- /core-js/3.28.0:
- resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==}
+ /core-js/3.29.0:
+ resolution: {integrity: sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==}
requiresBuild: true
dev: true
@@ -3258,7 +3313,7 @@ packages:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: true
- /cosmiconfig-typescript-loader/4.3.0_ipkhww4xc5z2tt2x53vp2mt2be:
+ /cosmiconfig-typescript-loader/4.3.0_v3kbstntxphny76zodmlbds7aa:
resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==}
engines: {node: '>=12', npm: '>=6'}
peerDependencies:
@@ -3267,9 +3322,9 @@ packages:
ts-node: '>=10'
typescript: '>=3'
dependencies:
- '@types/node': 18.14.0
- cosmiconfig: 8.0.0
- ts-node: 10.9.1_tncu2ai53lzgmizdedur7lbibe
+ '@types/node': 18.14.5
+ cosmiconfig: 8.1.0
+ ts-node: 10.9.1_2cogyjchoknpkalymtikkc6nay
typescript: 4.9.5
dev: true
@@ -3283,8 +3338,8 @@ packages:
path-type: 4.0.0
yaml: 1.10.2
- /cosmiconfig/8.0.0:
- resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==}
+ /cosmiconfig/8.1.0:
+ resolution: {integrity: sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==}
engines: {node: '>=14'}
dependencies:
import-fresh: 3.3.0
@@ -3335,6 +3390,12 @@ packages:
engines: {node: '>= 6'}
dev: true
+ /cssesc/3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
/csstype/3.1.1:
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
@@ -3432,6 +3493,10 @@ packages:
engines: {node: '>=8'}
dev: true
+ /defined/1.0.1:
+ resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==}
+ dev: true
+
/delayed-stream/1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -3452,15 +3517,33 @@ packages:
engines: {node: '>=8'}
dev: true
+ /detective/5.2.1:
+ resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+ dependencies:
+ acorn-node: 1.8.2
+ defined: 1.0.1
+ minimist: 1.2.8
+ dev: true
+
+ /didyoumean/1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+ dev: true
+
/diff/4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
dev: true
+ /dlv/1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+ dev: true
+
/dom-helpers/5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
csstype: 3.1.1
dev: false
@@ -3535,8 +3618,8 @@ packages:
jake: 10.8.5
dev: true
- /electron-to-chromium/1.4.302:
- resolution: {integrity: sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==}
+ /electron-to-chromium/1.4.317:
+ resolution: {integrity: sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA==}
dev: true
/emoji-regex/10.2.1:
@@ -3797,6 +3880,10 @@ packages:
mime-types: 2.1.35
dev: false
+ /fraction.js/4.2.0:
+ resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
+ dev: true
+
/fs-extra/10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@@ -3912,6 +3999,13 @@ packages:
is-glob: 4.0.3
dev: true
+ /glob-parent/6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
/glob/7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
@@ -4032,7 +4126,7 @@ packages:
he: 1.2.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.16.4
+ terser: 5.16.5
dev: true
/https-proxy-agent/5.0.1:
@@ -4172,6 +4266,13 @@ packages:
/is-arrayish/0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ /is-binary-path/2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
/is-core-module/2.11.0:
resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
dependencies:
@@ -4371,6 +4472,11 @@ packages:
- supports-color
dev: true
+ /lilconfig/2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+ dev: true
+
/lines-and-columns/1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -4570,8 +4676,8 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.20.13
- '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli
+ '@babel/runtime': 7.21.0
+ '@mui/material': 5.11.11_xqeqsl5kvjjtyxwyi3jhw3yuli
classnames: 2.3.2
prop-types: 15.8.1
react: 18.2.0
@@ -4815,6 +4921,16 @@ packages:
validate-npm-package-license: 3.0.4
dev: true
+ /normalize-path/3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /normalize-range/0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/normalize.css/8.0.1:
resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==}
dev: false
@@ -4837,6 +4953,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /object-hash/3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+ dev: true
+
/once/1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
@@ -4857,8 +4978,8 @@ packages:
mimic-fn: 2.1.0
dev: true
- /open/8.4.1:
- resolution: {integrity: sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==}
+ /open/8.4.2:
+ resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
dependencies:
define-lazy-prop: 2.0.0
@@ -5060,6 +5181,67 @@ packages:
dev: true
optional: true
+ /postcss-import/14.1.0_postcss@8.4.21:
+ resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.1
+ dev: true
+
+ /postcss-js/4.0.1_postcss@8.4.21:
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.21
+ dev: true
+
+ /postcss-load-config/3.1.4_postcss@8.4.21:
+ resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ lilconfig: 2.1.0
+ postcss: 8.4.21
+ yaml: 1.10.2
+ dev: true
+
+ /postcss-nested/6.0.0_postcss@8.4.21:
+ resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+ dependencies:
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+ dev: true
+
+ /postcss-selector-parser/6.0.11:
+ resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /postcss-value-parser/4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+ dev: true
+
/postcss/8.4.21:
resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
engines: {node: ^10 || ^12 || >=14}
@@ -5113,6 +5295,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /quick-lru/5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+ dev: true
+
/raf-schd/4.0.3:
resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==}
dev: false
@@ -5140,8 +5327,8 @@ packages:
react-dom: 18.2.0_react@18.2.0
dev: false
- /react-intersection-observer/9.4.2_react@18.2.0:
- resolution: {integrity: sha512-AdK+ryzZ7U9ZJYttDUZ8q2Am3nqE0exg5Ryl5Y124KeVsix/1hGZPbdu58EqA98TwnzwDNWHxg/kwNawmIiUig==}
+ /react-intersection-observer/9.4.3_react@18.2.0:
+ resolution: {integrity: sha512-WNRqMQvKpupr6MzecAQI0Pj0+JQong307knLP4g/nBex7kYfIaZsPpXaIhKHR+oV8z+goUbH9e10j6lGRnTzlQ==}
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
dependencies:
@@ -5187,7 +5374,7 @@ packages:
redux:
optional: true
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
'@types/hoist-non-react-statics': 3.3.1
'@types/react': 18.0.28
'@types/react-dom': 18.0.11
@@ -5199,26 +5386,26 @@ packages:
use-sync-external-store: 1.2.0_react@18.2.0
dev: false
- /react-router-dom/6.8.1_biqbaboplfbrettd7655fr4n2y:
- resolution: {integrity: sha512-67EXNfkQgf34P7+PSb6VlBuaacGhkKn3kpE51+P6zYSG2kiRoumXEL6e27zTa9+PGF2MNXbgIUHTVlleLbIcHQ==}
+ /react-router-dom/6.8.2_biqbaboplfbrettd7655fr4n2y:
+ resolution: {integrity: sha512-N/oAF1Shd7g4tWy+75IIufCGsHBqT74tnzHQhbiUTYILYF0Blk65cg+HPZqwC+6SqEyx033nKqU7by38v3lBZg==}
engines: {node: '>=14'}
peerDependencies:
react: '>=16.8'
react-dom: '>=16.8'
dependencies:
- '@remix-run/router': 1.3.2
+ '@remix-run/router': 1.3.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
- react-router: 6.8.1_react@18.2.0
+ react-router: 6.8.2_react@18.2.0
dev: false
- /react-router/6.8.1_react@18.2.0:
- resolution: {integrity: sha512-Jgi8BzAJQ8MkPt8ipXnR73rnD7EmZ0HFFb7jdQU24TynGW1Ooqin2KVDN9voSC+7xhqbbCd2cjGUepb6RObnyg==}
+ /react-router/6.8.2_react@18.2.0:
+ resolution: {integrity: sha512-lF7S0UmXI5Pd8bmHvMdPKI4u4S5McxmHnzJhrYi9ZQ6wE+DA8JN5BzVC5EEBuduWWDaiJ8u6YhVOCmThBli+rw==}
engines: {node: '>=14'}
peerDependencies:
react: '>=16.8'
dependencies:
- '@remix-run/router': 1.3.2
+ '@remix-run/router': 1.3.3
react: 18.2.0
dev: false
@@ -5228,7 +5415,7 @@ packages:
react: '>=16.6.0'
react-dom: '>=16.6.0'
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
@@ -5277,6 +5464,12 @@ packages:
loose-envify: 1.4.0
dev: false
+ /read-cache/1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ dependencies:
+ pify: 2.3.0
+ dev: true
+
/read-pkg-up/3.0.0:
resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
engines: {node: '>=4'}
@@ -5313,8 +5506,8 @@ packages:
type-fest: 0.6.0
dev: true
- /readable-stream/2.3.7:
- resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+ /readable-stream/2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
@@ -5325,8 +5518,8 @@ packages:
util-deprecate: 1.0.2
dev: true
- /readable-stream/3.6.0:
- resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
+ /readable-stream/3.6.1:
+ resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==}
engines: {node: '>= 6'}
dependencies:
inherits: 2.0.4
@@ -5334,6 +5527,13 @@ packages:
util-deprecate: 1.0.2
dev: true
+ /readdirp/3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
/redent/3.0.0:
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
engines: {node: '>=8'}
@@ -5353,7 +5553,7 @@ packages:
/redux/4.2.1:
resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==}
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
dev: false
/regenerate-unicode-properties/10.1.0:
@@ -5373,7 +5573,7 @@ packages:
/regenerator-transform/0.15.1:
resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==}
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
dev: true
/regexpu-core/5.3.1:
@@ -5492,14 +5692,14 @@ packages:
rollup:
optional: true
dependencies:
- open: 8.4.1
+ open: 8.4.2
picomatch: 2.3.1
source-map: 0.7.4
- yargs: 17.7.0
+ yargs: 17.7.1
dev: true
- /rollup/3.17.1:
- resolution: {integrity: sha512-8RnSms6rNqHmZK+wiqgnPCqen+rRnUHXkciGDirh7B00g1rX1vpKbPDhuxCvAG2bburoI+W4Q9/PlUB/zYkiYA==}
+ /rollup/3.18.0:
+ resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -5509,7 +5709,7 @@ packages:
/rtl-css-js/1.16.1:
resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
dependencies:
- '@babel/runtime': 7.20.13
+ '@babel/runtime': 7.21.0
dev: false
/run-async/2.4.1:
@@ -5670,7 +5870,7 @@ packages:
/split2/3.2.2:
resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
dependencies:
- readable-stream: 3.6.0
+ readable-stream: 3.6.1
dev: true
/stack-generator/2.0.10:
@@ -5822,8 +6022,42 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- /systemjs/6.13.0:
- resolution: {integrity: sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==}
+ /systemjs/6.14.0:
+ resolution: {integrity: sha512-OMf+kFCYG9fLQerUyw/QVIPfZ+lo579R+usrDzSrZAkvMl6B0tHtc4rUP7DFaPCr7Sy6p5DYD4V9OCF1Sp6+vA==}
+ dev: true
+
+ /tailwindcss/3.2.7_postcss@8.4.21:
+ resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==}
+ engines: {node: '>=12.13.0'}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.0.9
+ dependencies:
+ arg: 5.0.2
+ chokidar: 3.5.3
+ color-name: 1.1.4
+ detective: 5.2.1
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.2.12
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ lilconfig: 2.1.0
+ micromatch: 4.0.5
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.0.0
+ postcss: 8.4.21
+ postcss-import: 14.1.0_postcss@8.4.21
+ postcss-js: 4.0.1_postcss@8.4.21
+ postcss-load-config: 3.1.4_postcss@8.4.21
+ postcss-nested: 6.0.0_postcss@8.4.21
+ postcss-selector-parser: 6.0.11
+ postcss-value-parser: 4.2.0
+ quick-lru: 5.1.1
+ resolve: 1.22.1
+ transitivePeerDependencies:
+ - ts-node
dev: true
/temp/0.9.4:
@@ -5834,8 +6068,8 @@ packages:
rimraf: 2.6.3
dev: true
- /terser/5.16.4:
- resolution: {integrity: sha512-5yEGuZ3DZradbogeYQ1NaGz7rXVBDWujWlx1PT8efXO6Txn+eWbfKqB2bTDVmFXmePFkoLU6XI8UektMIEA0ug==}
+ /terser/5.16.5:
+ resolution: {integrity: sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -5862,14 +6096,14 @@ packages:
/through2/2.0.5:
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
dependencies:
- readable-stream: 2.3.7
+ readable-stream: 2.3.8
xtend: 4.0.2
dev: true
/through2/4.0.2:
resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
dependencies:
- readable-stream: 3.6.0
+ readable-stream: 3.6.1
dev: true
/tmp/0.0.33:
@@ -5911,7 +6145,7 @@ packages:
resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
dev: false
- /ts-node/10.9.1_tncu2ai53lzgmizdedur7lbibe:
+ /ts-node/10.9.1_2cogyjchoknpkalymtikkc6nay:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@@ -5930,7 +6164,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.3
- '@types/node': 18.14.0
+ '@types/node': 18.14.5
acorn: 8.8.2
acorn-walk: 8.2.0
arg: 4.1.3
@@ -6061,7 +6295,7 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
- /vite-plugin-compression/0.5.1_vite@4.1.1:
+ /vite-plugin-compression/0.5.1_vite@4.1.4:
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies:
vite: '>=2.0.0'
@@ -6069,12 +6303,12 @@ packages:
chalk: 4.1.2
debug: 4.3.4
fs-extra: 10.1.0
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
transitivePeerDependencies:
- supports-color
dev: true
- /vite-plugin-html/3.2.0_vite@4.1.1:
+ /vite-plugin-html/3.2.0_vite@4.1.4:
resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==}
peerDependencies:
vite: '>=2.0.0'
@@ -6091,24 +6325,24 @@ packages:
html-minifier-terser: 6.1.0
node-html-parser: 5.4.2
pathe: 0.2.0
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
dev: true
- /vite-plugin-sentry/1.1.7_vite@4.1.1:
+ /vite-plugin-sentry/1.1.7_vite@4.1.4:
resolution: {integrity: sha512-V5WlWKbgul3udItDmvZHEzUw0TE2cehKLfcdR/G98PQ2LvweWDafVk4nmJpj1I7q70eeXWNoqmVq5Esde8c7XA==}
engines: {node: '>= 12'}
peerDependencies:
vite: ^2.6.0 || ^3.0.0 || ^4.0.0
dependencies:
- '@sentry/cli': 2.13.0
- vite: 4.1.1_ve7l6t5koctut52smtaue47xhi
+ '@sentry/cli': 2.14.3
+ vite: 4.1.4_pm537uckvxmam7hzwfdgs6yzna
transitivePeerDependencies:
- encoding
- supports-color
dev: true
- /vite/4.1.1_ve7l6t5koctut52smtaue47xhi:
- resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==}
+ /vite/4.1.4_pm537uckvxmam7hzwfdgs6yzna:
+ resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -6132,13 +6366,13 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.14.0
+ '@types/node': 18.14.5
esbuild: 0.16.17
less: 4.1.3
postcss: 8.4.21
resolve: 1.22.1
- rollup: 3.17.1
- terser: 5.16.4
+ rollup: 3.18.0
+ terser: 5.16.5
optionalDependencies:
fsevents: 2.3.2
dev: true
@@ -6242,8 +6476,8 @@ packages:
yargs-parser: 20.2.9
dev: true
- /yargs/17.7.0:
- resolution: {integrity: sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==}
+ /yargs/17.7.1:
+ resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
diff --git a/postcss.config.cjs b/postcss.config.cjs
new file mode 100644
index 0000000..33ad091
--- /dev/null
+++ b/postcss.config.cjs
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/readme.md b/readme.md
index 9d11e29..1ff2f42 100644
--- a/readme.md
+++ b/readme.md
@@ -1,7 +1,17 @@
-# eoefans-web 端
+# eoefans-web
+
[](https://vlink.dev/EOEFANS/eoefans-web/actions/workflows/dev-cloudflare-pages.yml)
[](https://vlink.dev/EOEFANS/eoefans-web/actions/workflows/azure-staticwebapp.yml)
+```
+ ________ ______
+_____ ______ _____ ___ __/______ ________ ________ ___ _______ ___ /_
+_ _ \_ __ \_ _ \__ /_ _ __ `/__ __ \__ ___/ __ | /| / /_ _ \__ __ \
+/ __// /_/ // __/_ __/ / /_/ / _ / / /_(__ ) __ |/ |/ / / __/_ /_/ /
+\___/ \____/ \___/ /_/ \__,_/ /_/ /_/ /____/ ____/|__/ \___/ /_.___/
+
+```
+
## 目录结构(暂定)
1. component:存放组件
@@ -37,13 +47,13 @@ $ pnpm run commit
- [x] 根据 tag 栏进行重新查询
- [x] 图片加载序列
- [x] header 栏根据滚动进行显示隐藏
+- [x] 搜索功能
## TODO
### 目前未定论
- [ ] UI 设计
-- [ ] 搜索功能
### 后续有空可以添加的
diff --git a/src/components/image/index.tsx b/src/components/image/index.tsx
index b8e753c..844ee10 100644
--- a/src/components/image/index.tsx
+++ b/src/components/image/index.tsx
@@ -78,8 +78,10 @@ export function ImageBasic({
observer,
callback,
children,
+ title,
...resProps
}: ImageProps & {
+ title: string;
children?: ReactElement;
[k: string]: any;
}) {
@@ -88,7 +90,7 @@ export function ImageBasic({
{({ inView, ref, entry }) => (
-
+
<>{observer && inView && once_callback(inView)}>
{children}
diff --git a/src/components/masonry/index.tsx b/src/components/masonry/index.tsx
index 6583a97..5cd4871 100644
--- a/src/components/masonry/index.tsx
+++ b/src/components/masonry/index.tsx
@@ -2,7 +2,7 @@ import { FC, useState, useEffect, useCallback } from "react";
import { Masonry as Masonic_masonry } from "masonic";
import Image from "@components/image";
import { SingleRun, concurrencyRequest } from "@utils/index";
-import { fetchPhotos, fetchVideos } from "@utils/fetch";
+import { fetchPhotos } from "@utils/fetch";
import { nanoid } from "nanoid";
import { getImageSize } from "../image/tool";
export default function Masonry() {
diff --git a/src/components/proview/themePreview.tsx b/src/components/proview/themePreview.tsx
index 9f4886d..94ae2b6 100644
--- a/src/components/proview/themePreview.tsx
+++ b/src/components/proview/themePreview.tsx
@@ -1,6 +1,11 @@
//@ts-nocheck
import React from "react";
-import { ThemeProvider, createTheme } from "@mui/material/styles";
+import ProximaSoft from "@assets/font/ProximaSoft-Regular.woff2";
+import {
+ ThemeProvider,
+ createTheme,
+ StyledEngineProvider,
+} from "@mui/material/styles";
import { ReactChildrenType } from "./type";
declare module "@mui/material/styles" {
interface Palette {
@@ -36,6 +41,25 @@ declare module "@mui/material/Button" {
}
}
const theme = createTheme({
+ typography: {
+ fontFamily: "Proxima Soft, Segoe UI Tahoma, Geneva, Verdana, sans-serif",
+ },
+ components: {
+ MuiCssBaseline: {
+ styleOverrides: `
+ @font-face {
+ font-family: 'Proxima Soft';
+ font-style: normal;
+ font-display: swap;
+ font-weight: 400;
+ src: local('Proxima Soft Regular'), local('Proxima-Soft-Regular'),
+ url('@assets/font/ProximaSoft-Regular.woff2') format('woff2'),
+ url('@assets/font/ProximaSoft-Regular.woff') format('woff'),
+ url('@assets/font/ProximaSoft-Regular.ttf') format('truetype');
+ }
+ `,
+ },
+ },
palette: {
luzao: { main: "#3dff9e", contrastText: "#fff" },
luzaoRed: { main: "#A0191D", contrastText: "#fff" },
@@ -48,7 +72,11 @@ const theme = createTheme({
});
const MUIThemePreview = ({ children }: ReactChildrenType) => {
- return {children};
+ return (
+
+ {children}
+
+ );
};
export default MUIThemePreview;
diff --git a/src/components/proview/type.tsx b/src/components/proview/type.tsx
index 080be35..47577e6 100644
--- a/src/components/proview/type.tsx
+++ b/src/components/proview/type.tsx
@@ -1,5 +1,5 @@
import { ReactElement } from "react";
export type ReactChildrenType = {
- children: ReactElement;
+ children: ReactElement | ReactElement[];
};
diff --git a/src/index.less b/src/index.less
index d9516ef..6c8d898 100644
--- a/src/index.less
+++ b/src/index.less
@@ -1,3 +1,25 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+
+@layer utilities {
+
+ /* Hide scrollbar for Chrome, Safari and Opera */
+ .no-scrollbar::-webkit-scrollbar {
+ display: none;
+ }
+
+ /* Hide scrollbar for IE, Edge and Firefox */
+ .no-scrollbar {
+ -ms-overflow-style: none;
+ /* IE and Edge */
+ scrollbar-width: none;
+ /* Firefox */
+ }
+}
+
+
* {
box-sizing: border-box;
padding: 0;
@@ -20,7 +42,13 @@
font-style: normal;
}
+
+
body,
html {
- font-family: 'Proxima Soft';
+ font-family: 'Proxima Soft', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+}
+
+body {
+ overflow-y: scroll;
}
\ No newline at end of file
diff --git a/src/main.tsx b/src/main.tsx
index ffa31f5..26a7ab3 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -13,12 +13,14 @@ import { Provider } from "react-redux";
import store from "@store/index";
//ployfill
import "intersection-observer";
-import "./normalize.css";
import "loading-attribute-polyfill";
+//css
+import "./normalize.css";
import "./index.less";
// sentry
import * as Sentry from "@sentry/react";
import { BrowserTracing } from "@sentry/tracing";
+import SearchPage, { loader as SearchLoader } from "@routers/search";
if (!isdev && isrelease) {
Sentry.init({
dsn: "https://086f27258cce4d28aacc8c2719a683fb@sentry.vtb.link/3",
@@ -59,6 +61,12 @@ const router = createBrowserRouter([
path: "photo",
element: ,
},
+ {
+ //视频搜索展示页面
+ path: "search",
+ element: ,
+ loader: SearchLoader,
+ },
],
},
],
diff --git a/src/routers/index.tsx b/src/routers/index.tsx
index 5d66e97..fcd2c18 100644
--- a/src/routers/index.tsx
+++ b/src/routers/index.tsx
@@ -1,3 +1,7 @@
+/**
+ * 此页面作废
+ */
+
export default function Index() {
return 这里是首页
;
}
diff --git a/src/routers/layout/header.tsx b/src/routers/layout/header.tsx
index c153dfb..c7c1dc3 100644
--- a/src/routers/layout/header.tsx
+++ b/src/routers/layout/header.tsx
@@ -1,12 +1,13 @@
import styles from "./layout.module.less";
import LOGO from "./logo";
-import RouterNav from "./routernav";
import { useAppDispatch } from "@store/hooks";
import { useLocation } from "react-router-dom";
-import { useEffect, useMemo } from "react";
+import { memo, useEffect } from "react";
import { changeLoadingCauseByUrl } from "@store/loading";
import { routerNameToLoading } from "@utils/router";
import { styled } from "@mui/material";
+import Search from "./search";
+import PCRightMore from "./rightMore/index";
export default function Header() {
const dispatch = useAppDispatch(),
location = useLocation();
@@ -17,21 +18,33 @@ export default function Header() {
})
);
}, [location.pathname]);
- const JSXRes = useMemo(
- () => (
-
-
-
-
- ),
- []
- );
- return <>{JSXRes}>;
+ return ;
}
-const Header_header = styled("header")(({ theme }) => ({
+
+const ReactiveHeader = memo(() => {
+ return (
+
+ {/* 手机端 */}
+
+
+
+ {/* pc端和平板端header部 */}
+
+
+
+
+
+
+
+
+
+
+ );
+});
+
+const Header_content = styled("div")(({ theme }) => ({
flexDirection: "row",
- [theme.breakpoints.down("sm")]: {
- flexDirection: "row-reverse",
- justifyContent: "flex-end",
- },
+ justifyContent: "space-between",
}));
diff --git a/src/routers/layout/index.tsx b/src/routers/layout/index.tsx
index 78c1011..ffdf07c 100644
--- a/src/routers/layout/index.tsx
+++ b/src/routers/layout/index.tsx
@@ -1,10 +1,12 @@
import { Flipped, Flipper } from "react-flip-toolkit";
-import { Outlet } from "react-router-dom";
+import { Outlet, useMatch } from "react-router-dom";
import Header from "./header";
-import Header_Nav from "./nav";
import { useAppSelector } from "@store/hooks";
import { selectNavMoreShowed } from "@store/device/index";
+import ArrowOutwardIcon from "@mui/icons-material/ArrowOutward";
+import { Link } from "@mui/material";
import styles from "./layout.module.less";
+import Header_Nav from "./nav";
export default function Layout() {
const showed = useAppSelector(selectNavMoreShowed);
return (
@@ -21,12 +23,11 @@ export default function Layout() {
},
}}
>
+
+
+
-
-
-
+
@@ -36,3 +37,33 @@ export default function Layout() {
>
);
}
+
+const useMatchUrls = (urls: string[]) => urls.map((item) => useMatch(item));
+
+const FixedNav = () => {
+ const urls = useMatchUrls(["/", "/video", "/photo"]),
+ shouldShowNav = urls.some((item) => item !== null);
+ return (
+ <>
+ {shouldShowNav && (
+
+
+
+ )}
+ >
+ );
+};
+
+export const ImportTantInfo = () => (
+ <>
+
+ 征集小队长生贺视频
+
+
+ >
+);
diff --git a/src/routers/layout/layout.module.less b/src/routers/layout/layout.module.less
index 06ea5b4..0a22a97 100644
--- a/src/routers/layout/layout.module.less
+++ b/src/routers/layout/layout.module.less
@@ -1,6 +1,5 @@
.container {
position: relative;
-
}
.nav {
@@ -13,7 +12,6 @@
.header {
max-width: 1440px;
margin: 0 auto;
- padding-top: 10px;
display: flex;
align-items: center;
background-color: #fff;
diff --git a/src/routers/layout/logo/index.tsx b/src/routers/layout/logo/index.tsx
index 61129b2..710cbc7 100644
--- a/src/routers/layout/logo/index.tsx
+++ b/src/routers/layout/logo/index.tsx
@@ -1,12 +1,16 @@
-import { Button, Badge } from "@mui/material";
+import { Button, Badge, Menu, MenuItem } from "@mui/material";
+import HelpOutlineIcon from "@mui/icons-material/HelpOutline";
import { useState, useMemo, FC } from "react";
-import { H1, Explain, Yituo } from "./modal";
+import { Explain, Yituo } from "./modal";
import styles from "./logo.module.less";
import { Storage } from "../tools";
-
+import { useScreenSize } from "@components/proview/screenSize";
+import { Link, useMatch } from "react-router-dom";
+import { RouterList } from "../routernav/index";
+import React from "react";
const QAStorage = new Storage("QAUpdate");
//暂时先这样
-const _qa_update_time = `2023-2-2`;
+const _qa_update_time = `2023-3-1`;
const useCheckQANews = () => {
const local_qa_value = useMemo(() => {
return QAStorage.getLocalStorage("");
@@ -20,35 +24,123 @@ const useCheckQANews = () => {
};
export default function LOGO() {
+ const { lg } = useScreenSize();
+ return (
+
+
+
+ {lg && }
+ {!lg && }
+
+
+ );
+}
+
+const LGRouterListAndQA = () => {
+ const [anchorEl, setAnchorEl] = React.useState(null),
+ handleClick = (event: React.MouseEvent) =>
+ setAnchorEl(event.currentTarget),
+ handleClose = () => setAnchorEl(null);
+ const open = Boolean(anchorEl);
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+export const AboutUSButton = () => {
const [open, set] = useState(false);
const [shouldShowNews, handlerReadedNews] = useCheckQANews();
- const handlerClick = () => {
+ const handlerClick = (event: React.MouseEvent) => {
+ event.stopPropagation();
set((open) => !open);
handlerReadedNews();
};
return (
-
-
- EOEfans-web端
-
-
-
-
+ <>
+
}
+ title='关于本站内容解疑'
+ >
+ 关于本站
+
+
+
void} />
+ >
+ );
+};
+
+const useRouterMatchWithDefaultRouter = (urls: string[]) => {
+ const lists = urls.map((item) => useMatch(item));
+ return lists.some((item) => item !== null);
+};
+const RouterListAndQA = () => {
+ const isVideoPage = useRouterMatchWithDefaultRouter(["/", "/video"]),
+ isPhotoPage = useRouterMatchWithDefaultRouter(["/photo"]),
+ isActive = (label: string) => {
+ if (
+ (label === "视频" && isVideoPage) ||
+ (label === "图片" && isPhotoPage)
+ ) {
+ return true;
+ }
+ return false;
+ };
+ return (
+
+ {RouterList.slice(0, 2).map((item) => (
+
+
+
+ ))}
);
-}
+};
const Show_news: FC<{ visible: boolean }> = ({ visible }) => (
void }> = (
@@ -25,142 +26,122 @@ export const Explain: FC<{ open: boolean; handlerClick: () => void }> = (
>
);
-export const H1 = styled("h1")(({ theme }) => ({
- fontSize: "24px",
- [theme.breakpoints.down("sm")]: {
- fontSize: "15px",
+const QALists: { question: ReactElement; answer: ReactElement }[] = [
+ {
+ question: <>露早tag为什么不是应援色?>,
+ answer: (
+ <>
+ 露早GOGO的应援色为
+
+ #3dff9e
+
+ ,tag字面显示不明显,所以更换为黑露早形态的
+ #A0191D
+ >
+ ),
+ },
+ {
+ question: <>如何进行用户反馈?>,
+ answer: (
+ <>
+ 请前往
+
+ eoefans反馈
+
+ >
+ ),
+ },
+ {
+ question: <>图片页图片太小了?>,
+ answer: (
+ <>
+ 图片页可点击图片进入放大镜模式,支持手势返回和空白处返回;可使用双指放大对图片大小进行调整。
+ >
+ ),
},
-}));
+ {
+ question: <>搜索没有想要的结果?>,
+ answer: (
+ <>
+ 目前搜索仅支持全字匹配,请确保输入信息完整。另搜索结果已将某些视频过滤。
+ >
+ ),
+ },
+];
export const QA = () => (
- -
-
- Q:
- 为什么界面这么丑?
-
-
- A:
- web端没有UI捏🙇♂️🙇♂️🙇♂️果咩。
-
-
- -
-
- Q:
- 如何查找我想看的视频类型?
-
-
- A:
-
- 😩目前只能通过点击下方tag栏进行查询,其中各分区、原创和转载、
- 最新发布和最多播放互斥外其他tag皆满足异或查询。
-
- 🤔tag排序不是固定的,可以使用鼠标或者触摸按住tag半秒后进行移动。
-
- 🤗可以自定义任何你想要的tag栏顺序,下一次访问也有效。
-
-
-
- -
-
- Q:
- 露早tag为什么不是应援色?
-
-
- A:
-
- 露早GOGO的应援色为
-
- #3dff9e
-
- ,tag字面显示不明显,所以更换为黑露早形态的
- #A0191D
-
-
-
- -
-
- Q:
- 如何进行用户反馈?
-
-
- A:
-
- 请前往
-
- eoefans反馈
-
-
-
-
- -
-
- Q:
- 图片页图片太小了?
-
-
- A:
-
- 图片页可点击图片进入放大镜模式,支持手势返回和空白处返回;可使用双指放大对图片大小进行调整。
-
-
-
+ {QALists.map((item, index) => (
+ -
+
+ Q:
+ {item.question}
+
+
+ A:
+ {item.answer}
+
+
+ ))}
);
export const Yituo: FC<{
height: number | string;
width: number | string;
+ children?: ReactElement;
}> = ({ height, width }) => (
-
+
+
);
diff --git a/src/routers/layout/nav/VideoTools.ts b/src/routers/layout/nav/VideoTools.ts
index 4b8c25e..10ee1c6 100644
--- a/src/routers/layout/nav/VideoTools.ts
+++ b/src/routers/layout/nav/VideoTools.ts
@@ -112,6 +112,18 @@ export type VideoNavQueryItemType = {
};
export type NavListItemType = VideoNavQueryItemType | NavRouterItemType;
const nav_tag_list_no_id: Omit[] = [
+ {
+ type: "query",
+ query: "最新发布",
+ queryType: "order",
+ queryString: "pubdate",
+ },
+ {
+ type: "query",
+ query: "最多播放",
+ queryType: "order",
+ queryString: "view",
+ },
{
type: "query",
query: "露早",
@@ -184,18 +196,6 @@ const nav_tag_list_no_id: Omit[] = [
queryType: "copyright",
queryString: "2",
},
- {
- type: "query",
- query: "最新发布",
- queryType: "order",
- queryString: "pubdate",
- },
- {
- type: "query",
- query: "最多播放",
- queryType: "order",
- queryString: "view",
- },
],
video_query_nav_list = nav_tag_list_no_id.map((item) => ({
...item,
diff --git a/src/routers/layout/nav/index.tsx b/src/routers/layout/nav/index.tsx
index 1375210..d9f6f5f 100644
--- a/src/routers/layout/nav/index.tsx
+++ b/src/routers/layout/nav/index.tsx
@@ -1,4 +1,4 @@
-import { Stack } from "@mui/material";
+import { Chip, Stack } from "@mui/material";
import Button from "@mui/lab/LoadingButton";
import { useInView } from "react-intersection-observer";
import SegmentIcon from "@mui/icons-material/Segment";
@@ -45,7 +45,7 @@ import {
selectVideoActiveTags,
} from "@store/tags/index";
-function useSelectList() {
+export function useTagSelectList() {
const { pathname } = useLocation(),
flag = pathname === "/photo",
storageSelect = flag ? PhotoNavStorage : VideoNavStorage;
@@ -55,8 +55,13 @@ function useSelectList() {
return { navLists, setLists, storageSelect };
}
-export default function Header_Nav() {
- const { navLists, setLists, storageSelect } = useSelectList();
+type HeaderNavType = {
+ shouldShow?: boolean;
+};
+
+export default function Header_Nav(props: HeaderNavType) {
+ const { shouldShow = false } = props;
+ const { navLists, setLists, storageSelect } = useTagSelectList();
//tag区是否展开
const showed = useAppSelector(selectNavMoreShowed);
//拖拽事件绑定
@@ -114,9 +119,10 @@ export default function Header_Nav() {
@@ -174,7 +180,7 @@ const NavItem: FC = memo(
transition,
};
return (
-
+
@@ -213,35 +219,51 @@ const NavTagChipItem: FC = memo(
dispatch(addTagFunc(props));
}
};
- //@ts-ignore
- const color = nameToColor[props.query] || "info";
+
+ const styleColor = handleSetSpecialProps(
+ props.query,
+ "rgb(55 65 81)",
+ "rgb(96 165 250)",
+ clicked
+ );
return (
-
+ />
);
}
);
+/**
+ *
+${
+ loading ? "cursor-wait pointer-events-none" : "cursor-pointer"
+ }
+ */
+
+const handleSetSpecialProps = (
+ query: string,
+ defaultColor: string,
+ activeColor: string,
+ clicked: boolean
+) => {
+ //@ts-ignore
+ const color = nameToColor[query] || defaultColor,
+ renderColor = (activecolor: string) => (clicked ? activecolor : color),
+ styleColor = color === defaultColor ? renderColor(activeColor) : color;
+ return styleColor;
+};
+
const nameToColor = {
- 露早: "luzaoRed",
- 柚恩: "youen",
- 莞儿: "waner",
- 米诺: "minuo",
- 虞莫: "yumo",
+ 露早: "#A0191D",
+ 柚恩: "#EB6346",
+ 莞儿: "#1eafe4",
+ 米诺: "#f068B0",
+ 虞莫: "#b77fdd",
};
diff --git a/src/routers/layout/nav/nav.module.less b/src/routers/layout/nav/nav.module.less
index 9e58db2..91e2065 100644
--- a/src/routers/layout/nav/nav.module.less
+++ b/src/routers/layout/nav/nav.module.less
@@ -18,9 +18,6 @@
@itemMarginHalfWidth: 8px;
@itemMarginHalfHeight: 4px;
- &>* {
- margin: @itemMarginHalfHeight @itemMarginHalfWidth;
- }
&[data-showed=true] {
&>span:nth-last-child(2) {
diff --git a/src/routers/layout/rightMore/index.tsx b/src/routers/layout/rightMore/index.tsx
new file mode 100644
index 0000000..9d8991c
--- /dev/null
+++ b/src/routers/layout/rightMore/index.tsx
@@ -0,0 +1,109 @@
+import React, { FC, ReactElement } from "react";
+import MoreVertIcon from "@mui/icons-material/MoreVert";
+import LaunchIcon from "@mui/icons-material/Launch";
+import { Button, Link, Popover } from "@mui/material";
+import { TabProps } from "../routernav";
+import { AboutUSButton } from "../logo";
+import { usePopoverConfig } from "@utils/hooks/popover";
+export default function PCRightMore() {
+ const { open, anchorEl, handleClick, handleClose } =
+ usePopoverConfig();
+ return (
+
+
+
+
}
+ onClick={handleClick}
+ className='text-gray-800 hover:bg-gray-200'
+ title='点击查看更多'
+ >
+ 更多
+
+
+
+
快捷跳转}
+ >
+
+ {GroupLists.map((item, key) => (
+
+ {item.label}
+
+
+ ))}
+
+
+
+
+ 敬请期待
+
+
+
+
+
+
+ );
+}
+const GroupLists: TabProps[] = [
+ {
+ label: "露早",
+ to: "1669777785",
+ },
+ {
+ label: "虞莫",
+ to: "1811071010",
+ },
+ {
+ label: "莞儿",
+ to: "1875044092",
+ },
+ {
+ label: "柚恩",
+ to: "1795147802",
+ },
+ {
+ label: "米诺",
+ to: "1778026586",
+ },
+ {
+ label: "官号",
+ to: "2018113152",
+ },
+ {
+ label: "录播组",
+ to: "3461563583302074",
+ },
+];
+type PopoverItemProps = {
+ title: string | ReactElement;
+ children: ReactElement;
+};
+const PopoverItem: FC = (props) => (
+
+
+ {props.title}
+
+ {props.children}
+
+);
diff --git a/src/routers/layout/rightSide/index.tsx b/src/routers/layout/rightSide/index.tsx
deleted file mode 100644
index aeec436..0000000
--- a/src/routers/layout/rightSide/index.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Avatar } from "@mui/material";
-
-export default function RightSide() {
- return App;
-}
diff --git a/src/routers/layout/routernav/index.tsx b/src/routers/layout/routernav/index.tsx
index 88172e4..f4e672c 100644
--- a/src/routers/layout/routernav/index.tsx
+++ b/src/routers/layout/routernav/index.tsx
@@ -1,61 +1,146 @@
-import { Tab, Tabs } from "@mui/material";
-import { useState, useEffect, useCallback, memo } from "react";
-import { Link, useLocation } from "react-router-dom";
-import { useScreenSize } from "@components/proview/screenSize";
-import MenuRouter from "./menu";
-
-export const RouterList: TabProps[] = [
+import { Drawer } from "@mui/material";
+import PhotoIcon from "@mui/icons-material/Photo";
+import VideoLibraryIcon from "@mui/icons-material/VideoLibrary";
+import { useState, FC, ReactElement } from "react";
+import { Link, useMatch } from "react-router-dom";
+import CloseIcon from "@mui/icons-material/Close";
+import Header_Nav from "../nav";
+import { ImportTantInfo } from "..";
+export const RouterList: (TabProps & { startICon: ReactElement })[] = [
{
label: "视频",
to: "/video",
+ startICon: ,
},
{
label: "图片",
to: "/photo",
+ startICon: ,
},
];
export default function RouterNav() {
- const { pathname } = useLocation(),
- handler = () => (pathname === "/photo" ? 1 : 0);
- const [value, set] = useState(handler),
- changehandler = useCallback(() => set(handler), [handler]);
- useEffect(() => {
- changehandler();
- }, [pathname]);
- const { sm } = useScreenSize();
+ const [show, set] = useState(false),
+ handlerChangeShow = () => set((item) => !item);
return (
<>
- {sm ? (
-
- ) : (
-
- {RouterList.map((item, index) => (
-
- ))}
-
- )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 敬请期待
+
+
+
>
);
}
+
+type DraerNavContentType = {
+ title: string;
+ children: React.ReactNode;
+};
+type DrawerHrefItemType = {
+ onClose: () => void;
+ data: {
+ label: string;
+ to: string;
+ }[];
+} & Pick;
+
+const DrawerNavItem: FC> = ({ title }) => {
+ const shouldShow = ["/", "/video", "/photo"].includes(
+ window.location.pathname
+ );
+ return (
+ <>
+ {shouldShow && (
+
+
+
+ )}
+ >
+ );
+};
+
+const DrawerHrefLink: FC> = (
+ props
+) => {
+ const { to, onClose, label } = props;
+ const isMatch = useMatch(props.to);
+ return (
+
+ {label}
+
+ );
+};
+
+const DrawerHrefItem: FC = ({ title, data, onClose }) => (
+
+
+ {data.map((item, key) => (
+
+ ))}
+
+
+);
+
+const DrawerNavContent: FC = (props) => (
+
+
+ {props.title}
+
+ {props.children}
+
+);
+
export type TabProps = {
label: string;
to: string;
};
-export function TabLink(props: TabProps) {
- const { pathname } = useLocation();
- return (
-
- );
-}
+
+const ConfigSVG = () => (
+
+
+
+);
diff --git a/src/routers/layout/routernav/menu.tsx b/src/routers/layout/routernav/menu.tsx
deleted file mode 100644
index 3bb2b2d..0000000
--- a/src/routers/layout/routernav/menu.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Menu, Button, MenuItem } from "@mui/material";
-import { Omit } from "@utils/index";
-import PopupState, { bindTrigger, bindMenu } from "material-ui-popup-state";
-import { RouterList, TabProps, TabLink } from ".";
-export default function MenuRouter() {
- return (
-
- {(popupState) => (
- <>
-
-
- >
- )}
-
- );
-}
-function RouterItem(props: TabProps & { onClick: () => void }) {
- return (
-
- );
-}
diff --git a/src/routers/layout/search/index.tsx b/src/routers/layout/search/index.tsx
index 9cd32ff..f94e7cb 100644
--- a/src/routers/layout/search/index.tsx
+++ b/src/routers/layout/search/index.tsx
@@ -1,36 +1,16 @@
-import SearchSharpIcon from "@mui/icons-material/SearchSharp";
-import { Form } from "react-router-dom";
-import styles from "./search.module.less";
-import { useSearchFocus } from "@components/proview/searchFocus";
-import { Flipped } from "react-flip-toolkit";
+import { Form, useLocation, useNavigate } from "react-router-dom";
+import PCSearch from "./pc";
+import PhoneSearch from "./phone";
+// todo 增加高级搜索以及手机端的搜索
export default function Search() {
- const { focused, bind } = useSearchFocus();
return (
<>
-
-
-
+
+
>
);
}
diff --git a/src/routers/layout/search/pc/context.tsx b/src/routers/layout/search/pc/context.tsx
new file mode 100644
index 0000000..e467a6b
--- /dev/null
+++ b/src/routers/layout/search/pc/context.tsx
@@ -0,0 +1,8 @@
+import { createContext, useContext } from "react";
+type InputWrapperContextType = {
+ anchorEl: HTMLElement | null;
+};
+export const InputWrapperContext = createContext({
+ anchorEl: null,
+});
+export const useGetInputWrapper = () => useContext(InputWrapperContext);
diff --git a/src/routers/layout/search/pc/data.ts b/src/routers/layout/search/pc/data.ts
new file mode 100644
index 0000000..1a9839c
--- /dev/null
+++ b/src/routers/layout/search/pc/data.ts
@@ -0,0 +1,28 @@
+import { phoneMoreNameAndFaceUrls } from "../phone/url";
+
+export type renderSuggestItemLists = { label: string; value: string }[];
+
+//tag列
+export const pcSuggestTagLists: renderSuggestItemLists = [
+ "莞儿睡不醒",
+ "露早GOGO",
+ "米诺高分少女",
+ "虞莫MOMO",
+ "柚恩不加糖",
+ "EOE组合",
+ "早莞在一起",
+ "莞柚引力",
+ "一莞米",
+ "虞舟唱莞",
+ "早柚",
+ "西米露",
+ "早有虞谋",
+ "米哈柚",
+ "虞香柚丝",
+ "米虞说的道理",
+ "虞米之乡",
+].map((item) => ({ label: item, value: item }));
+
+//up列
+export const pcSuggestNameLists: renderSuggestItemLists =
+ phoneMoreNameAndFaceUrls;
diff --git a/src/routers/layout/search/pc/hooks.tsx b/src/routers/layout/search/pc/hooks.tsx
new file mode 100644
index 0000000..e11d88d
--- /dev/null
+++ b/src/routers/layout/search/pc/hooks.tsx
@@ -0,0 +1,28 @@
+import {
+ changeSearchMode,
+ SelectModeType,
+ selectSearchMode,
+} from "@store/device";
+import { useAppDispatch, useAppSelector } from "@store/hooks";
+import { useRef, useImperativeHandle } from "react";
+
+export const useSearchMode = () => {
+ const searchMode = useAppSelector(selectSearchMode);
+ const dispatch = useAppDispatch(),
+ handlerChangeSearchMode = (name: SelectModeType) =>
+ dispatch(changeSearchMode(name));
+ return { searchMode, handlerChangeSearchMode };
+};
+export const useBackRef = (ref: React.Ref) => {
+ const inputRef = useRef(null),
+ handerfocus = () => inputRef.current?.focus();
+ //@ts-ignore
+ useImperativeHandle(ref, () => {
+ return {
+ getValue() {
+ return inputRef.current?.value;
+ },
+ };
+ });
+ return { inputRef, handerfocus };
+};
diff --git a/src/routers/layout/search/pc/index.tsx b/src/routers/layout/search/pc/index.tsx
new file mode 100644
index 0000000..09f4637
--- /dev/null
+++ b/src/routers/layout/search/pc/index.tsx
@@ -0,0 +1,30 @@
+import { useSearchFocus } from "@components/proview/searchFocus";
+import { useEffect } from "react";
+import SelectModeCom from "./selectModeNav";
+import Search from "./search";
+
+export default function PCSearch() {
+ const { focused, bind } = useSearchFocus(),
+ { onBlur } = bind;
+ useEffect(() => {
+ if (focused) {
+ window.addEventListener("scroll", onBlur, { once: true });
+ }
+ }, [focused]);
+ return (
+
+ );
+}
diff --git a/src/routers/layout/search/pc/modal.tsx b/src/routers/layout/search/pc/modal.tsx
new file mode 100644
index 0000000..b3ad8b7
--- /dev/null
+++ b/src/routers/layout/search/pc/modal.tsx
@@ -0,0 +1 @@
+export default function PCSearchAdvanceLikeModal() {}
diff --git a/src/routers/layout/search/pc/pc.module.less b/src/routers/layout/search/pc/pc.module.less
new file mode 100644
index 0000000..d828f32
--- /dev/null
+++ b/src/routers/layout/search/pc/pc.module.less
@@ -0,0 +1,81 @@
+.advanceSearch {
+ display: flex;
+ flex-grow: 1;
+
+ &.focus {
+ .itemPadding {
+ padding: 12px 32px;
+ }
+
+ span+input {
+ width: 100%;
+ }
+
+ .SearchItem:hover {
+ background-color: rgb(229, 231, 235);
+ }
+ }
+
+ &.blur {
+ transition: all 300ms ease;
+
+ .item {
+ align-items: center;
+ justify-content: center;
+
+ span {
+ transition: all 300ms ease;
+ font-size: 12px;
+ font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 75px;
+ white-space: nowrap;
+ }
+
+ span+input {
+ height: 0%;
+ width: 0%;
+ }
+ }
+ }
+
+ .itemPadding {
+ transition: all 300ms ease;
+ }
+
+ .item {
+ display: flex;
+ flex-direction: column;
+
+ span {
+ padding-bottom: 2px;
+ font-size: 14px;
+ font-weight: 600;
+ }
+
+ span+input {
+ transition: all 300ms ease;
+ background-color: transparent;
+
+ &:focus-within {
+ outline: none;
+ }
+ }
+ }
+
+ .SearchItem {
+ flex-grow: 1;
+ display: flex;
+ border-radius: 40px;
+ // transition: all 300ms ease;
+ }
+}
+
+.commonRounded {
+ border-radius: 40px;
+}
+
+.suggestMaxHeight {
+ max-height: calc(100vh - 200px);
+}
\ No newline at end of file
diff --git a/src/routers/layout/search/pc/search.tsx b/src/routers/layout/search/pc/search.tsx
new file mode 100644
index 0000000..5abb2a1
--- /dev/null
+++ b/src/routers/layout/search/pc/search.tsx
@@ -0,0 +1,315 @@
+import { useSearchFocus } from "@components/proview/searchFocus";
+import HighlightOffIcon from "@mui/icons-material/HighlightOff";
+import { useURLParams } from "@utils/hooks/url";
+import SearchIcon from "@mui/icons-material/Search";
+import styles from "../search.module.less";
+import pcStyles from "./pc.module.less";
+import { useBackRef, useSearchMode } from "./hooks";
+import { useNavigate } from "react-router-dom";
+import React, { FC, forwardRef, ReactElement, useRef } from "react";
+export default function Search() {
+ const contentRef = useRef(null);
+ const { focused, bind } = useSearchFocus();
+ const { onFocus } = bind;
+ const { searchMode } = useSearchMode();
+ return (
+ <>
+ {/* 包裹层 */}
+
+ {/* 搜索栏内容层 */}
+
+
+ {searchMode === "搜索tag" && }
+ {searchMode === "搜索更多" && }
+
+
+
+ >
+ );
+}
+
+const CloseSvg: FC<{ onClick: () => void; style?: React.CSSProperties }> = (
+ props
+) => (
+
+);
+
+//通用按钮
+const SearchButton: FC<{ onSubmit?: () => void }> = ({ onSubmit }) => {
+ const { focused } = useSearchFocus();
+ return (
+ <>
+
+ >
+ );
+};
+
+import { usePopoverConfig } from "@utils/hooks/popover";
+import {
+ addPCNameHistory,
+ addPCTagHistory,
+ PCNameSuggest,
+ PCTagSuggest,
+} from "./searchSuggest";
+import { InputWrapperContext } from "./context";
+
+//普通搜索
+const NormalSearch = () => {
+ const inputRef = useRef(null);
+ const { bind } = useSearchFocus(),
+ { onBlur } = bind;
+ const [tag] = useURLParams(["tag"]);
+ const { open, handleClick } = usePopoverConfig("target");
+ const navigate = useNavigate(),
+ handlerNavigate = (value: string) => {
+ navigate(`/search?tag=${value}`);
+ onBlur();
+ },
+ handlerSubmit = () => {
+ const value = inputRef.current!.value;
+ handlerNavigate(value);
+ },
+ handerHistorySubmit = (value: string) => {
+ handlerNavigate(value);
+ addPCTagHistory(value);
+ };
+ return (
+ <>
+ {
+ if (event.key === "Enter") {
+ handlerSubmit();
+ }
+ }}
+ />
+
+
+ >
+ );
+};
+
+//高级搜索
+const AdvanceSearch = forwardRef(function Advance(props, ref) {
+ const [tag, name] = useURLParams(["tag", "name"]);
+ const { focused, bind } = useSearchFocus(),
+ { onBlur } = bind;
+ const nameRef = useRef(null),
+ tagRef = useRef(null);
+ const navigate = useNavigate(),
+ handlerNavigate = (tag: string, name: string) => {
+ navigate(`/search?tag=${tag}&name=${name}`);
+ onBlur();
+ }, //@ts-ignore
+ getTagValue = () => tagRef.current!.getValue(),
+ //@ts-ignore
+ getNameValue = () => nameRef.current!.getValue(),
+ handlerSubmit = () => {
+ navigate(`/search?tag=${getTagValue()}&name=${getNameValue()}`);
+ onBlur();
+ },
+ handlerTagHistorySubmit = (tag: string) => {
+ handlerNavigate(tag, getNameValue());
+ addPCTagHistory(tag);
+ },
+ handlerNameHistorySubmit = (name: string) => {
+ handlerNavigate(getTagValue(), name);
+ addPCNameHistory(name);
+ };
+ const tagSuggestOption = usePopoverConfig("target"),
+ nameSuggestOption = usePopoverConfig("target"),
+ tagItemCallback = (event: React.MouseEvent) => {
+ nameSuggestOption.handleClose();
+ tagSuggestOption.handleClick(event);
+ },
+ nameItemCallback = (event: React.MouseEvent) => {
+ tagSuggestOption.handleClose();
+ nameSuggestOption.handleClick(event);
+ };
+ return (
+
+
+
+
+ {/* 等待接口更新 */}
+ {/*
*/}
+
+
+
+
+ );
+});
+
+type AdvanceItemProps = {
+ title: string;
+ inputDefaultValue: string;
+ onSubmit: () => void;
+ children?: ReactElement | ReactElement[];
+ clickCallback?: (event: React.MouseEvent) => void;
+};
+
+const AdvanceSearchItem = forwardRef(
+ (props, ref) => {
+ const { inputRef, handerfocus } = useBackRef(ref);
+ const { focused } = useSearchFocus();
+ return (
+ <>
+ {
+ handerfocus();
+ if (props.clickCallback) {
+ props.clickCallback(event);
+ }
+ }}
+ >
+ {props.title}
+ {
+ if (event.key === "Enter") {
+ props.onSubmit();
+ }
+ }}
+ />
+ {focused && (
+ {
+ inputRef.current!.value = "";
+ }}
+ style={{
+ top: "50%",
+ right: "16px",
+ transform: "translateY(-12px)",
+ }}
+ />
+ )}
+
+ {props.children}
+
+
+ >
+ );
+ }
+);
+const AdvanceSearchLastItem = forwardRef<
+ HTMLInputElement,
+ AdvanceItemProps & { onSubmit: () => void }
+>((props, ref) => {
+ const { inputRef, handerfocus } = useBackRef(ref);
+ const { focused } = useSearchFocus();
+ return (
+ <>
+ {
+ handerfocus();
+ if (props.clickCallback) {
+ props.clickCallback(event);
+ }
+ }}
+ >
+
+ {props.title}
+ {
+ if (event.key === "Enter") {
+ props.onSubmit();
+ }
+ }}
+ />
+ {focused && (
+ {
+ inputRef.current!.value = "";
+ }}
+ style={{
+ top: "50%",
+ right: "16px",
+ transform: "translateY(-12px)",
+ }}
+ />
+ )}
+ {props.children}
+
+
+
+ >
+ );
+});
diff --git a/src/routers/layout/search/pc/searchSuggest.tsx b/src/routers/layout/search/pc/searchSuggest.tsx
new file mode 100644
index 0000000..ceb36b2
--- /dev/null
+++ b/src/routers/layout/search/pc/searchSuggest.tsx
@@ -0,0 +1,212 @@
+import { useSearchFocus } from "@components/proview/searchFocus";
+import HistoryToggleOffIcon from "@mui/icons-material/HistoryToggleOff";
+import TagIcon from "@mui/icons-material/Tag";
+import AccessibilityNewIcon from "@mui/icons-material/AccessibilityNew";
+import { Popper } from "@mui/material";
+import { Storage } from "@routers/layout/tools";
+import { useURLParams } from "@utils/hooks/url";
+import { FC, ReactElement, useEffect, useMemo, useState } from "react";
+import { useGetInputWrapper } from "./context";
+import styles from "./pc.module.less";
+import {
+ renderSuggestItemLists,
+ pcSuggestTagLists,
+ pcSuggestNameLists,
+} from "./data";
+type PCTagSuggestProps = {
+ ClickCallback: (value: string) => void;
+} & SuggestPopperProps;
+
+const PCTagStorage = new Storage("pcTagHistorys");
+export const addPCTagHistory = (value: string) => {
+ const oldHistory = PCTagStorage.getLocalStorage([]);
+ PCTagStorage.setLocalstorage([value, ...oldHistory.slice(0, 4)]);
+};
+const usePCTagHistory = () => {
+ const local_history: renderSuggestItemLists = PCTagStorage.getLocalStorage(
+ []
+ ).map((item) => ({ label: item, value: item }));
+ return local_history;
+};
+
+const useSuggestOption = (open: boolean) => {
+ const [fixedOpen, setOpen] = useState(false);
+ const { focused } = useSearchFocus();
+ const handlerChangeOpen = useMemo(() => {
+ let flag = false;
+ return () => {
+ if (!flag) {
+ flag = true;
+ return setTimeout(() => {
+ setOpen(true);
+ }, 300);
+ } else {
+ setOpen(true);
+ }
+ };
+ }, [focused]);
+ useEffect(() => {
+ //@ts-ignore
+ let setId;
+ if (focused && open) {
+ setId = handlerChangeOpen();
+ } else {
+ clearTimeout(setId);
+ setOpen(false);
+ }
+ return () => {
+ //@ts-ignore
+ clearTimeout(setId);
+ };
+ }, [focused, open]);
+ return [fixedOpen];
+};
+
+export const PCTagSuggest: FC = ({
+ open,
+ ClickCallback,
+}) => {
+ const [tag] = useURLParams(["tag"]);
+ const history_tag = usePCTagHistory();
+ const [fixedOpen] = useSuggestOption(open);
+ return (
+
+
+
+ 历史记录
+ >
+ }
+ dataList={history_tag}
+ feedbackMsg='暂无数据'
+ clickCallBack={ClickCallback}
+ activeValue={tag}
+ />
+
+
+ tag
+ >
+ }
+ dataList={pcSuggestTagLists}
+ clickCallBack={ClickCallback}
+ activeValue={tag}
+ />
+
+ );
+};
+
+const PCNameStorage = new Storage("pcNameHistorys");
+export const addPCNameHistory = (value: string) => {
+ const oldHistory = PCNameStorage.getLocalStorage([]);
+ PCNameStorage.setLocalstorage([value, ...oldHistory.slice(0, 4)]);
+};
+const usePCNameHistory = () => {
+ const local_history: renderSuggestItemLists = PCNameStorage.getLocalStorage(
+ []
+ ).map((item) => ({ label: item, value: item }));
+ return local_history;
+};
+export const PCNameSuggest: FC = ({
+ open,
+ ClickCallback,
+}) => {
+ const [name] = useURLParams(["name"]);
+ const history_name = usePCNameHistory();
+ const [fixedOpen] = useSuggestOption(open);
+ return (
+
+
+
+ 历史记录
+ >
+ }
+ dataList={history_name}
+ feedbackMsg='暂无数据'
+ clickCallBack={ClickCallback}
+ activeValue={name}
+ />
+
+
+ 作者
+ >
+ }
+ dataList={pcSuggestNameLists}
+ clickCallBack={ClickCallback}
+ activeValue={name}
+ />
+
+ );
+};
+
+type SuggestPopperProps = {
+ open: boolean;
+ children?: ReactElement | ReactElement[];
+};
+const SuggestPopper: FC = (props) => {
+ const { anchorEl } = useGetInputWrapper();
+ return (
+
+
+ {props.children}
+
+
+ );
+};
+
+type SuggestItemProps = {
+ title: string | ReactElement;
+ dataList: renderSuggestItemLists;
+ feedbackMsg?: string;
+ activeValue: string;
+ clickCallBack: (value: string) => void;
+};
+const SuggestItem: FC = ({
+ title,
+ dataList,
+ clickCallBack,
+ activeValue,
+ feedbackMsg,
+}) => {
+ const isActive = (value: string) => value === activeValue;
+ return (
+
+
+
+ {dataList.map(({ label, value }, key) => (
+
+ ))}
+ {!dataList.length && (
+
+ {feedbackMsg}
+
+ )}
+
+
+ );
+};
diff --git a/src/routers/layout/search/pc/selectModeNav.tsx b/src/routers/layout/search/pc/selectModeNav.tsx
new file mode 100644
index 0000000..db00d77
--- /dev/null
+++ b/src/routers/layout/search/pc/selectModeNav.tsx
@@ -0,0 +1,41 @@
+import { selectModeList } from "@store/device";
+import { FC } from "react";
+import styles from "../search.module.less";
+import { useSearchMode } from "./hooks";
+/**
+ * 搜索模式选择
+ */
+export default function SelectModeCom() {
+ const { searchMode, handlerChangeSearchMode } = useSearchMode();
+ return (
+
+ {selectModeList.map((item, key) => (
+
+ ))}
+
+ );
+}
+
+type SelectButtonType = {
+ selected: boolean;
+ label: string;
+ onChange: () => void;
+};
+
+const SelectButton: FC = ({ selected, label, onChange }) => {
+ return (
+
+
+
+ );
+};
diff --git a/src/routers/layout/search/phone/index.tsx b/src/routers/layout/search/phone/index.tsx
new file mode 100644
index 0000000..250a2dd
--- /dev/null
+++ b/src/routers/layout/search/phone/index.tsx
@@ -0,0 +1,36 @@
+import RouterNav from "@routers/layout/routernav";
+import SearchIcon from "@mui/icons-material/Search";
+import PhotoModalSearch from "./modal";
+import { useState } from "react";
+export default function PhoneSearch() {
+ // 这个只作为因子引出真实的界面,不应该承担任何搜索功能
+ const [open, setModal] = useState(false);
+ const SearchProps = {
+ open,
+ onClose: () => {
+ setTimeout(() => {
+ setModal(false);
+ }, 150);
+ },
+ };
+ return (
+
+ {/* 点击这里向下拉取搜索栏 */}
+
+
+
+
+ 想看什么
+ 点击这里·马上看到
+
+
+
+
+ );
+}
diff --git a/src/routers/layout/search/phone/item.tsx b/src/routers/layout/search/phone/item.tsx
new file mode 100644
index 0000000..e39cbd1
--- /dev/null
+++ b/src/routers/layout/search/phone/item.tsx
@@ -0,0 +1,132 @@
+import SearchIcon from "@mui/icons-material/Search";
+import { FC, forwardRef, useState } from "react";
+import { NameAndFaceUrlsType } from "./url";
+type PhoneSearchItemProps = {
+ open: boolean;
+ onOpen?: () => void;
+ openTitle: string;
+ inputDefaultValue: string;
+ onCompleteSearch: (() => void) | false;
+ nextCallback: () => void;
+ closeTitle: string;
+ UrlLists: NameAndFaceUrlsType;
+};
+
+export const PhoneSearchItem = forwardRef<
+ HTMLInputElement,
+ PhoneSearchItemProps
+>((props, ref) => {
+ const {
+ closeTitle,
+ inputDefaultValue,
+ onCompleteSearch,
+ nextCallback,
+ UrlLists,
+ open,
+ onOpen,
+ openTitle,
+ } = props;
+ const [inputvalue, setValue] = useState(inputDefaultValue);
+ const handerEnter = (callback?: Function) => {
+ callback && callback();
+ setTimeout(() => {
+ Promise.resolve().then(() => {
+ if (onCompleteSearch) {
+ onCompleteSearch();
+ } else {
+ nextCallback();
+ }
+ });
+ }, 0);
+ };
+ const handlerImgClick = (label: string) =>
+ handerEnter(() => setValue(() => label));
+ return (
+
+
+
+
+
+
{openTitle}
+
+
+ setValue(() => event.target.value)}
+ onKeyDown={(event) => {
+ if (event.key === "Enter") {
+ handerEnter();
+ }
+ }}
+ />
+
+
+
+
+ );
+});
+
+const ImgGally: FC<
+ Pick & {
+ onClick: (value: string) => void;
+ activeValue: string;
+ }
+> = ({ UrlLists, onClick, activeValue }) => {
+ const isActive = (label: string) => label === activeValue;
+ return (
+
+ {UrlLists.map((item, index) => (
+
+

+
+ {item.label}
+
+
+ ))}
+
+ );
+};
+
+const CloseItem: FC<{ title: string; value: string; onClick?: () => void }> = ({
+ title,
+ value,
+ onClick,
+}) => {
+ return (
+
+ );
+};
diff --git a/src/routers/layout/search/phone/modal.tsx b/src/routers/layout/search/phone/modal.tsx
new file mode 100644
index 0000000..839c5b1
--- /dev/null
+++ b/src/routers/layout/search/phone/modal.tsx
@@ -0,0 +1,150 @@
+import { Modal, Tab, Tabs } from "@mui/material";
+import { FC, useRef, useState } from "react";
+import { useSearchMode } from "../pc/hooks";
+import { PhoneSearchItem } from "./item";
+import { idolNameAndFaceUrls, phoneMoreNameAndFaceUrls } from "./url";
+import { useURLParams } from "@utils/hooks/url";
+import { useNavigate } from "react-router-dom";
+type PhotoModalSearchProps = {
+ open: boolean;
+ onClose: () => void;
+};
+export default function PhotoModalSearch(props: PhotoModalSearchProps) {
+ const { open, onClose } = props;
+ const { searchMode } = useSearchMode();
+ return (
+ <>
+
+ {/* 注意modal会把滚动条隐藏 */}
+
+ {/* header */}
+
+
+
+
+ {/* content */}
+
+ {searchMode === "搜索tag" && }
+ {searchMode === "搜索更多" && }
+
+
+
+ >
+ );
+}
+type ModeComProps = {
+ onClose: () => void;
+};
+const TagContentCom: FC = ({ onClose }) => {
+ const inputRef = useRef(null);
+ const [tag] = useURLParams(["tag"]);
+ const navigate = useNavigate();
+ const handlerSubmit = () => {
+ const value = inputRef.current!.value;
+ navigate(`/search?tag=${value}`);
+ onClose();
+ };
+ const { searchMode } = useSearchMode();
+ return (
+
+
{}}
+ closeTitle='标签'
+ UrlLists={idolNameAndFaceUrls}
+ />
+
+ );
+};
+const MoreContentCom: FC = ({ onClose }) => {
+ const [tag, name] = useURLParams(["tag", "name"]);
+ const { searchMode } = useSearchMode();
+ const [activeLine, changeActiveLine] = useState("搜索tag"),
+ handerChangeActiveLine = (name: typeof searchMode) =>
+ changeActiveLine(name);
+ const tagInputRef = useRef(null),
+ nameInputRef = useRef(null);
+ const navigate = useNavigate();
+ const handlerSubmit = () => {
+ const tag = tagInputRef.current!.value,
+ name = nameInputRef.current!.value;
+ console.log({ tag, name });
+ navigate(`/search?tag=${tag}&name=${name}`);
+ onClose();
+ };
+ return (
+
+
+
{}}
+ closeTitle='用户'
+ UrlLists={phoneMoreNameAndFaceUrls}
+ />
+
+ );
+};
+// 选择栏
+const SearchHeader = () => {
+ const { searchMode, handlerChangeSearchMode } = useSearchMode();
+ return (
+
+
+
+
+ );
+};
+const CloseSVG: FC<{ onClose: () => void }> = ({ onClose }) => (
+
+);
diff --git a/src/routers/layout/search/phone/url.ts b/src/routers/layout/search/phone/url.ts
new file mode 100644
index 0000000..a8fdf56
--- /dev/null
+++ b/src/routers/layout/search/phone/url.ts
@@ -0,0 +1,27 @@
+export const yumoFaceURL = `https://i2.hdslb.com/bfs/face/139f2dbd62f9f9343c1ace6c1b49c38a630bf0c7.jpg@240w_240h_1c_1s.webp`;
+export const youenFaceURL = `https://i2.hdslb.com/bfs/face/388bb9976a9957aa9370e153e43b60111ef7ae1f.jpg@240w_240h_1c_1s.webp`;
+export const luzaoFaceURL = `https://i0.hdslb.com/bfs/face/5d699ce6f66ce4770092ba19fcf7caec82e8f736.jpg@240w_240h_1c_1s.webp`;
+export const wanerFaceURL = `https://i1.hdslb.com/bfs/face/4d36b041654ef91a0b2f7f34ca9ade33cdbf837e.jpg@240w_240h_1c_1s.webp`;
+export const minuoFaceURl = `https://i2.hdslb.com/bfs/face/3da6145e81745cabd1f79b9c61772f884e783b7e.jpg@240w_240h_1c_1s.webp`;
+
+export type NameAndFaceUrlsType = {
+ label: string;
+ url: string;
+ value: string;
+}[];
+
+export const idolNameAndFaceUrls: NameAndFaceUrlsType = [
+ { label: "露早", url: luzaoFaceURL, value: "露早GOGO" },
+ { label: "虞莫", url: yumoFaceURL, value: "虞莫MOMO" },
+ { label: "莞儿", url: wanerFaceURL, value: "莞儿睡不醒" },
+ { label: "柚恩", url: youenFaceURL, value: "柚恩不加糖" },
+ { label: "米诺", url: minuoFaceURl, value: "米诺高分少女" },
+];
+
+export const lubozuFaceUrl = `https://i0.hdslb.com/bfs/face/4fb5beac7b6eff7981897176430df514b7201556.jpg@240w_240h_1c_1s.webp`;
+const eoeGroupFaceUrl = `https://i0.hdslb.com/bfs/face/f0ac506bbfa4e4ce09729d424d28d2383e721ade.jpg@240w_240h_1c_1s.webp`;
+export const phoneMoreNameAndFaceUrls: NameAndFaceUrlsType = [
+ { label: "录播组", url: lubozuFaceUrl, value: "哎呀米诺录播组" },
+ ...idolNameAndFaceUrls,
+ { label: "EOE组合", url: eoeGroupFaceUrl, value: "EOE组合" },
+];
diff --git a/src/routers/layout/search/search.module.less b/src/routers/layout/search/search.module.less
index 98dd97f..a92fb52 100644
--- a/src/routers/layout/search/search.module.less
+++ b/src/routers/layout/search/search.module.less
@@ -1,80 +1,58 @@
.search-box {
- position: relative;
- z-index: 10;
- margin: 0 8px;
- min-width: 180px;
- max-width: 500px;
- width: 100%;
+ box-shadow: 0 1px 2px rgb(0 0 0 / 8%), 0 4px 12px rgb(0 0 0 / 5%);
+ border-radius: 40px;
+ border: 1px solid #DDD;
+ display: flex;
+ background-color: white;
+ max-width: 100%;
+ box-sizing: border-box;
+ justify-content: space-between;
+ align-items: stretch;
+ margin: auto;
+ width: 288px;
+
+ &.focus {
+ width: 850px;
+ height: 65px;
+ }
+
- .search-form {
- border-radius: 8px;
+ .search-button {
+ border-radius: 40px;
+ cursor: pointer;
+ color: white;
+ position: relative;
+ // margin: auto;
+ margin-top: auto;
+ margin-bottom: auto;
display: flex;
+ justify-content: center;
align-items: center;
- height: 40px;
- opacity: .9;
- transition: background-color .3s;
- background-color: #f1f2f3;
- border: 1px solid #E3E5E7;
-
- &:hover {
- background-color: #fff;
- }
-
- .search-content {
- flex: 1;
- display: flex;
- align-items: center;
- position: relative;
- padding: 0 8px;
- margin-right: 8px;
- height: 32px;
- border: 2px solid transparent;
- border-radius: 6px;
-
- .search-input {
- flex: 1;
- overflow: hidden;
- padding-right: 8px;
- border: none;
- background-color: transparent;
- box-shadow: none;
- font-size: 14px;
- line-height: 20px;
- color: #61666D;
- &:focus-visible {
- outline: none;
- }
- }
- }
-
- .search-btn {
- display: flex;
- margin: 0;
- padding: 0;
- align-items: center;
- justify-content: center;
- width: 32px;
- height: 32px;
- border: none;
- border-radius: 6px;
- cursor: pointer;
- transition: background-color .3s;
-
- &:hover {
- background-color: #E3E5E7;
- }
- }
+ }
+}
+
+.pc-search {
+ transition-duration: 300ms;
+ display: flex;
+ flex-direction: column;
+
+ &::after {
+ content: '';
+ width: 100%;
+ max-width: 64px;
+ margin: 0 auto;
+ height: 2px;
+ background-color: currentColor;
+ transform: scaleX(0);
+ transition: transform 200ms ease;
}
- .form-active {
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- background-color: #fff;
-
+ &:hover::after {
+ transform: scaleX(1);
+ }
- .search-content {
- background-color: #f1f2f3;
- }
+ &.active::after {
+ transform: scaleX(1);
}
}
\ No newline at end of file
diff --git a/src/routers/photo/item/index.tsx b/src/routers/photo/item/index.tsx
index b507919..fd93a24 100644
--- a/src/routers/photo/item/index.tsx
+++ b/src/routers/photo/item/index.tsx
@@ -22,6 +22,7 @@ export default function PhotoCard(props: CardType) {
url={`${images[0].src}@${250}w.webp`}
{...Omit(images[0], "src")}
{...resPorps}
+ title={"图片栏"}
className={style["show-img"]}
onClick={handlerChangeOpen}
/>
diff --git a/src/routers/search/hooks.tsx b/src/routers/search/hooks.tsx
new file mode 100644
index 0000000..99297d1
--- /dev/null
+++ b/src/routers/search/hooks.tsx
@@ -0,0 +1,11 @@
+import { useScreenSize } from "@components/proview/screenSize";
+import { VideoListType } from "@routers/video/masonry";
+import { useAppSelector } from "@store/hooks";
+import { selectSearchingState } from "@store/loading";
+export const useSearchLoading = () => useAppSelector(selectSearchingState);
+
+export const useSearchShowState = (data: VideoListType) => {
+ const loading = useSearchLoading(),
+ isEmpty = data.length < 1;
+ return { loading, isEmpty };
+};
diff --git a/src/routers/search/index.tsx b/src/routers/search/index.tsx
new file mode 100644
index 0000000..7fd2c8c
--- /dev/null
+++ b/src/routers/search/index.tsx
@@ -0,0 +1,86 @@
+import { NormalVideoRes } from "@routers/video/masonry";
+import {
+ fetchVideohandler,
+ PickVideoRouterImageCardType,
+} from "@routers/video/tools";
+import { useChangeLoading } from "@store/loading";
+import { nanoid } from "nanoid";
+import { useEffect, useState } from "react";
+import { useLoaderData } from "react-router-dom";
+import { useSearchShowState } from "./hooks";
+import { VideoListType } from "../video/masonry";
+import SelectNav from "./select";
+import { videoOrderType } from "@utils/fetch/fetchtype";
+import { OrderArr } from "./tool";
+type LoaderType = {
+ request: {
+ url: string;
+ };
+};
+export type PromiseType = Promise;
+export type UnPromisify = T extends PromiseType ? U : never;
+type LoaderReturnType = UnPromisify>;
+export async function loader({ request }: LoaderType) {
+ let url = new URL(request.url),
+ tag = url.searchParams.get("tag"),
+ name = url.searchParams.get("name");
+ let order = url.searchParams.get("order") as videoOrderType;
+ if (!OrderArr.includes(order)) {
+ order = "score";
+ }
+ !tag && (tag = "");
+ !name && (name = "");
+ return [tag, name, order] as const;
+}
+
+export default function SearchPage() {
+ const loaderData = useLoaderData() as LoaderReturnType,
+ [tagParam, nameParam, order] = loaderData;
+ {
+ }
+ const [lists, setLists] = useState([]);
+ const { handerChangeLoading } = useChangeLoading("searchIsloading");
+ useEffect(() => {
+ setLists([]);
+ handerChangeLoading(true);
+ function handlerSetList(
+ datas: UnPromisify>["data"],
+ nextPage: number
+ ) {
+ setLists((lists) => [
+ ...lists,
+ ...datas.map((item, index) => {
+ const itemRes = PickVideoRouterImageCardType(item);
+ if (index === datas.length - 5) {
+ return {
+ ...itemRes,
+ id: nanoid(4),
+ observer: true,
+ callback: (inView: boolean) => fetchHandler(nextPage),
+ };
+ }
+ return { ...itemRes, id: nanoid(4) };
+ }),
+ ]);
+ handerChangeLoading(false);
+ }
+ const fetchHandler = async (page: number = 1) => {
+ const { data, canceledByAxios } = await fetchVideohandler(page, {
+ order,
+ q: `tag.${tagParam}~name.${nameParam}`,
+ });
+ if (!canceledByAxios) {
+ handlerSetList(data, page + 1);
+ }
+ };
+ fetchHandler(1);
+ }, loaderData);
+ const { loading, isEmpty } = useSearchShowState(lists),
+ propsObj = { loading, isEmpty, data: lists };
+ return (
+
+
+
+
+ );
+}
diff --git a/src/routers/search/select.tsx b/src/routers/search/select.tsx
new file mode 100644
index 0000000..e4383a0
--- /dev/null
+++ b/src/routers/search/select.tsx
@@ -0,0 +1,72 @@
+import { videoOrderType } from "@utils/fetch/fetchtype";
+import { nanoid } from "nanoid";
+import { FC } from "react";
+import { useNavigate } from "react-router-dom";
+import { OrderArr, returnReplacedParmasURl } from "./tool";
+import { useURLParams } from "@utils/hooks/url";
+
+export default function SelectNav() {
+ const navigate = useNavigate(),
+ handlerCilck = (queryString: videoOrderType) => {
+ const replacedUrl = returnReplacedParmasURl([
+ { parmas: "order", replace: queryString },
+ ]),
+ newQuerySrting = new URL(replacedUrl).search;
+ navigate(`/search${newQuerySrting}`);
+ };
+ return (
+
+ {Search_Nav.map((item) => (
+
+ ))}
+
+ );
+}
+
+const SearchNavItem: FC<{
+ onClick: () => void;
+ label: string;
+ queryString: videoOrderType;
+}> = ({ label, onClick, queryString }) => {
+ const [order] = useURLParams(["order"]),
+ isCurOrder = OrderArr.includes(order as videoOrderType)
+ ? order === queryString
+ : queryString === "score";
+ return (
+
+ {label}
+
+ );
+};
+
+type searchNavType = {
+ id: string;
+ label: "综合排序" | "最多播放" | "最新发表";
+ queryString: videoOrderType;
+};
+const Search_Nav: searchNavType[] = [
+ {
+ id: nanoid(4),
+ label: "综合排序",
+ queryString: "score",
+ },
+ {
+ id: nanoid(4),
+ label: "最多播放",
+ queryString: "view",
+ },
+ {
+ id: nanoid(4),
+ label: "最新发表",
+ queryString: "pubdate",
+ },
+];
diff --git a/src/routers/search/tool.ts b/src/routers/search/tool.ts
new file mode 100644
index 0000000..e54ef24
--- /dev/null
+++ b/src/routers/search/tool.ts
@@ -0,0 +1,31 @@
+import { videoOrderType } from "@utils/fetch/fetchtype";
+
+function ParseQueryString(queryString: string) {
+ const regExp = /([^&=]+)=([\w\W]*?)(&|$)/g;
+ let result = null,
+ ret: { [key: string]: string } = {};
+ while ((result = regExp.exec(queryString)) != null) {
+ ret[result[1]] = result[2];
+ }
+ return ret;
+}
+export const parseURL = (url = window.location.href) => {
+ const objUrl = new URL(url),
+ params = objUrl.search.slice(1);
+ return ParseQueryString(params);
+};
+
+export const returnReplacedParmasURl = (
+ input: { parmas: string; replace: string }[]
+) => {
+ const originUrl = window.location.href,
+ paramsObj = parseURL(originUrl);
+ input.forEach(({ parmas, replace }) => (paramsObj[parmas] = replace));
+ return originUrl.replace(
+ window.location.search,
+ `?${Object.entries(paramsObj)
+ .map(([key, value]) => `${key}=${value}`)
+ .join("&")}`
+ );
+};
+export const OrderArr: videoOrderType[] = ["pubdate", "score", "view"];
diff --git a/src/routers/video/hooks.tsx b/src/routers/video/hooks.tsx
new file mode 100644
index 0000000..56dd2a1
--- /dev/null
+++ b/src/routers/video/hooks.tsx
@@ -0,0 +1,22 @@
+import { useScreenSize } from "@components/proview/screenSize";
+import { useAppSelector } from "@store/hooks";
+import {
+ selectVideoLoadingState,
+ useChangeLoading,
+} from "@store/loading/index";
+import { VideoListType } from "./masonry";
+export const useVideoLoading = () => useAppSelector(selectVideoLoadingState);
+
+export const useChangeVideoLoading = () => {
+ const { handerChangeLoading } = useChangeLoading("videoIsLoading");
+ return { handerChangeLoading };
+};
+
+export const useVideoShowState = (data: VideoListType) => {
+ const { lg, md, sm } = useScreenSize(),
+ rightLen = (lg ? (md ? (sm ? 0 : 2) : 4) : 6) + 1;
+ const loading = useVideoLoading(),
+ isEmpty = data.length < 1,
+ shouldNoShowHeroLine = data.length < rightLen + 1 + 10;
+ return { loading, rightLen, isEmpty, shouldNoShowHeroLine };
+};
diff --git a/src/routers/video/item/index.tsx b/src/routers/video/item/index.tsx
index 773f4e7..20f9d52 100644
--- a/src/routers/video/item/index.tsx
+++ b/src/routers/video/item/index.tsx
@@ -24,6 +24,7 @@ export const VideoRouterImageCard: FC<{ data: VideoRouterImageCardType }> = ({
([]);
- const isLoading = useAppSelector(selectVideoLoadingState),
- dispatch = useAppDispatch(),
- handerChangeLoading = (state: boolean) =>
- dispatch(changeLoading({ stateName: "videoIsLoading", Tostate: state }));
+ const [lists, setLists] = useState([]);
+ const { handerChangeLoading } = useChangeVideoLoading();
useEffect(() => {
+ setLists([]);
+ handerChangeLoading(true);
// 在内部定义fetchHandler,保证拿到的是同步的
const fetchHandler = async (page: number = 1) => {
- const data = await fetchVideohandler(page, props);
+ const { data, canceledByAxios } = await fetchVideohandler(page, props);
setLists((lists) => [
...lists,
...data.map((item, index) => {
const itemRes = PickVideoRouterImageCardType(item);
- if (index === data.length - 3) {
+ if (index === data.length - 5) {
return {
...itemRes,
id: nanoid(4),
@@ -40,38 +38,133 @@ export default function VideoMasonry(props: VideoRouterMasonryType) {
return { ...itemRes, id: nanoid(4) };
}),
]);
+ if (!canceledByAxios) {
+ handerChangeLoading(false);
+ }
};
- setLists([]);
- handerChangeLoading(true);
- fetchHandler(1).then(() => handerChangeLoading(false));
+ fetchHandler(1);
}, [props]);
return (
+
+
+ );
+}
+
+const LoadingItems: FC<{ length?: number }> = ({ length = 20 }) => (
+ <>
+ {Array.from({ length }, (value, key) => (
+
+
+
+ ))}
+ >
+);
+
+const VideoContent: FC<{ data: VideoListType }> = memo((props) => {
+ const { loading, rightLen, isEmpty, shouldNoShowHeroLine } =
+ useVideoShowState(props.data);
+ const { sm } = useScreenSize();
+ const data = props.data;
+ const heroItem = data.slice(0, 1),
+ rightItem = data.slice(1, rightLen),
+ resItems = shouldNoShowHeroLine ? data : data.slice(rightLen);
+ return (
+ <>
- {lists.map((item) => (
-
- ))}
- {isLoading && }
+
+ {loading ? (
+
+ ) : shouldNoShowHeroLine ? (
+ <>>
+ ) : (
+
+ )}
+
+ {!sm && (
+
+
+ {loading ? (
+
+ ) : shouldNoShowHeroLine ? (
+ <>>
+ ) : (
+ rightItem.map((item) => (
+
+ ))
+ )}
+
+
+ )}
-
+
+ >
);
-}
+});
+
+export const NormalVideoRes: FC<{
+ loading: boolean;
+ isEmpty: boolean;
+ data: VideoListType;
+}> = ({ loading, isEmpty, data }) => {
+ useEffect(() => {
+ if (loading) {
+ window.scrollTo({ top: 0 });
+ }
+ }, [loading]);
+ return (
+
+ {loading ? (
+
+ ) : isEmpty ? (
+
+ ) : (
+ data.map((item) => )
+ )}
+
+ );
+};
+const EmptyItem = () => (
+ 暂无数据
+);
+
const MemoItems: FC = memo((props) => {
return (
@@ -80,24 +173,18 @@ const MemoItems: FC = memo((props) => {
);
});
-const LoadingSkeleton: FC<{ num: number }> = ({ num = 0 }) => {
- return (
- <>
- {...Array.from({ length: num }, (v, key) => (
-
-
-
-
-
-
-
-
-
- ))}
- >
- );
-};
+const LoadingSkeleton = () => (
+ <>
+
+
+
+
+
+
+
+ >
+);
diff --git a/src/routers/video/tools.ts b/src/routers/video/tools.ts
index ee6cd2d..8322c5e 100644
--- a/src/routers/video/tools.ts
+++ b/src/routers/video/tools.ts
@@ -2,9 +2,18 @@ import { VideoRouterMasonryType, VideoRouterImageCardType } from "./videotype";
import { fetchVideos } from "@utils/fetch/index";
import message from "@components/message";
import { Pick } from "@utils/index";
+import { RFetchVideoRes } from "@utils/fetch/fetchtype";
-export const fetchVideohandler = async (
- page: number = 1,
+type fetchVideohandlerType = (
+ page: number,
+ props: VideoRouterMasonryType
+) => Promise<{
+ data: RFetchVideoRes["data"]["result"];
+ canceledByAxios: boolean;
+}>;
+
+export const fetchVideohandler: fetchVideohandlerType = async (
+ page = 1,
props: VideoRouterMasonryType
) => {
const res = await fetchVideos({
@@ -16,11 +25,14 @@ export const fetchVideohandler = async (
if (res.code !== 0) {
res.code === 400 && message.info("参数错误,请尝试其他tag");
res.code === 500 && message.info(res.message);
- return [];
+ if (res.code === 403) {
+ return { data: [], canceledByAxios: true };
+ }
+ return { data: [], canceledByAxios: false };
} else if (res.data.result.length < 1) {
message.info("没有更多数据了,请尝试其他tag");
}
- return res.data.result;
+ return { data: res.data.result, canceledByAxios: false };
};
export function PickVideoRouterImageCardType<
diff --git a/src/routers/video/video.module.less b/src/routers/video/video.module.less
index 670ea5d..bfce141 100644
--- a/src/routers/video/video.module.less
+++ b/src/routers/video/video.module.less
@@ -13,13 +13,39 @@
}
}
-.container:empty {
- display: flex;
- justify-content: center;
+.hero-content {
+ &>section:only-child {
+ &>a:first-child {
+ flex-grow: 1;
+
+ img {
+ height: 100%;
+ }
+
+ img+div {
+ padding: 8px;
+
+ span {
+ font-size: 14px !important;
+ }
+ }
+ }
+
+ &>div:last-child {
+ justify-content: flex-start;
+
+ }
- &::before {
- margin-top: 50px;
- content: "暂无数据";
- color: #c1c1c1;
}
-}
\ No newline at end of file
+}
+
+// .container:empty {
+// display: flex;
+// justify-content: center;
+
+// &::before {
+// margin-top: 50px;
+// content: "暂无数据";
+// color: #c1c1c1;
+// }
+// }
\ No newline at end of file
diff --git a/src/store/device/index.ts b/src/store/device/index.ts
index 8a2f145..3bff900 100644
--- a/src/store/device/index.ts
+++ b/src/store/device/index.ts
@@ -1,15 +1,23 @@
-import { createSlice } from "@reduxjs/toolkit";
+import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import type { RootState } from "..";
+export type SelectModeType = typeof selectModeList[number];
+export const selectModeList = ["搜索tag", "搜索更多"] as const;
+
interface DeviceState {
/**
* @description nav栏是否展开
*/
navMoreShowed: boolean;
+ /**
+ *
+ */
+ selectSearchMode: SelectModeType;
}
const initialState: DeviceState = {
navMoreShowed: false,
+ selectSearchMode: "搜索tag",
};
export const DeviceSlice = createSlice({
name: "device",
@@ -21,14 +29,22 @@ export const DeviceSlice = createSlice({
changeNavMoreShowed: (state) => {
state.navMoreShowed = !state.navMoreShowed;
},
+ /**
+ * @description 修改搜索模式
+ */
+ changeSearchMode: (state, action: PayloadAction) => {
+ state.selectSearchMode = action.payload;
+ },
},
});
-export const { changeNavMoreShowed } = DeviceSlice.actions;
+export const { changeNavMoreShowed, changeSearchMode } = DeviceSlice.actions;
/**
* @description 获取nav是否展开
*/
export const selectNavMoreShowed = (state: RootState) =>
state.device.navMoreShowed;
+export const selectSearchMode = (state: RootState) =>
+ state.device.selectSearchMode;
export default DeviceSlice.reducer;
diff --git a/src/store/loading/index.ts b/src/store/loading/index.ts
index e26d5c9..86564b7 100644
--- a/src/store/loading/index.ts
+++ b/src/store/loading/index.ts
@@ -1,4 +1,5 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
+import { useAppDispatch } from "@store/hooks";
import type { RootState } from "..";
@@ -11,6 +12,10 @@ export interface LoadingState {
* @description 图片接口是否正在获取
*/
photoIsloading: boolean;
+ /**
+ *@description 搜索接口是否正在获取
+ */
+ searchIsloading: boolean;
}
interface IchangeLoadingItem {
stateName: keyof LoadingState;
@@ -20,6 +25,7 @@ interface IchangeLoadingItem {
const initialState: LoadingState = {
videoIsLoading: true,
photoIsloading: true,
+ searchIsloading: true,
};
export const LoadingSlice = createSlice({
name: "loading",
@@ -50,14 +56,23 @@ export const LoadingSlice = createSlice({
},
},
});
-
-const selectLoadingState = (state: RootState, name: keyof LoadingState) =>
+type LoadingTypes = keyof LoadingState;
+const selectLoadingState = (state: RootState, name: LoadingTypes) =>
state.loading[name];
export const { changeLoading, changeLoadingCauseByUrl } = LoadingSlice.actions;
export const selectVideoLoadingState = (state: RootState) =>
selectLoadingState(state, "videoIsLoading"),
selectPhotoLoadingState = (state: RootState) =>
- selectLoadingState(state, "photoIsloading");
+ selectLoadingState(state, "photoIsloading"),
+ selectSearchingState = (state: RootState) =>
+ selectLoadingState(state, "searchIsloading");
export default LoadingSlice.reducer;
+
+export const useChangeLoading = (name: LoadingTypes) => {
+ const dispatch = useAppDispatch(),
+ handerChangeLoading = (state: boolean) =>
+ dispatch(changeLoading({ stateName: name, Tostate: state }));
+ return { handerChangeLoading };
+};
diff --git a/src/store/tags/index.ts b/src/store/tags/index.ts
index 803ef06..293211f 100644
--- a/src/store/tags/index.ts
+++ b/src/store/tags/index.ts
@@ -8,6 +8,7 @@ import {
PhotoQueryNavList,
} from "@routers/layout/nav/photoTools";
import type { RootState } from "..";
+import { useAppDispatch, useAppSelector } from "@store/hooks";
const Photo_Topic_id_all = PhotoQueryNavList.find(
(item) => item.queryString === 0
@@ -23,12 +24,16 @@ interface TagStates {
/**
* @description video页面点击tags
*/
- VideoActiveTags: VideoNavQueryItemType[];
+ VideoActiveTags: VideoTagsType;
/**
* @description photo page active tags
*/
- PhotoActivetags: PhotoNavQueryItemType[];
+ PhotoActivetags: photoTagsType;
}
+
+type VideoTagsType = VideoNavQueryItemType[];
+type photoTagsType = PhotoNavQueryItemType[];
+
const initialState: TagStates = {
VideoActiveTags: [Video_default_show],
PhotoActivetags: [Photo_Topic_id_all, Photo_type_default],
@@ -122,3 +127,37 @@ export const selectVideoActiveTags = (state: RootState) =>
selectPhotoActiveTags = (state: RootState) =>
state.ActiveTags.PhotoActivetags;
export default ActiveTagsSlice.reducer;
+
+export const useSelectVideoActiveTags = () =>
+ useAppSelector(selectVideoActiveTags),
+ useSelectPhotoActiveTags = () => useAppSelector(selectPhotoActiveTags);
+export const useStoreVideoTags = () => {
+ const activeTags = useSelectVideoActiveTags();
+ const dispath = useAppDispatch(),
+ handerChangeActiveTags = (
+ type: "add" | "delete",
+ data: VideoNavQueryItemType
+ ) => {
+ if (type === "add") {
+ dispath(handerVideoAddTag(data));
+ } else {
+ dispath(handerVideoDeleteTag(data));
+ }
+ };
+ return [activeTags, handerChangeActiveTags];
+ },
+ useStorePhotoTags = () => {
+ const activeTags = useSelectPhotoActiveTags();
+ const dispath = useAppDispatch(),
+ handerChangeActiveTags = (
+ type: "add" | "delete",
+ data: PhotoNavQueryItemType
+ ) => {
+ if (type === "add") {
+ dispath(handerPhotoAddTag(data));
+ } else {
+ dispath(handerPhotoDeleteTag(data));
+ }
+ };
+ return [activeTags, handerChangeActiveTags];
+ };
diff --git a/src/utils/fetch/fetchtype.ts b/src/utils/fetch/fetchtype.ts
index 6d05df3..238986a 100644
--- a/src/utils/fetch/fetchtype.ts
+++ b/src/utils/fetch/fetchtype.ts
@@ -1,3 +1,4 @@
+export type videoOrderType = "pubdate" | "view" | "score";
/**
*@description video接口的请求参数类型
*/
@@ -7,7 +8,7 @@ export interface IFetchVideoParams {
* pubdate为最新发布排序,view为最多播放排序,score为最高得分排序
* @example pubdate | view | score
*/
- order: "pubdate" | "view" | "score";
+ order: videoOrderType;
/**
* @description 分页,每页返回20个;从1开始,自然数递增
* @example 1
@@ -170,7 +171,7 @@ type CustomFetchRes = {
/**
* @example 0
*/
- code: 0 | 400 | 500;
+ code: 0 | 400 | 500 | 403;
/**
* @example "ok"
*/
diff --git a/src/utils/fetch/index.ts b/src/utils/fetch/index.ts
index 30b2043..38a872d 100644
--- a/src/utils/fetch/index.ts
+++ b/src/utils/fetch/index.ts
@@ -1,4 +1,4 @@
-import axios from "axios";
+import axios, { AxiosError } from "axios";
import JSONBigInt from "json-bigint";
/**
* 类型文件导入
@@ -37,14 +37,21 @@ BackEndAxios.interceptors.request.use((config) => {
return config;
});
+let VideoSource: AbortController | null = null;
+
/**
* video视频数据获取接口
*/
export async function fetchVideos(
params: IFetchVideoParams
): Promise {
+ if (VideoSource) {
+ VideoSource.abort();
+ }
+ VideoSource = new AbortController();
try {
const res = await BackEndAxios.get("/video-interface/advanced-search", {
+ signal: VideoSource.signal,
params: {
order: params.order || "score",
page: params.page,
@@ -53,9 +60,23 @@ export async function fetchVideos(
tname: params.tname,
},
});
+ VideoSource = null;
return res.data;
- } catch (e) {
- // console.log({ e });
+ } catch (err) {
+ if (axios.isAxiosError(err)) {
+ if (err.code === "ERR_CANCELED") {
+ return {
+ code: 403,
+ message: "已取消",
+ ttl: 0,
+ data: {
+ page: 0,
+ numResults: 0,
+ result: [],
+ },
+ };
+ }
+ }
return {
code: 500,
message: "网络请求错误,您似乎处于断网状态",
@@ -68,19 +89,39 @@ export async function fetchVideos(
};
}
}
+let PhotoSource: AbortController | null = null;
/**
* photo图片数据获取接口
*/
export async function fetchPhotos(
params: IFetchPhotoParams
): Promise {
- // console.log({ params });
+ if (PhotoSource) {
+ PhotoSource.abort();
+ }
+ PhotoSource = new AbortController();
try {
const res = await BackEndAxios.get(`/pic/${params.type}`, {
+ signal: PhotoSource.signal,
params: Omit(params, "type"),
});
+ PhotoSource.abort();
return res.data;
- } catch (e) {
+ } catch (err) {
+ if (axios.isAxiosError(err)) {
+ if (err.code === "ERR_CANCELED") {
+ return {
+ code: 403,
+ message: "已取消",
+ ttl: 0,
+ data: {
+ page: 0,
+ total: 0,
+ result: [],
+ },
+ };
+ }
+ }
return {
code: 500,
message: "网络请求错误,您似乎处于断网状态",
diff --git a/src/utils/hooks/match.ts b/src/utils/hooks/match.ts
index 252268d..95a9eca 100644
--- a/src/utils/hooks/match.ts
+++ b/src/utils/hooks/match.ts
@@ -10,14 +10,6 @@ export const useScreenMatchSize = (size: Breakpoint) => {
const matchSize = useMediaQuery(theme.breakpoints.down(size));
return matchSize;
};
-//个人主页头像大小
-`@240w_240h_1c_1s.webp`;
-//移动平台首页图片大小
-`@480w_270h_1c`;
-//电脑平台首页图片大小
-`@672w_378h_1c_!web-search-common-cover`;
-//首页up头像大小
-`@96w_96h_1s.webp`;
export const useBodyScrollHide = (hidden: boolean) => {
useEffect(() => {
diff --git a/src/utils/hooks/popover.ts b/src/utils/hooks/popover.ts
new file mode 100644
index 0000000..6744e65
--- /dev/null
+++ b/src/utils/hooks/popover.ts
@@ -0,0 +1,20 @@
+import React from "react";
+
+export function usePopoverConfig(
+ target: "target" | "currentTaarget" = "currentTaarget"
+) {
+ const [anchorEl, setAnchorEl] = React.useState(null);
+ const handleClick = (event: React.MouseEvent) => {
+ if (target === "currentTaarget") {
+ setAnchorEl(event.currentTarget);
+ } else {
+ //@ts-ignore
+ setAnchorEl(event.target);
+ }
+ },
+ handleClose = () => {
+ setAnchorEl(null);
+ };
+ const open = Boolean(anchorEl);
+ return { anchorEl, handleClick, handleClose, open };
+}
diff --git a/src/utils/hooks/url.ts b/src/utils/hooks/url.ts
new file mode 100644
index 0000000..96c9c61
--- /dev/null
+++ b/src/utils/hooks/url.ts
@@ -0,0 +1,5 @@
+export const useURLParams = (searchList: string[]) => {
+ const originURl = window.location.href;
+ const url = new URL(originURl);
+ return searchList.map((item) => url.searchParams.get(item) || "");
+};
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
new file mode 100644
index 0000000..c5e0829
--- /dev/null
+++ b/tailwind.config.cjs
@@ -0,0 +1,12 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
+ theme: {
+ extend: {
+ screens: {
+ xs: "500px",
+ },
+ },
+ },
+ plugins: [],
+};