├── .eslintrc.cjs
├── .gitignore
├── .prettierrc
├── README.md
├── README.zh_CN.md
├── dev
├── App.css
├── App.tsx
├── assets
│ ├── img.png
│ ├── react.svg
│ └── scale_screen.gif
├── index.css
├── main.tsx
└── vite-env.d.ts
├── index.html
├── package.json
├── pnpm-lock.yaml
├── public
└── vite.svg
├── src
└── index.tsx
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: { browser: true, es2020: true },
3 | extends: [
4 | 'eslint:recommended',
5 | 'plugin:@typescript-eslint/recommended',
6 | 'plugin:react-hooks/recommended',
7 | ],
8 | parser: '@typescript-eslint/parser',
9 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
10 | plugins: ['react-refresh'],
11 | rules: {
12 | 'react-refresh/only-export-components': 'warn',
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": false,
3 | "singleQuote": true,
4 | "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
5 | "vetur.format.defaultFormatter.js": "vscode-typescript",
6 | "eslintIntegration": true,
7 | "htmlWhitespaceSensitivity": "ignore",
8 | "trailingComma": "none",
9 | "arrowParens": "avoid"
10 | }
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## r-scale-screen
2 |
3 | If you are using Vue, move to [v-scale-screen](https://github.com/Alfred-Skyblue/v-scale-screen)
4 |
5 | English | [简体中文](./README.zh_CN.md)
6 |
7 | Large-screen adaptive container component, which can be used for large-screen project development, realizes screen adaptation, and can be adaptive according to width, height, and width and height ratios, and full-screen adaptation
8 |
9 | ### Demo
10 |
11 | 
12 |
13 | ### Install
14 |
15 | ```bash
16 | npm install r-scale-screen
17 | # or
18 | yarn add r-scale-screen
19 | ```
20 |
21 | #### Usage
22 |
23 | ```tsx
24 | import RScaleScreen from 'r-scale-screen'
25 |
26 | function App() {
27 | return (
28 | <>
29 |
30 | ....
31 | ....
32 | ....
33 | ....
34 | ....
35 |
36 | >
37 | )
38 | }
39 | ```
40 |
41 | ### API
42 |
43 | | Property | Description | Type | Default |
44 | | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ------- |
45 | | width | Large screen width | `Number` or `String` | 1920 |
46 | | height | Large screen height | `Number` or `String` | 1080 |
47 | | autoScale | Adaptive configuration, when configured as a boolean type, it is to enable or disable the adaptive configuration. When configured as an object, if x is true, the x-axis generates a margin; when y is true, the y-axis generates a margin. This configuration is enabled when the full screen is enabled fail | Boolean or {x:boolean,y:boolean} | true |
48 | | delay | Window resize delay time | Number | 500 |
49 | | fullScreen | Full-screen self-adaptive, there will be a stretching effect when this configuration item is enabled, and auto Scale will be invalid. It is not recommended to enable it if it is not necessary | Boolean | false |
50 | | boxStyle | Modify the container style, such as the side background color when displaying in the center, conforming to the Vue two-way binding style standard format | Object | null |
51 | | wrapperStyle | Modify the adaptive area style to conform to the Vue two-way binding style standard format | Object | null |
52 | | bodyOverflowHidden | After enabling, the body style will be automatically set to `overflow: hidden` | Boolean | true |
53 |
--------------------------------------------------------------------------------
/README.zh_CN.md:
--------------------------------------------------------------------------------
1 | ## r-scale-screen
2 |
3 | 如果您是Vue开发者,请移步 [v-scale-screen](https://github.com/Alfred-Skyblue/v-scale-screen)
4 |
5 | 大屏自适应容器组件,可用于大屏项目开发,实现屏幕自适应,可根据宽度自适应,高度自适应,和宽高等比例自适应,全屏自适应(会存在拉伸问题)
6 |
7 | - 仓库地址:[github](https://github.com/Alfred-Skyblue/r-scale-screen)
8 |
9 | ### 图例
10 |
11 | 
12 |
13 | ### 安装
14 |
15 | ```bash
16 | npm install r-scale-screen
17 | # or
18 | yarn add r-scale-screen
19 | ```
20 |
21 |
22 | #### 使用
23 |
24 | ```tsx
25 | import RScaleScreen from 'r-scale-screen'
26 |
27 | function App() {
28 | return (
29 | <>
30 |
31 | ....
32 | ....
33 | ....
34 | ....
35 | ....
36 |
37 | >
38 | )
39 | }
40 | ```
41 |
42 | ### API
43 |
44 | | 属性 | 说明 | 类型 | 默认值 |
45 | |--------------------|----------------------------------------------------------------------------------------------------|----------------------------------|-------|
46 | | width | 大屏宽度 | `Number` or `String` | 1920 |
47 | | height | 大屏高度 | `Number` or `String` | 1080 |
48 | | autoScale | 自适应配置,配置为 boolean 类型时,为启动或者关闭自适应,配置为对象时,若 x 为 true,x 轴产生边距,y 为 true 时,y 轴产生边距,启用 fullScreen 时此配置失效 | Boolean or {x:boolean,y:boolean} | true |
49 | | delay | 窗口变化防抖延迟时间 | Number | 500 |
50 | | fullScreen | 全屏自适应,启用此配置项时会存在拉伸效果,同时 autoScale 失效,非必要情况下不建议开启 | Boolean | false |
51 | | boxStyle | 修改容器样式,如居中展示时侧边背景色,符合 Vue 双向绑定 style 标准格式 | Object | null |
52 | | wrapperStyle | 修改自适应区域样式,符合 Vue 双向绑定 style 标准格式 | Object | null |
53 | | bodyOverflowHidden | 启用后body的样式会自动设置为 `overflow: hidden` | Boolean | true |
54 |
--------------------------------------------------------------------------------
/dev/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Alfred-Skyblue/r-scale-screen/8ec92c39863585f0b516b703c98a1c98fd19782b/dev/App.css
--------------------------------------------------------------------------------
/dev/App.tsx:
--------------------------------------------------------------------------------
1 | import './App.css'
2 | import image from './assets/img.png'
3 |
4 | import RScaleScreen from '../src'
5 |
6 | function App() {
7 | return (
8 | <>
9 |
10 |
11 |
12 | >
13 | )
14 | }
15 |
16 | export default App
17 |
--------------------------------------------------------------------------------
/dev/assets/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Alfred-Skyblue/r-scale-screen/8ec92c39863585f0b516b703c98a1c98fd19782b/dev/assets/img.png
--------------------------------------------------------------------------------
/dev/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dev/assets/scale_screen.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Alfred-Skyblue/r-scale-screen/8ec92c39863585f0b516b703c98a1c98fd19782b/dev/assets/scale_screen.gif
--------------------------------------------------------------------------------
/dev/index.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/dev/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App.tsx'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
7 |
8 |
9 |
10 | )
11 | // The following dependencies are imported but could not be resolved
12 |
--------------------------------------------------------------------------------
/dev/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React + TS
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "r-scale-screen",
3 | "version": "0.0.2",
4 | "description": "react 大屏自适应组件",
5 | "main": "dist/r-scale-screen.umd.cjs",
6 | "module": "dist/r-scale-screen.js",
7 | "type": "module",
8 | "types": "dist/types/index.d.ts",
9 | "files": [
10 | "dist",
11 | "README.zh_CN.md"
12 | ],
13 | "keywords": [
14 | "react",
15 | "react大屏自适应组件",
16 | "react大屏组件",
17 | "大屏自适应",
18 | "大屏组件"
19 | ],
20 | "scripts": {
21 | "dev": "vite",
22 | "build": "vite build && tsc",
23 | "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
24 | "preview": "vite preview"
25 | },
26 | "dependencies": {
27 | "react": "^18.2.0",
28 | "react-dom": "^18.2.0"
29 | },
30 | "publishConfig": {
31 | "registry": "https://registry.npmjs.org/"
32 | },
33 | "devDependencies": {
34 | "@types/react": "^18.0.28",
35 | "@types/react-dom": "^18.0.11",
36 | "@typescript-eslint/eslint-plugin": "^5.57.1",
37 | "@typescript-eslint/parser": "^5.57.1",
38 | "@vitejs/plugin-react": "^4.0.0",
39 | "eslint": "^8.38.0",
40 | "eslint-plugin-react-hooks": "^4.6.0",
41 | "eslint-plugin-react-refresh": "^0.3.4",
42 | "prettier": "^2.8.8",
43 | "typescript": "^5.0.2",
44 | "vite": "^4.3.2"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | dependencies:
4 | react:
5 | specifier: ^18.2.0
6 | version: 18.2.0
7 | react-dom:
8 | specifier: ^18.2.0
9 | version: 18.2.0(react@18.2.0)
10 |
11 | devDependencies:
12 | '@types/react':
13 | specifier: ^18.0.28
14 | version: 18.0.28
15 | '@types/react-dom':
16 | specifier: ^18.0.11
17 | version: 18.0.11
18 | '@typescript-eslint/eslint-plugin':
19 | specifier: ^5.57.1
20 | version: 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@5.0.2)
21 | '@typescript-eslint/parser':
22 | specifier: ^5.57.1
23 | version: 5.57.1(eslint@8.38.0)(typescript@5.0.2)
24 | '@vitejs/plugin-react':
25 | specifier: ^4.0.0
26 | version: 4.0.0(vite@4.3.2)
27 | eslint:
28 | specifier: ^8.38.0
29 | version: 8.38.0
30 | eslint-plugin-react-hooks:
31 | specifier: ^4.6.0
32 | version: 4.6.0(eslint@8.38.0)
33 | eslint-plugin-react-refresh:
34 | specifier: ^0.3.4
35 | version: 0.3.4(eslint@8.38.0)
36 | prettier:
37 | specifier: ^2.8.8
38 | version: 2.8.8
39 | typescript:
40 | specifier: ^5.0.2
41 | version: 5.0.2
42 | vite:
43 | specifier: ^4.3.2
44 | version: 4.3.2
45 |
46 | packages:
47 |
48 | /@ampproject/remapping@2.2.1:
49 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
50 | engines: {node: '>=6.0.0'}
51 | dependencies:
52 | '@jridgewell/gen-mapping': 0.3.3
53 | '@jridgewell/trace-mapping': 0.3.18
54 | dev: true
55 |
56 | /@babel/code-frame@7.21.4:
57 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==}
58 | engines: {node: '>=6.9.0'}
59 | dependencies:
60 | '@babel/highlight': 7.18.6
61 | dev: true
62 |
63 | /@babel/compat-data@7.21.5:
64 | resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==}
65 | engines: {node: '>=6.9.0'}
66 | dev: true
67 |
68 | /@babel/core@7.21.5:
69 | resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==}
70 | engines: {node: '>=6.9.0'}
71 | dependencies:
72 | '@ampproject/remapping': 2.2.1
73 | '@babel/code-frame': 7.21.4
74 | '@babel/generator': 7.21.5
75 | '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5)
76 | '@babel/helper-module-transforms': 7.21.5
77 | '@babel/helpers': 7.21.5
78 | '@babel/parser': 7.21.5
79 | '@babel/template': 7.20.7
80 | '@babel/traverse': 7.21.5
81 | '@babel/types': 7.21.5
82 | convert-source-map: 1.9.0
83 | debug: 4.3.4
84 | gensync: 1.0.0-beta.2
85 | json5: 2.2.3
86 | semver: 6.3.0
87 | transitivePeerDependencies:
88 | - supports-color
89 | dev: true
90 |
91 | /@babel/generator@7.21.5:
92 | resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==}
93 | engines: {node: '>=6.9.0'}
94 | dependencies:
95 | '@babel/types': 7.21.5
96 | '@jridgewell/gen-mapping': 0.3.3
97 | '@jridgewell/trace-mapping': 0.3.18
98 | jsesc: 2.5.2
99 | dev: true
100 |
101 | /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5):
102 | resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==}
103 | engines: {node: '>=6.9.0'}
104 | peerDependencies:
105 | '@babel/core': ^7.0.0
106 | dependencies:
107 | '@babel/compat-data': 7.21.5
108 | '@babel/core': 7.21.5
109 | '@babel/helper-validator-option': 7.21.0
110 | browserslist: 4.21.5
111 | lru-cache: 5.1.1
112 | semver: 6.3.0
113 | dev: true
114 |
115 | /@babel/helper-environment-visitor@7.21.5:
116 | resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==}
117 | engines: {node: '>=6.9.0'}
118 | dev: true
119 |
120 | /@babel/helper-function-name@7.21.0:
121 | resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
122 | engines: {node: '>=6.9.0'}
123 | dependencies:
124 | '@babel/template': 7.20.7
125 | '@babel/types': 7.21.5
126 | dev: true
127 |
128 | /@babel/helper-hoist-variables@7.18.6:
129 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
130 | engines: {node: '>=6.9.0'}
131 | dependencies:
132 | '@babel/types': 7.21.5
133 | dev: true
134 |
135 | /@babel/helper-module-imports@7.21.4:
136 | resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==}
137 | engines: {node: '>=6.9.0'}
138 | dependencies:
139 | '@babel/types': 7.21.5
140 | dev: true
141 |
142 | /@babel/helper-module-transforms@7.21.5:
143 | resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==}
144 | engines: {node: '>=6.9.0'}
145 | dependencies:
146 | '@babel/helper-environment-visitor': 7.21.5
147 | '@babel/helper-module-imports': 7.21.4
148 | '@babel/helper-simple-access': 7.21.5
149 | '@babel/helper-split-export-declaration': 7.18.6
150 | '@babel/helper-validator-identifier': 7.19.1
151 | '@babel/template': 7.20.7
152 | '@babel/traverse': 7.21.5
153 | '@babel/types': 7.21.5
154 | transitivePeerDependencies:
155 | - supports-color
156 | dev: true
157 |
158 | /@babel/helper-plugin-utils@7.21.5:
159 | resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==}
160 | engines: {node: '>=6.9.0'}
161 | dev: true
162 |
163 | /@babel/helper-simple-access@7.21.5:
164 | resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==}
165 | engines: {node: '>=6.9.0'}
166 | dependencies:
167 | '@babel/types': 7.21.5
168 | dev: true
169 |
170 | /@babel/helper-split-export-declaration@7.18.6:
171 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
172 | engines: {node: '>=6.9.0'}
173 | dependencies:
174 | '@babel/types': 7.21.5
175 | dev: true
176 |
177 | /@babel/helper-string-parser@7.21.5:
178 | resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==}
179 | engines: {node: '>=6.9.0'}
180 | dev: true
181 |
182 | /@babel/helper-validator-identifier@7.19.1:
183 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
184 | engines: {node: '>=6.9.0'}
185 | dev: true
186 |
187 | /@babel/helper-validator-option@7.21.0:
188 | resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
189 | engines: {node: '>=6.9.0'}
190 | dev: true
191 |
192 | /@babel/helpers@7.21.5:
193 | resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==}
194 | engines: {node: '>=6.9.0'}
195 | dependencies:
196 | '@babel/template': 7.20.7
197 | '@babel/traverse': 7.21.5
198 | '@babel/types': 7.21.5
199 | transitivePeerDependencies:
200 | - supports-color
201 | dev: true
202 |
203 | /@babel/highlight@7.18.6:
204 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
205 | engines: {node: '>=6.9.0'}
206 | dependencies:
207 | '@babel/helper-validator-identifier': 7.19.1
208 | chalk: 2.4.2
209 | js-tokens: 4.0.0
210 | dev: true
211 |
212 | /@babel/parser@7.21.5:
213 | resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==}
214 | engines: {node: '>=6.0.0'}
215 | hasBin: true
216 | dependencies:
217 | '@babel/types': 7.21.5
218 | dev: true
219 |
220 | /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.5):
221 | resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==}
222 | engines: {node: '>=6.9.0'}
223 | peerDependencies:
224 | '@babel/core': ^7.0.0-0
225 | dependencies:
226 | '@babel/core': 7.21.5
227 | '@babel/helper-plugin-utils': 7.21.5
228 | dev: true
229 |
230 | /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.5):
231 | resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==}
232 | engines: {node: '>=6.9.0'}
233 | peerDependencies:
234 | '@babel/core': ^7.0.0-0
235 | dependencies:
236 | '@babel/core': 7.21.5
237 | '@babel/helper-plugin-utils': 7.21.5
238 | dev: true
239 |
240 | /@babel/template@7.20.7:
241 | resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
242 | engines: {node: '>=6.9.0'}
243 | dependencies:
244 | '@babel/code-frame': 7.21.4
245 | '@babel/parser': 7.21.5
246 | '@babel/types': 7.21.5
247 | dev: true
248 |
249 | /@babel/traverse@7.21.5:
250 | resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==}
251 | engines: {node: '>=6.9.0'}
252 | dependencies:
253 | '@babel/code-frame': 7.21.4
254 | '@babel/generator': 7.21.5
255 | '@babel/helper-environment-visitor': 7.21.5
256 | '@babel/helper-function-name': 7.21.0
257 | '@babel/helper-hoist-variables': 7.18.6
258 | '@babel/helper-split-export-declaration': 7.18.6
259 | '@babel/parser': 7.21.5
260 | '@babel/types': 7.21.5
261 | debug: 4.3.4
262 | globals: 11.12.0
263 | transitivePeerDependencies:
264 | - supports-color
265 | dev: true
266 |
267 | /@babel/types@7.21.5:
268 | resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==}
269 | engines: {node: '>=6.9.0'}
270 | dependencies:
271 | '@babel/helper-string-parser': 7.21.5
272 | '@babel/helper-validator-identifier': 7.19.1
273 | to-fast-properties: 2.0.0
274 | dev: true
275 |
276 | /@esbuild/android-arm64@0.17.18:
277 | resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==}
278 | engines: {node: '>=12'}
279 | cpu: [arm64]
280 | os: [android]
281 | requiresBuild: true
282 | dev: true
283 | optional: true
284 |
285 | /@esbuild/android-arm@0.17.18:
286 | resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==}
287 | engines: {node: '>=12'}
288 | cpu: [arm]
289 | os: [android]
290 | requiresBuild: true
291 | dev: true
292 | optional: true
293 |
294 | /@esbuild/android-x64@0.17.18:
295 | resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==}
296 | engines: {node: '>=12'}
297 | cpu: [x64]
298 | os: [android]
299 | requiresBuild: true
300 | dev: true
301 | optional: true
302 |
303 | /@esbuild/darwin-arm64@0.17.18:
304 | resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==}
305 | engines: {node: '>=12'}
306 | cpu: [arm64]
307 | os: [darwin]
308 | requiresBuild: true
309 | dev: true
310 | optional: true
311 |
312 | /@esbuild/darwin-x64@0.17.18:
313 | resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==}
314 | engines: {node: '>=12'}
315 | cpu: [x64]
316 | os: [darwin]
317 | requiresBuild: true
318 | dev: true
319 | optional: true
320 |
321 | /@esbuild/freebsd-arm64@0.17.18:
322 | resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==}
323 | engines: {node: '>=12'}
324 | cpu: [arm64]
325 | os: [freebsd]
326 | requiresBuild: true
327 | dev: true
328 | optional: true
329 |
330 | /@esbuild/freebsd-x64@0.17.18:
331 | resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==}
332 | engines: {node: '>=12'}
333 | cpu: [x64]
334 | os: [freebsd]
335 | requiresBuild: true
336 | dev: true
337 | optional: true
338 |
339 | /@esbuild/linux-arm64@0.17.18:
340 | resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==}
341 | engines: {node: '>=12'}
342 | cpu: [arm64]
343 | os: [linux]
344 | requiresBuild: true
345 | dev: true
346 | optional: true
347 |
348 | /@esbuild/linux-arm@0.17.18:
349 | resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==}
350 | engines: {node: '>=12'}
351 | cpu: [arm]
352 | os: [linux]
353 | requiresBuild: true
354 | dev: true
355 | optional: true
356 |
357 | /@esbuild/linux-ia32@0.17.18:
358 | resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==}
359 | engines: {node: '>=12'}
360 | cpu: [ia32]
361 | os: [linux]
362 | requiresBuild: true
363 | dev: true
364 | optional: true
365 |
366 | /@esbuild/linux-loong64@0.17.18:
367 | resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==}
368 | engines: {node: '>=12'}
369 | cpu: [loong64]
370 | os: [linux]
371 | requiresBuild: true
372 | dev: true
373 | optional: true
374 |
375 | /@esbuild/linux-mips64el@0.17.18:
376 | resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==}
377 | engines: {node: '>=12'}
378 | cpu: [mips64el]
379 | os: [linux]
380 | requiresBuild: true
381 | dev: true
382 | optional: true
383 |
384 | /@esbuild/linux-ppc64@0.17.18:
385 | resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==}
386 | engines: {node: '>=12'}
387 | cpu: [ppc64]
388 | os: [linux]
389 | requiresBuild: true
390 | dev: true
391 | optional: true
392 |
393 | /@esbuild/linux-riscv64@0.17.18:
394 | resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==}
395 | engines: {node: '>=12'}
396 | cpu: [riscv64]
397 | os: [linux]
398 | requiresBuild: true
399 | dev: true
400 | optional: true
401 |
402 | /@esbuild/linux-s390x@0.17.18:
403 | resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==}
404 | engines: {node: '>=12'}
405 | cpu: [s390x]
406 | os: [linux]
407 | requiresBuild: true
408 | dev: true
409 | optional: true
410 |
411 | /@esbuild/linux-x64@0.17.18:
412 | resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==}
413 | engines: {node: '>=12'}
414 | cpu: [x64]
415 | os: [linux]
416 | requiresBuild: true
417 | dev: true
418 | optional: true
419 |
420 | /@esbuild/netbsd-x64@0.17.18:
421 | resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==}
422 | engines: {node: '>=12'}
423 | cpu: [x64]
424 | os: [netbsd]
425 | requiresBuild: true
426 | dev: true
427 | optional: true
428 |
429 | /@esbuild/openbsd-x64@0.17.18:
430 | resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==}
431 | engines: {node: '>=12'}
432 | cpu: [x64]
433 | os: [openbsd]
434 | requiresBuild: true
435 | dev: true
436 | optional: true
437 |
438 | /@esbuild/sunos-x64@0.17.18:
439 | resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==}
440 | engines: {node: '>=12'}
441 | cpu: [x64]
442 | os: [sunos]
443 | requiresBuild: true
444 | dev: true
445 | optional: true
446 |
447 | /@esbuild/win32-arm64@0.17.18:
448 | resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==}
449 | engines: {node: '>=12'}
450 | cpu: [arm64]
451 | os: [win32]
452 | requiresBuild: true
453 | dev: true
454 | optional: true
455 |
456 | /@esbuild/win32-ia32@0.17.18:
457 | resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==}
458 | engines: {node: '>=12'}
459 | cpu: [ia32]
460 | os: [win32]
461 | requiresBuild: true
462 | dev: true
463 | optional: true
464 |
465 | /@esbuild/win32-x64@0.17.18:
466 | resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==}
467 | engines: {node: '>=12'}
468 | cpu: [x64]
469 | os: [win32]
470 | requiresBuild: true
471 | dev: true
472 | optional: true
473 |
474 | /@eslint-community/eslint-utils@4.4.0(eslint@8.38.0):
475 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
476 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
477 | peerDependencies:
478 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
479 | dependencies:
480 | eslint: 8.38.0
481 | eslint-visitor-keys: 3.4.0
482 | dev: true
483 |
484 | /@eslint-community/regexpp@4.5.0:
485 | resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==}
486 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
487 | dev: true
488 |
489 | /@eslint/eslintrc@2.0.2:
490 | resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==}
491 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
492 | dependencies:
493 | ajv: 6.12.6
494 | debug: 4.3.4
495 | espree: 9.5.1
496 | globals: 13.20.0
497 | ignore: 5.2.4
498 | import-fresh: 3.3.0
499 | js-yaml: 4.1.0
500 | minimatch: 3.1.2
501 | strip-json-comments: 3.1.1
502 | transitivePeerDependencies:
503 | - supports-color
504 | dev: true
505 |
506 | /@eslint/js@8.38.0:
507 | resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==}
508 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
509 | dev: true
510 |
511 | /@humanwhocodes/config-array@0.11.8:
512 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
513 | engines: {node: '>=10.10.0'}
514 | dependencies:
515 | '@humanwhocodes/object-schema': 1.2.1
516 | debug: 4.3.4
517 | minimatch: 3.1.2
518 | transitivePeerDependencies:
519 | - supports-color
520 | dev: true
521 |
522 | /@humanwhocodes/module-importer@1.0.1:
523 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
524 | engines: {node: '>=12.22'}
525 | dev: true
526 |
527 | /@humanwhocodes/object-schema@1.2.1:
528 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
529 | dev: true
530 |
531 | /@jridgewell/gen-mapping@0.3.3:
532 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
533 | engines: {node: '>=6.0.0'}
534 | dependencies:
535 | '@jridgewell/set-array': 1.1.2
536 | '@jridgewell/sourcemap-codec': 1.4.15
537 | '@jridgewell/trace-mapping': 0.3.18
538 | dev: true
539 |
540 | /@jridgewell/resolve-uri@3.1.0:
541 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
542 | engines: {node: '>=6.0.0'}
543 | dev: true
544 |
545 | /@jridgewell/set-array@1.1.2:
546 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
547 | engines: {node: '>=6.0.0'}
548 | dev: true
549 |
550 | /@jridgewell/sourcemap-codec@1.4.14:
551 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
552 | dev: true
553 |
554 | /@jridgewell/sourcemap-codec@1.4.15:
555 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
556 | dev: true
557 |
558 | /@jridgewell/trace-mapping@0.3.18:
559 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
560 | dependencies:
561 | '@jridgewell/resolve-uri': 3.1.0
562 | '@jridgewell/sourcemap-codec': 1.4.14
563 | dev: true
564 |
565 | /@nodelib/fs.scandir@2.1.5:
566 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
567 | engines: {node: '>= 8'}
568 | dependencies:
569 | '@nodelib/fs.stat': 2.0.5
570 | run-parallel: 1.2.0
571 | dev: true
572 |
573 | /@nodelib/fs.stat@2.0.5:
574 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
575 | engines: {node: '>= 8'}
576 | dev: true
577 |
578 | /@nodelib/fs.walk@1.2.8:
579 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
580 | engines: {node: '>= 8'}
581 | dependencies:
582 | '@nodelib/fs.scandir': 2.1.5
583 | fastq: 1.15.0
584 | dev: true
585 |
586 | /@types/json-schema@7.0.11:
587 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
588 | dev: true
589 |
590 | /@types/prop-types@15.7.5:
591 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
592 | dev: true
593 |
594 | /@types/react-dom@18.0.11:
595 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
596 | dependencies:
597 | '@types/react': 18.0.28
598 | dev: true
599 |
600 | /@types/react@18.0.28:
601 | resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==}
602 | dependencies:
603 | '@types/prop-types': 15.7.5
604 | '@types/scheduler': 0.16.3
605 | csstype: 3.1.2
606 | dev: true
607 |
608 | /@types/scheduler@0.16.3:
609 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
610 | dev: true
611 |
612 | /@types/semver@7.3.13:
613 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
614 | dev: true
615 |
616 | /@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@5.0.2):
617 | resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==}
618 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
619 | peerDependencies:
620 | '@typescript-eslint/parser': ^5.0.0
621 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
622 | typescript: '*'
623 | peerDependenciesMeta:
624 | typescript:
625 | optional: true
626 | dependencies:
627 | '@eslint-community/regexpp': 4.5.0
628 | '@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@5.0.2)
629 | '@typescript-eslint/scope-manager': 5.57.1
630 | '@typescript-eslint/type-utils': 5.57.1(eslint@8.38.0)(typescript@5.0.2)
631 | '@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@5.0.2)
632 | debug: 4.3.4
633 | eslint: 8.38.0
634 | grapheme-splitter: 1.0.4
635 | ignore: 5.2.4
636 | natural-compare-lite: 1.4.0
637 | semver: 7.5.0
638 | tsutils: 3.21.0(typescript@5.0.2)
639 | typescript: 5.0.2
640 | transitivePeerDependencies:
641 | - supports-color
642 | dev: true
643 |
644 | /@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@5.0.2):
645 | resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==}
646 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
647 | peerDependencies:
648 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
649 | typescript: '*'
650 | peerDependenciesMeta:
651 | typescript:
652 | optional: true
653 | dependencies:
654 | '@typescript-eslint/scope-manager': 5.57.1
655 | '@typescript-eslint/types': 5.57.1
656 | '@typescript-eslint/typescript-estree': 5.57.1(typescript@5.0.2)
657 | debug: 4.3.4
658 | eslint: 8.38.0
659 | typescript: 5.0.2
660 | transitivePeerDependencies:
661 | - supports-color
662 | dev: true
663 |
664 | /@typescript-eslint/scope-manager@5.57.1:
665 | resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==}
666 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
667 | dependencies:
668 | '@typescript-eslint/types': 5.57.1
669 | '@typescript-eslint/visitor-keys': 5.57.1
670 | dev: true
671 |
672 | /@typescript-eslint/type-utils@5.57.1(eslint@8.38.0)(typescript@5.0.2):
673 | resolution: {integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==}
674 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
675 | peerDependencies:
676 | eslint: '*'
677 | typescript: '*'
678 | peerDependenciesMeta:
679 | typescript:
680 | optional: true
681 | dependencies:
682 | '@typescript-eslint/typescript-estree': 5.57.1(typescript@5.0.2)
683 | '@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@5.0.2)
684 | debug: 4.3.4
685 | eslint: 8.38.0
686 | tsutils: 3.21.0(typescript@5.0.2)
687 | typescript: 5.0.2
688 | transitivePeerDependencies:
689 | - supports-color
690 | dev: true
691 |
692 | /@typescript-eslint/types@5.57.1:
693 | resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==}
694 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
695 | dev: true
696 |
697 | /@typescript-eslint/typescript-estree@5.57.1(typescript@5.0.2):
698 | resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==}
699 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
700 | peerDependencies:
701 | typescript: '*'
702 | peerDependenciesMeta:
703 | typescript:
704 | optional: true
705 | dependencies:
706 | '@typescript-eslint/types': 5.57.1
707 | '@typescript-eslint/visitor-keys': 5.57.1
708 | debug: 4.3.4
709 | globby: 11.1.0
710 | is-glob: 4.0.3
711 | semver: 7.5.0
712 | tsutils: 3.21.0(typescript@5.0.2)
713 | typescript: 5.0.2
714 | transitivePeerDependencies:
715 | - supports-color
716 | dev: true
717 |
718 | /@typescript-eslint/utils@5.57.1(eslint@8.38.0)(typescript@5.0.2):
719 | resolution: {integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==}
720 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
721 | peerDependencies:
722 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
723 | dependencies:
724 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
725 | '@types/json-schema': 7.0.11
726 | '@types/semver': 7.3.13
727 | '@typescript-eslint/scope-manager': 5.57.1
728 | '@typescript-eslint/types': 5.57.1
729 | '@typescript-eslint/typescript-estree': 5.57.1(typescript@5.0.2)
730 | eslint: 8.38.0
731 | eslint-scope: 5.1.1
732 | semver: 7.5.0
733 | transitivePeerDependencies:
734 | - supports-color
735 | - typescript
736 | dev: true
737 |
738 | /@typescript-eslint/visitor-keys@5.57.1:
739 | resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==}
740 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
741 | dependencies:
742 | '@typescript-eslint/types': 5.57.1
743 | eslint-visitor-keys: 3.4.0
744 | dev: true
745 |
746 | /@vitejs/plugin-react@4.0.0(vite@4.3.2):
747 | resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==}
748 | engines: {node: ^14.18.0 || >=16.0.0}
749 | peerDependencies:
750 | vite: ^4.2.0
751 | dependencies:
752 | '@babel/core': 7.21.5
753 | '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.5)
754 | '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.5)
755 | react-refresh: 0.14.0
756 | vite: 4.3.2
757 | transitivePeerDependencies:
758 | - supports-color
759 | dev: true
760 |
761 | /acorn-jsx@5.3.2(acorn@8.8.2):
762 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
763 | peerDependencies:
764 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
765 | dependencies:
766 | acorn: 8.8.2
767 | dev: true
768 |
769 | /acorn@8.8.2:
770 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
771 | engines: {node: '>=0.4.0'}
772 | hasBin: true
773 | dev: true
774 |
775 | /ajv@6.12.6:
776 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
777 | dependencies:
778 | fast-deep-equal: 3.1.3
779 | fast-json-stable-stringify: 2.1.0
780 | json-schema-traverse: 0.4.1
781 | uri-js: 4.4.1
782 | dev: true
783 |
784 | /ansi-regex@5.0.1:
785 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
786 | engines: {node: '>=8'}
787 | dev: true
788 |
789 | /ansi-styles@3.2.1:
790 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
791 | engines: {node: '>=4'}
792 | dependencies:
793 | color-convert: 1.9.3
794 | dev: true
795 |
796 | /ansi-styles@4.3.0:
797 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
798 | engines: {node: '>=8'}
799 | dependencies:
800 | color-convert: 2.0.1
801 | dev: true
802 |
803 | /argparse@2.0.1:
804 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
805 | dev: true
806 |
807 | /array-union@2.1.0:
808 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
809 | engines: {node: '>=8'}
810 | dev: true
811 |
812 | /balanced-match@1.0.2:
813 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
814 | dev: true
815 |
816 | /brace-expansion@1.1.11:
817 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
818 | dependencies:
819 | balanced-match: 1.0.2
820 | concat-map: 0.0.1
821 | dev: true
822 |
823 | /braces@3.0.2:
824 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
825 | engines: {node: '>=8'}
826 | dependencies:
827 | fill-range: 7.0.1
828 | dev: true
829 |
830 | /browserslist@4.21.5:
831 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
832 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
833 | hasBin: true
834 | dependencies:
835 | caniuse-lite: 1.0.30001481
836 | electron-to-chromium: 1.4.377
837 | node-releases: 2.0.10
838 | update-browserslist-db: 1.0.11(browserslist@4.21.5)
839 | dev: true
840 |
841 | /callsites@3.1.0:
842 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
843 | engines: {node: '>=6'}
844 | dev: true
845 |
846 | /caniuse-lite@1.0.30001481:
847 | resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==}
848 | dev: true
849 |
850 | /chalk@2.4.2:
851 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
852 | engines: {node: '>=4'}
853 | dependencies:
854 | ansi-styles: 3.2.1
855 | escape-string-regexp: 1.0.5
856 | supports-color: 5.5.0
857 | dev: true
858 |
859 | /chalk@4.1.2:
860 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
861 | engines: {node: '>=10'}
862 | dependencies:
863 | ansi-styles: 4.3.0
864 | supports-color: 7.2.0
865 | dev: true
866 |
867 | /color-convert@1.9.3:
868 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
869 | dependencies:
870 | color-name: 1.1.3
871 | dev: true
872 |
873 | /color-convert@2.0.1:
874 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
875 | engines: {node: '>=7.0.0'}
876 | dependencies:
877 | color-name: 1.1.4
878 | dev: true
879 |
880 | /color-name@1.1.3:
881 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
882 | dev: true
883 |
884 | /color-name@1.1.4:
885 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
886 | dev: true
887 |
888 | /concat-map@0.0.1:
889 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
890 | dev: true
891 |
892 | /convert-source-map@1.9.0:
893 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
894 | dev: true
895 |
896 | /cross-spawn@7.0.3:
897 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
898 | engines: {node: '>= 8'}
899 | dependencies:
900 | path-key: 3.1.1
901 | shebang-command: 2.0.0
902 | which: 2.0.2
903 | dev: true
904 |
905 | /csstype@3.1.2:
906 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
907 | dev: true
908 |
909 | /debug@4.3.4:
910 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
911 | engines: {node: '>=6.0'}
912 | peerDependencies:
913 | supports-color: '*'
914 | peerDependenciesMeta:
915 | supports-color:
916 | optional: true
917 | dependencies:
918 | ms: 2.1.2
919 | dev: true
920 |
921 | /deep-is@0.1.4:
922 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
923 | dev: true
924 |
925 | /dir-glob@3.0.1:
926 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
927 | engines: {node: '>=8'}
928 | dependencies:
929 | path-type: 4.0.0
930 | dev: true
931 |
932 | /doctrine@3.0.0:
933 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
934 | engines: {node: '>=6.0.0'}
935 | dependencies:
936 | esutils: 2.0.3
937 | dev: true
938 |
939 | /electron-to-chromium@1.4.377:
940 | resolution: {integrity: sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==}
941 | dev: true
942 |
943 | /esbuild@0.17.18:
944 | resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==}
945 | engines: {node: '>=12'}
946 | hasBin: true
947 | requiresBuild: true
948 | optionalDependencies:
949 | '@esbuild/android-arm': 0.17.18
950 | '@esbuild/android-arm64': 0.17.18
951 | '@esbuild/android-x64': 0.17.18
952 | '@esbuild/darwin-arm64': 0.17.18
953 | '@esbuild/darwin-x64': 0.17.18
954 | '@esbuild/freebsd-arm64': 0.17.18
955 | '@esbuild/freebsd-x64': 0.17.18
956 | '@esbuild/linux-arm': 0.17.18
957 | '@esbuild/linux-arm64': 0.17.18
958 | '@esbuild/linux-ia32': 0.17.18
959 | '@esbuild/linux-loong64': 0.17.18
960 | '@esbuild/linux-mips64el': 0.17.18
961 | '@esbuild/linux-ppc64': 0.17.18
962 | '@esbuild/linux-riscv64': 0.17.18
963 | '@esbuild/linux-s390x': 0.17.18
964 | '@esbuild/linux-x64': 0.17.18
965 | '@esbuild/netbsd-x64': 0.17.18
966 | '@esbuild/openbsd-x64': 0.17.18
967 | '@esbuild/sunos-x64': 0.17.18
968 | '@esbuild/win32-arm64': 0.17.18
969 | '@esbuild/win32-ia32': 0.17.18
970 | '@esbuild/win32-x64': 0.17.18
971 | dev: true
972 |
973 | /escalade@3.1.1:
974 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
975 | engines: {node: '>=6'}
976 | dev: true
977 |
978 | /escape-string-regexp@1.0.5:
979 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
980 | engines: {node: '>=0.8.0'}
981 | dev: true
982 |
983 | /escape-string-regexp@4.0.0:
984 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
985 | engines: {node: '>=10'}
986 | dev: true
987 |
988 | /eslint-plugin-react-hooks@4.6.0(eslint@8.38.0):
989 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
990 | engines: {node: '>=10'}
991 | peerDependencies:
992 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
993 | dependencies:
994 | eslint: 8.38.0
995 | dev: true
996 |
997 | /eslint-plugin-react-refresh@0.3.4(eslint@8.38.0):
998 | resolution: {integrity: sha512-E0ViBglxSQAERBp6eTj5fPgtCRtDonnbCFiVQBhf4Dto2blJRxg1dFUMdMh7N6ljTI4UwPhHwYDQ3Dyo4m6bwA==}
999 | peerDependencies:
1000 | eslint: '>=7'
1001 | dependencies:
1002 | eslint: 8.38.0
1003 | dev: true
1004 |
1005 | /eslint-scope@5.1.1:
1006 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
1007 | engines: {node: '>=8.0.0'}
1008 | dependencies:
1009 | esrecurse: 4.3.0
1010 | estraverse: 4.3.0
1011 | dev: true
1012 |
1013 | /eslint-scope@7.2.0:
1014 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
1015 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1016 | dependencies:
1017 | esrecurse: 4.3.0
1018 | estraverse: 5.3.0
1019 | dev: true
1020 |
1021 | /eslint-visitor-keys@3.4.0:
1022 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
1023 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1024 | dev: true
1025 |
1026 | /eslint@8.38.0:
1027 | resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==}
1028 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1029 | hasBin: true
1030 | dependencies:
1031 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
1032 | '@eslint-community/regexpp': 4.5.0
1033 | '@eslint/eslintrc': 2.0.2
1034 | '@eslint/js': 8.38.0
1035 | '@humanwhocodes/config-array': 0.11.8
1036 | '@humanwhocodes/module-importer': 1.0.1
1037 | '@nodelib/fs.walk': 1.2.8
1038 | ajv: 6.12.6
1039 | chalk: 4.1.2
1040 | cross-spawn: 7.0.3
1041 | debug: 4.3.4
1042 | doctrine: 3.0.0
1043 | escape-string-regexp: 4.0.0
1044 | eslint-scope: 7.2.0
1045 | eslint-visitor-keys: 3.4.0
1046 | espree: 9.5.1
1047 | esquery: 1.5.0
1048 | esutils: 2.0.3
1049 | fast-deep-equal: 3.1.3
1050 | file-entry-cache: 6.0.1
1051 | find-up: 5.0.0
1052 | glob-parent: 6.0.2
1053 | globals: 13.20.0
1054 | grapheme-splitter: 1.0.4
1055 | ignore: 5.2.4
1056 | import-fresh: 3.3.0
1057 | imurmurhash: 0.1.4
1058 | is-glob: 4.0.3
1059 | is-path-inside: 3.0.3
1060 | js-sdsl: 4.4.0
1061 | js-yaml: 4.1.0
1062 | json-stable-stringify-without-jsonify: 1.0.1
1063 | levn: 0.4.1
1064 | lodash.merge: 4.6.2
1065 | minimatch: 3.1.2
1066 | natural-compare: 1.4.0
1067 | optionator: 0.9.1
1068 | strip-ansi: 6.0.1
1069 | strip-json-comments: 3.1.1
1070 | text-table: 0.2.0
1071 | transitivePeerDependencies:
1072 | - supports-color
1073 | dev: true
1074 |
1075 | /espree@9.5.1:
1076 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==}
1077 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1078 | dependencies:
1079 | acorn: 8.8.2
1080 | acorn-jsx: 5.3.2(acorn@8.8.2)
1081 | eslint-visitor-keys: 3.4.0
1082 | dev: true
1083 |
1084 | /esquery@1.5.0:
1085 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1086 | engines: {node: '>=0.10'}
1087 | dependencies:
1088 | estraverse: 5.3.0
1089 | dev: true
1090 |
1091 | /esrecurse@4.3.0:
1092 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1093 | engines: {node: '>=4.0'}
1094 | dependencies:
1095 | estraverse: 5.3.0
1096 | dev: true
1097 |
1098 | /estraverse@4.3.0:
1099 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
1100 | engines: {node: '>=4.0'}
1101 | dev: true
1102 |
1103 | /estraverse@5.3.0:
1104 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1105 | engines: {node: '>=4.0'}
1106 | dev: true
1107 |
1108 | /esutils@2.0.3:
1109 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1110 | engines: {node: '>=0.10.0'}
1111 | dev: true
1112 |
1113 | /fast-deep-equal@3.1.3:
1114 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1115 | dev: true
1116 |
1117 | /fast-glob@3.2.12:
1118 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
1119 | engines: {node: '>=8.6.0'}
1120 | dependencies:
1121 | '@nodelib/fs.stat': 2.0.5
1122 | '@nodelib/fs.walk': 1.2.8
1123 | glob-parent: 5.1.2
1124 | merge2: 1.4.1
1125 | micromatch: 4.0.5
1126 | dev: true
1127 |
1128 | /fast-json-stable-stringify@2.1.0:
1129 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1130 | dev: true
1131 |
1132 | /fast-levenshtein@2.0.6:
1133 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1134 | dev: true
1135 |
1136 | /fastq@1.15.0:
1137 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1138 | dependencies:
1139 | reusify: 1.0.4
1140 | dev: true
1141 |
1142 | /file-entry-cache@6.0.1:
1143 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1144 | engines: {node: ^10.12.0 || >=12.0.0}
1145 | dependencies:
1146 | flat-cache: 3.0.4
1147 | dev: true
1148 |
1149 | /fill-range@7.0.1:
1150 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1151 | engines: {node: '>=8'}
1152 | dependencies:
1153 | to-regex-range: 5.0.1
1154 | dev: true
1155 |
1156 | /find-up@5.0.0:
1157 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1158 | engines: {node: '>=10'}
1159 | dependencies:
1160 | locate-path: 6.0.0
1161 | path-exists: 4.0.0
1162 | dev: true
1163 |
1164 | /flat-cache@3.0.4:
1165 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1166 | engines: {node: ^10.12.0 || >=12.0.0}
1167 | dependencies:
1168 | flatted: 3.2.7
1169 | rimraf: 3.0.2
1170 | dev: true
1171 |
1172 | /flatted@3.2.7:
1173 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1174 | dev: true
1175 |
1176 | /fs.realpath@1.0.0:
1177 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1178 | dev: true
1179 |
1180 | /fsevents@2.3.2:
1181 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1182 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1183 | os: [darwin]
1184 | requiresBuild: true
1185 | dev: true
1186 | optional: true
1187 |
1188 | /gensync@1.0.0-beta.2:
1189 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
1190 | engines: {node: '>=6.9.0'}
1191 | dev: true
1192 |
1193 | /glob-parent@5.1.2:
1194 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1195 | engines: {node: '>= 6'}
1196 | dependencies:
1197 | is-glob: 4.0.3
1198 | dev: true
1199 |
1200 | /glob-parent@6.0.2:
1201 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1202 | engines: {node: '>=10.13.0'}
1203 | dependencies:
1204 | is-glob: 4.0.3
1205 | dev: true
1206 |
1207 | /glob@7.2.3:
1208 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1209 | dependencies:
1210 | fs.realpath: 1.0.0
1211 | inflight: 1.0.6
1212 | inherits: 2.0.4
1213 | minimatch: 3.1.2
1214 | once: 1.4.0
1215 | path-is-absolute: 1.0.1
1216 | dev: true
1217 |
1218 | /globals@11.12.0:
1219 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
1220 | engines: {node: '>=4'}
1221 | dev: true
1222 |
1223 | /globals@13.20.0:
1224 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
1225 | engines: {node: '>=8'}
1226 | dependencies:
1227 | type-fest: 0.20.2
1228 | dev: true
1229 |
1230 | /globby@11.1.0:
1231 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1232 | engines: {node: '>=10'}
1233 | dependencies:
1234 | array-union: 2.1.0
1235 | dir-glob: 3.0.1
1236 | fast-glob: 3.2.12
1237 | ignore: 5.2.4
1238 | merge2: 1.4.1
1239 | slash: 3.0.0
1240 | dev: true
1241 |
1242 | /grapheme-splitter@1.0.4:
1243 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1244 | dev: true
1245 |
1246 | /has-flag@3.0.0:
1247 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
1248 | engines: {node: '>=4'}
1249 | dev: true
1250 |
1251 | /has-flag@4.0.0:
1252 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1253 | engines: {node: '>=8'}
1254 | dev: true
1255 |
1256 | /ignore@5.2.4:
1257 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1258 | engines: {node: '>= 4'}
1259 | dev: true
1260 |
1261 | /import-fresh@3.3.0:
1262 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1263 | engines: {node: '>=6'}
1264 | dependencies:
1265 | parent-module: 1.0.1
1266 | resolve-from: 4.0.0
1267 | dev: true
1268 |
1269 | /imurmurhash@0.1.4:
1270 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1271 | engines: {node: '>=0.8.19'}
1272 | dev: true
1273 |
1274 | /inflight@1.0.6:
1275 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1276 | dependencies:
1277 | once: 1.4.0
1278 | wrappy: 1.0.2
1279 | dev: true
1280 |
1281 | /inherits@2.0.4:
1282 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1283 | dev: true
1284 |
1285 | /is-extglob@2.1.1:
1286 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1287 | engines: {node: '>=0.10.0'}
1288 | dev: true
1289 |
1290 | /is-glob@4.0.3:
1291 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1292 | engines: {node: '>=0.10.0'}
1293 | dependencies:
1294 | is-extglob: 2.1.1
1295 | dev: true
1296 |
1297 | /is-number@7.0.0:
1298 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1299 | engines: {node: '>=0.12.0'}
1300 | dev: true
1301 |
1302 | /is-path-inside@3.0.3:
1303 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1304 | engines: {node: '>=8'}
1305 | dev: true
1306 |
1307 | /isexe@2.0.0:
1308 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1309 | dev: true
1310 |
1311 | /js-sdsl@4.4.0:
1312 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
1313 | dev: true
1314 |
1315 | /js-tokens@4.0.0:
1316 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1317 |
1318 | /js-yaml@4.1.0:
1319 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1320 | hasBin: true
1321 | dependencies:
1322 | argparse: 2.0.1
1323 | dev: true
1324 |
1325 | /jsesc@2.5.2:
1326 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
1327 | engines: {node: '>=4'}
1328 | hasBin: true
1329 | dev: true
1330 |
1331 | /json-schema-traverse@0.4.1:
1332 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1333 | dev: true
1334 |
1335 | /json-stable-stringify-without-jsonify@1.0.1:
1336 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1337 | dev: true
1338 |
1339 | /json5@2.2.3:
1340 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1341 | engines: {node: '>=6'}
1342 | hasBin: true
1343 | dev: true
1344 |
1345 | /levn@0.4.1:
1346 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1347 | engines: {node: '>= 0.8.0'}
1348 | dependencies:
1349 | prelude-ls: 1.2.1
1350 | type-check: 0.4.0
1351 | dev: true
1352 |
1353 | /locate-path@6.0.0:
1354 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1355 | engines: {node: '>=10'}
1356 | dependencies:
1357 | p-locate: 5.0.0
1358 | dev: true
1359 |
1360 | /lodash.merge@4.6.2:
1361 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1362 | dev: true
1363 |
1364 | /loose-envify@1.4.0:
1365 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1366 | hasBin: true
1367 | dependencies:
1368 | js-tokens: 4.0.0
1369 | dev: false
1370 |
1371 | /lru-cache@5.1.1:
1372 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1373 | dependencies:
1374 | yallist: 3.1.1
1375 | dev: true
1376 |
1377 | /lru-cache@6.0.0:
1378 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1379 | engines: {node: '>=10'}
1380 | dependencies:
1381 | yallist: 4.0.0
1382 | dev: true
1383 |
1384 | /merge2@1.4.1:
1385 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1386 | engines: {node: '>= 8'}
1387 | dev: true
1388 |
1389 | /micromatch@4.0.5:
1390 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1391 | engines: {node: '>=8.6'}
1392 | dependencies:
1393 | braces: 3.0.2
1394 | picomatch: 2.3.1
1395 | dev: true
1396 |
1397 | /minimatch@3.1.2:
1398 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1399 | dependencies:
1400 | brace-expansion: 1.1.11
1401 | dev: true
1402 |
1403 | /ms@2.1.2:
1404 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1405 | dev: true
1406 |
1407 | /nanoid@3.3.6:
1408 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
1409 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1410 | hasBin: true
1411 | dev: true
1412 |
1413 | /natural-compare-lite@1.4.0:
1414 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
1415 | dev: true
1416 |
1417 | /natural-compare@1.4.0:
1418 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1419 | dev: true
1420 |
1421 | /node-releases@2.0.10:
1422 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
1423 | dev: true
1424 |
1425 | /once@1.4.0:
1426 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1427 | dependencies:
1428 | wrappy: 1.0.2
1429 | dev: true
1430 |
1431 | /optionator@0.9.1:
1432 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1433 | engines: {node: '>= 0.8.0'}
1434 | dependencies:
1435 | deep-is: 0.1.4
1436 | fast-levenshtein: 2.0.6
1437 | levn: 0.4.1
1438 | prelude-ls: 1.2.1
1439 | type-check: 0.4.0
1440 | word-wrap: 1.2.3
1441 | dev: true
1442 |
1443 | /p-limit@3.1.0:
1444 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1445 | engines: {node: '>=10'}
1446 | dependencies:
1447 | yocto-queue: 0.1.0
1448 | dev: true
1449 |
1450 | /p-locate@5.0.0:
1451 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1452 | engines: {node: '>=10'}
1453 | dependencies:
1454 | p-limit: 3.1.0
1455 | dev: true
1456 |
1457 | /parent-module@1.0.1:
1458 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1459 | engines: {node: '>=6'}
1460 | dependencies:
1461 | callsites: 3.1.0
1462 | dev: true
1463 |
1464 | /path-exists@4.0.0:
1465 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1466 | engines: {node: '>=8'}
1467 | dev: true
1468 |
1469 | /path-is-absolute@1.0.1:
1470 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1471 | engines: {node: '>=0.10.0'}
1472 | dev: true
1473 |
1474 | /path-key@3.1.1:
1475 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1476 | engines: {node: '>=8'}
1477 | dev: true
1478 |
1479 | /path-type@4.0.0:
1480 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1481 | engines: {node: '>=8'}
1482 | dev: true
1483 |
1484 | /picocolors@1.0.0:
1485 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1486 | dev: true
1487 |
1488 | /picomatch@2.3.1:
1489 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1490 | engines: {node: '>=8.6'}
1491 | dev: true
1492 |
1493 | /postcss@8.4.23:
1494 | resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
1495 | engines: {node: ^10 || ^12 || >=14}
1496 | dependencies:
1497 | nanoid: 3.3.6
1498 | picocolors: 1.0.0
1499 | source-map-js: 1.0.2
1500 | dev: true
1501 |
1502 | /prelude-ls@1.2.1:
1503 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1504 | engines: {node: '>= 0.8.0'}
1505 | dev: true
1506 |
1507 | /prettier@2.8.8:
1508 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
1509 | engines: {node: '>=10.13.0'}
1510 | hasBin: true
1511 | dev: true
1512 |
1513 | /punycode@2.3.0:
1514 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1515 | engines: {node: '>=6'}
1516 | dev: true
1517 |
1518 | /queue-microtask@1.2.3:
1519 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1520 | dev: true
1521 |
1522 | /react-dom@18.2.0(react@18.2.0):
1523 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1524 | peerDependencies:
1525 | react: ^18.2.0
1526 | dependencies:
1527 | loose-envify: 1.4.0
1528 | react: 18.2.0
1529 | scheduler: 0.23.0
1530 | dev: false
1531 |
1532 | /react-refresh@0.14.0:
1533 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
1534 | engines: {node: '>=0.10.0'}
1535 | dev: true
1536 |
1537 | /react@18.2.0:
1538 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1539 | engines: {node: '>=0.10.0'}
1540 | dependencies:
1541 | loose-envify: 1.4.0
1542 | dev: false
1543 |
1544 | /resolve-from@4.0.0:
1545 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1546 | engines: {node: '>=4'}
1547 | dev: true
1548 |
1549 | /reusify@1.0.4:
1550 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1551 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1552 | dev: true
1553 |
1554 | /rimraf@3.0.2:
1555 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1556 | hasBin: true
1557 | dependencies:
1558 | glob: 7.2.3
1559 | dev: true
1560 |
1561 | /rollup@3.21.0:
1562 | resolution: {integrity: sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==}
1563 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1564 | hasBin: true
1565 | optionalDependencies:
1566 | fsevents: 2.3.2
1567 | dev: true
1568 |
1569 | /run-parallel@1.2.0:
1570 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1571 | dependencies:
1572 | queue-microtask: 1.2.3
1573 | dev: true
1574 |
1575 | /scheduler@0.23.0:
1576 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1577 | dependencies:
1578 | loose-envify: 1.4.0
1579 | dev: false
1580 |
1581 | /semver@6.3.0:
1582 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1583 | hasBin: true
1584 | dev: true
1585 |
1586 | /semver@7.5.0:
1587 | resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==}
1588 | engines: {node: '>=10'}
1589 | hasBin: true
1590 | dependencies:
1591 | lru-cache: 6.0.0
1592 | dev: true
1593 |
1594 | /shebang-command@2.0.0:
1595 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1596 | engines: {node: '>=8'}
1597 | dependencies:
1598 | shebang-regex: 3.0.0
1599 | dev: true
1600 |
1601 | /shebang-regex@3.0.0:
1602 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1603 | engines: {node: '>=8'}
1604 | dev: true
1605 |
1606 | /slash@3.0.0:
1607 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1608 | engines: {node: '>=8'}
1609 | dev: true
1610 |
1611 | /source-map-js@1.0.2:
1612 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1613 | engines: {node: '>=0.10.0'}
1614 | dev: true
1615 |
1616 | /strip-ansi@6.0.1:
1617 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1618 | engines: {node: '>=8'}
1619 | dependencies:
1620 | ansi-regex: 5.0.1
1621 | dev: true
1622 |
1623 | /strip-json-comments@3.1.1:
1624 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1625 | engines: {node: '>=8'}
1626 | dev: true
1627 |
1628 | /supports-color@5.5.0:
1629 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1630 | engines: {node: '>=4'}
1631 | dependencies:
1632 | has-flag: 3.0.0
1633 | dev: true
1634 |
1635 | /supports-color@7.2.0:
1636 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1637 | engines: {node: '>=8'}
1638 | dependencies:
1639 | has-flag: 4.0.0
1640 | dev: true
1641 |
1642 | /text-table@0.2.0:
1643 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1644 | dev: true
1645 |
1646 | /to-fast-properties@2.0.0:
1647 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
1648 | engines: {node: '>=4'}
1649 | dev: true
1650 |
1651 | /to-regex-range@5.0.1:
1652 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1653 | engines: {node: '>=8.0'}
1654 | dependencies:
1655 | is-number: 7.0.0
1656 | dev: true
1657 |
1658 | /tslib@1.14.1:
1659 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
1660 | dev: true
1661 |
1662 | /tsutils@3.21.0(typescript@5.0.2):
1663 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
1664 | engines: {node: '>= 6'}
1665 | peerDependencies:
1666 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
1667 | dependencies:
1668 | tslib: 1.14.1
1669 | typescript: 5.0.2
1670 | dev: true
1671 |
1672 | /type-check@0.4.0:
1673 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1674 | engines: {node: '>= 0.8.0'}
1675 | dependencies:
1676 | prelude-ls: 1.2.1
1677 | dev: true
1678 |
1679 | /type-fest@0.20.2:
1680 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1681 | engines: {node: '>=10'}
1682 | dev: true
1683 |
1684 | /typescript@5.0.2:
1685 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==}
1686 | engines: {node: '>=12.20'}
1687 | hasBin: true
1688 | dev: true
1689 |
1690 | /update-browserslist-db@1.0.11(browserslist@4.21.5):
1691 | resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
1692 | hasBin: true
1693 | peerDependencies:
1694 | browserslist: '>= 4.21.0'
1695 | dependencies:
1696 | browserslist: 4.21.5
1697 | escalade: 3.1.1
1698 | picocolors: 1.0.0
1699 | dev: true
1700 |
1701 | /uri-js@4.4.1:
1702 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1703 | dependencies:
1704 | punycode: 2.3.0
1705 | dev: true
1706 |
1707 | /vite@4.3.2:
1708 | resolution: {integrity: sha512-9R53Mf+TBoXCYejcL+qFbZde+eZveQLDYd9XgULILLC1a5ZwPaqgmdVpL8/uvw2BM/1TzetWjglwm+3RO+xTyw==}
1709 | engines: {node: ^14.18.0 || >=16.0.0}
1710 | hasBin: true
1711 | peerDependencies:
1712 | '@types/node': '>= 14'
1713 | less: '*'
1714 | sass: '*'
1715 | stylus: '*'
1716 | sugarss: '*'
1717 | terser: ^5.4.0
1718 | peerDependenciesMeta:
1719 | '@types/node':
1720 | optional: true
1721 | less:
1722 | optional: true
1723 | sass:
1724 | optional: true
1725 | stylus:
1726 | optional: true
1727 | sugarss:
1728 | optional: true
1729 | terser:
1730 | optional: true
1731 | dependencies:
1732 | esbuild: 0.17.18
1733 | postcss: 8.4.23
1734 | rollup: 3.21.0
1735 | optionalDependencies:
1736 | fsevents: 2.3.2
1737 | dev: true
1738 |
1739 | /which@2.0.2:
1740 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1741 | engines: {node: '>= 8'}
1742 | hasBin: true
1743 | dependencies:
1744 | isexe: 2.0.0
1745 | dev: true
1746 |
1747 | /word-wrap@1.2.3:
1748 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
1749 | engines: {node: '>=0.10.0'}
1750 | dev: true
1751 |
1752 | /wrappy@1.0.2:
1753 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1754 | dev: true
1755 |
1756 | /yallist@3.1.1:
1757 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1758 | dev: true
1759 |
1760 | /yallist@4.0.0:
1761 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
1762 | dev: true
1763 |
1764 | /yocto-queue@0.1.0:
1765 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1766 | engines: {node: '>=10'}
1767 | dev: true
1768 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/index.tsx:
--------------------------------------------------------------------------------
1 | import {
2 | type CSSProperties,
3 | type ReactNode,
4 | useEffect,
5 | useRef,
6 | useState
7 | } from 'react'
8 |
9 | function nextTick(fn: () => void) {
10 | return Promise.resolve().then(fn)
11 | }
12 |
13 | /**
14 | * 防抖函数
15 | * @param {Function} fn
16 | * @param {number} delay
17 | * @returns {() => void}
18 | */
19 | // eslint-disable-next-line @typescript-eslint/ban-types
20 | function debounce(fn: Function, delay: number): () => void {
21 | let timer: number
22 | return function (...args: any[]): void {
23 | if (timer) clearTimeout(timer)
24 | timer = setTimeout(
25 | () => {
26 | // eslint-disable-next-line prefer-spread
27 | typeof fn === 'function' && fn.apply(null, args)
28 | clearTimeout(timer)
29 | },
30 | delay > 0 ? delay : 100
31 | )
32 | }
33 | }
34 |
35 | type IAutoScale =
36 | | boolean
37 | | {
38 | x?: boolean
39 | y?: boolean
40 | }
41 |
42 | interface Options {
43 | children?: ReactNode
44 | autoScale?: IAutoScale
45 | fullScreen?: boolean
46 | width: number | string
47 | height: number | string
48 | bodyOverflowHidden?: boolean
49 | delay?: number
50 | boxStyle?: CSSProperties
51 | wrapperStyle?: CSSProperties
52 | }
53 |
54 | export default function RScaleScreen(props: Options) {
55 | const {
56 | width,
57 | height,
58 | autoScale = true,
59 | bodyOverflowHidden = true,
60 | delay = 500
61 | } = props
62 | let bodyOverflow: string
63 | const elRef = useRef(null)
64 | const [size, setSize] = useState({
65 | width,
66 | height,
67 | originalHeight: 0,
68 | originalWidth: 0
69 | })
70 |
71 | const styles: Record<'box' | 'wrapper', CSSProperties> = {
72 | box: {
73 | overflow: 'hidden',
74 | backgroundSize: `100% 100%`,
75 | backgroundColor: `#000`,
76 | width: `100vw`,
77 | height: `100vh`
78 | },
79 | wrapper: {
80 | transitionProperty: `all`,
81 | transitionTimingFunction: `cubic-bezier(0.4, 0, 0.2, 1)`,
82 | transitionDuration: `500ms`,
83 | position: `relative`,
84 | overflow: `hidden`,
85 | zIndex: 100,
86 | transformOrigin: `left top`
87 | }
88 | }
89 |
90 | let observer: MutationObserver
91 |
92 | function initBodyStyle() {
93 | if (bodyOverflowHidden) {
94 | bodyOverflow = document.body.style.overflow
95 | document.body.style.overflow = 'hidden'
96 | }
97 | }
98 |
99 | function initSize() {
100 | return new Promise(resolve => {
101 | nextTick(() => {
102 | setSize({
103 | ...size,
104 | originalWidth: window.screen.width,
105 | originalHeight: window.screen.height
106 | })
107 | resolve()
108 | })
109 | })
110 | }
111 | function updateSize() {
112 | if (size.width && size.height) {
113 | elRef.current!.style.width = `${size.width}px`
114 | elRef.current!.style.height = `${size.height}px`
115 | } else {
116 | elRef.current!.style.width = `${size.originalWidth}px`
117 | elRef.current!.style.height = `${size.originalHeight}px`
118 | }
119 | }
120 |
121 | function handleAutoScale(scale: number) {
122 | if (!autoScale) return
123 | const domWidth = elRef.current!.clientWidth
124 | const domHeight = elRef.current!.clientHeight
125 | const currentWidth = document.body.clientWidth
126 | const currentHeight = document.body.clientHeight
127 | elRef.current!.style.transform = `scale(${scale},${scale})`
128 | let mx = Math.max((currentWidth - domWidth * scale) / 2, 0)
129 | let my = Math.max((currentHeight - domHeight * scale) / 2, 0)
130 | if (typeof props.autoScale === 'object') {
131 | !props.autoScale.x && (mx = 0)
132 | !props.autoScale.y && (my = 0)
133 | }
134 | elRef.current!.style.margin = `${my}px ${mx}px`
135 | }
136 | function updateScale() {
137 | // 获取真实视口尺寸
138 | const currentWidth = document.body.clientWidth
139 | const currentHeight = document.body.clientHeight
140 | // 获取大屏最终的宽高
141 | const realWidth = size.width || size.originalWidth
142 | const realHeight = size.height || size.originalHeight
143 | // 计算缩放比例
144 | const widthScale = currentWidth / +realWidth
145 | const heightScale = currentHeight / +realHeight
146 | // 若要铺满全屏,则按照各自比例缩放
147 | if (props.fullScreen) {
148 | elRef.current!.style.transform = `scale(${widthScale},${heightScale})`
149 | return false
150 | }
151 | // 按照宽高最小比例进行缩放
152 | const scale = Math.min(widthScale, heightScale)
153 | handleAutoScale(scale)
154 | }
155 | const onResize = debounce(async () => {
156 | if (!elRef.current) return
157 | await initSize()
158 | updateSize()
159 | updateScale()
160 | }, delay)
161 |
162 | function initMutationObserver() {
163 | observer = new MutationObserver(() => {
164 | onResize()
165 | })
166 |
167 | observer.observe(elRef.current!, {
168 | attributes: true,
169 | attributeFilter: ['style'],
170 | attributeOldValue: true
171 | })
172 | }
173 |
174 | async function initState() {
175 | initBodyStyle()
176 | initMutationObserver()
177 | await initSize()
178 | updateSize()
179 | updateScale()
180 | window.addEventListener('resize', onResize)
181 | }
182 | useEffect(() => {
183 | initState()
184 | return () => {
185 | observer.disconnect()
186 | window.removeEventListener('resize', onResize)
187 | if (bodyOverflowHidden) {
188 | document.body.style.overflow = bodyOverflow
189 | }
190 | }
191 | }, [])
192 |
193 | return (
194 |
198 |
203 | {props.children}
204 |
205 |
206 | )
207 | }
208 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "target": "ESNext",
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 | "noEmit": false,
9 | "emitDeclarationOnly": true,
10 | "declaration": true,
11 | "declarationDir": "dist/types",
12 | "esModuleInterop": true,
13 |
14 | /* Bundler mode */
15 | "moduleResolution": "bundler",
16 | "allowImportingTsExtensions": true,
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "jsx": "react-jsx",
20 |
21 | /* Linting */
22 | "strict": true,
23 | "noUnusedLocals": true,
24 | "noUnusedParameters": true,
25 | "noFallthroughCasesInSwitch": true,
26 | "allowSyntheticDefaultImports": true
27 | },
28 | "include": ["src"],
29 | "references": [{ "path": "./tsconfig.node.json" }]
30 | }
31 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "bundler",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "include": ["vite.config.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 | // https://vitejs.dev/config/
4 | export default defineConfig({
5 | plugins: [react()],
6 | build: {
7 | lib: {
8 | entry: './src/index.tsx',
9 | name: 'RScaleScreen'
10 | },
11 | rollupOptions: {
12 | external: ['react', 'react-dom'],
13 | output: {
14 | globals: {
15 | react: 'React',
16 | 'react-dom': 'ReactDOM'
17 | }
18 | }
19 | }
20 | }
21 | })
22 |
--------------------------------------------------------------------------------