├── .gitignore ├── LICENSE ├── README.md ├── example ├── .npmignore ├── .parcel-cache │ ├── 0315d36a27db4833.txt │ ├── 0d2ab2907ad82783 │ ├── 1b4641a9450aa6ca │ ├── a65c4486eb04c3b4 │ ├── data.mdb │ ├── e32116cab0c52369 │ ├── ed7c7f7eaec64393 │ └── lock.mdb ├── index.html ├── index.less ├── index.tsx ├── package.json ├── package1.json ├── tsconfig.json └── yarn.lock ├── package.json ├── src ├── DragArea.tsx ├── DragItem.tsx ├── index.tsx ├── types.ts └── utils.ts ├── test └── blah.test.tsx ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | .cache 5 | dist 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Yangjunjie 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-rnd-dragline 2 | 这是一个基于 react-rnd 实现的拖拽组件,在rnd的功能基础上增加了拖拽时显示辅助线及吸附的功能。 3 | 4 | # 安装 5 | $ npm i react-rnd-dragline 6 | 7 | or 8 | 9 | $ yarn add react-rnd-dragline 10 | 11 | # 使用 12 | 13 | ## 属性 14 | 15 | + DragArea 16 | + bounds: RndProps['bounds'] 17 | 18 | 默认值为空 "" 19 | 20 | 拖拽边界,应用到所有DragItem上,也可以单独在DragItem上使用 21 | + guidelineColor: string 22 | 23 | 辅助线颜色,默认值:'#448ef7' 24 | + guidelineWidth: number 25 | 26 | 辅助线宽度,默认值:1 27 | + onAdsorb: boolean 28 | 29 | 是否开启吸附效果,默认值:ture 30 | + adsorbThreshold: number 31 | 32 | 吸附阈值,onAdsorb为ture时生效,默认值为:5 33 | 34 | + DragItem 35 | 继承 `react-rnd`的所有属性,更多属性请参考 [react-rnd](https://www.npmjs.com/package/react-rnd) 36 | 37 | ### 注: DragItem的Children样式有padding时,需要设置box-sizing为border-box 38 | ## 使用方法示例 39 | ```tsx 40 | import { DragArea, DragItem } from 'react-rnd-dragline'; 41 | import './index.less'; 42 | 43 | export default function IndexPage() { 44 | return ( 45 | 51 | 52 |
a
53 |
54 | 55 |
b
56 |
57 | 58 |
c
59 |
60 | 61 |
d
62 |
63 |
64 | ); 65 | } 66 | 67 | 68 | ``` 69 | -------------------------------------------------------------------------------- /example/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .cache 3 | dist -------------------------------------------------------------------------------- /example/.parcel-cache/0d2ab2907ad82783: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/0d2ab2907ad82783 -------------------------------------------------------------------------------- /example/.parcel-cache/1b4641a9450aa6ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/1b4641a9450aa6ca -------------------------------------------------------------------------------- /example/.parcel-cache/a65c4486eb04c3b4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/a65c4486eb04c3b4 -------------------------------------------------------------------------------- /example/.parcel-cache/data.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/data.mdb -------------------------------------------------------------------------------- /example/.parcel-cache/e32116cab0c52369: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/e32116cab0c52369 -------------------------------------------------------------------------------- /example/.parcel-cache/ed7c7f7eaec64393: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/ed7c7f7eaec64393 -------------------------------------------------------------------------------- /example/.parcel-cache/lock.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ectimi/react-rnd-dargline/83d9f9fc8e12e3b57d2a9be3b1aef4f27ac4332e/example/.parcel-cache/lock.mdb -------------------------------------------------------------------------------- /example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | react-rnd-dragline example 8 | 9 | 10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /example/index.less: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | width: 100%; 6 | height: 100%; 7 | } 8 | #root { 9 | width: 100%; 10 | height: 100%; 11 | } 12 | .t { 13 | padding: 20px; 14 | margin-left: 40px; 15 | color: #fff; 16 | box-sizing: border-box; 17 | } 18 | 19 | .t1 { 20 | margin-top: 20px; 21 | width: 100px; 22 | height: 100px; 23 | background-color: black; 24 | } 25 | .t2 { 26 | margin-top: 20px; 27 | width: 200px; 28 | height: 150px; 29 | background-color: blue; 30 | } 31 | .t3 { 32 | margin-top: 20px; 33 | width: 360px; 34 | height: 120px; 35 | background-color: green; 36 | } 37 | -------------------------------------------------------------------------------- /example/index.tsx: -------------------------------------------------------------------------------- 1 | import 'react-app-polyfill/ie11'; 2 | import * as React from 'react'; 3 | import * as ReactDOM from 'react-dom'; 4 | import { DragArea, DragItem } from '../.'; 5 | import './index.less'; 6 | 7 | function App() { 8 | return ( 9 | 15 | 16 |
a
17 |
18 | 19 |
b
20 |
21 | 22 |
c
23 |
24 | 25 |
d
26 |
27 |
28 | ); 29 | } 30 | 31 | ReactDOM.render(, document.getElementById('root')); 32 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "parcel index.html", 8 | "build": "parcel build index.html" 9 | }, 10 | "dependencies": { 11 | "parcel": "^2.5.0", 12 | "react-app-polyfill": "^1.0.0" 13 | }, 14 | "alias": { 15 | "react": "../node_modules/react", 16 | "react-dom": "../node_modules/react-dom/profiling", 17 | "scheduler/tracing": "../node_modules/scheduler/tracing-profiling" 18 | }, 19 | "devDependencies": { 20 | "@parcel/transformer-less": "2.5.0", 21 | "@types/react": "^16.9.11", 22 | "@types/react-dom": "^16.8.4", 23 | "typescript": "^3.4.5" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /example/package1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "parcel index.html", 8 | "build": "parcel build index.html", 9 | "preinstall": "npx npm-force-resolutions" 10 | }, 11 | "dependencies": { 12 | "react-app-polyfill": "^1.0.0" 13 | }, 14 | "alias": { 15 | "react": "../node_modules/react", 16 | "react-dom": "../node_modules/react-dom/profiling", 17 | "scheduler/tracing": "../node_modules/scheduler/tracing-profiling" 18 | }, 19 | "devDependencies": { 20 | "@types/react": "^16.9.11", 21 | "@types/react-dom": "^16.8.4", 22 | 23 | "typescript": "^3.4.5" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": false, 4 | "target": "es5", 5 | "module": "commonjs", 6 | "jsx": "react", 7 | "moduleResolution": "node", 8 | "noImplicitAny": false, 9 | "noUnusedLocals": false, 10 | "noUnusedParameters": false, 11 | "removeComments": true, 12 | "strictNullChecks": true, 13 | "preserveConstEnums": true, 14 | "sourceMap": true, 15 | "lib": ["es2015", "es2016", "dom"], 16 | "types": ["node"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /example/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.16.7" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" 8 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 9 | dependencies: 10 | "@babel/highlight" "^7.16.7" 11 | 12 | "@babel/helper-validator-identifier@^7.16.7": 13 | version "7.16.7" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" 15 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 16 | 17 | "@babel/highlight@^7.16.7": 18 | version "7.17.9" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" 20 | integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.16.7" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@lezer/common@^0.15.0", "@lezer/common@^0.15.7": 27 | version "0.15.12" 28 | resolved "https://registry.yarnpkg.com/@lezer/common/-/common-0.15.12.tgz#2f21aec551dd5fd7d24eb069f90f54d5bc6ee5e9" 29 | integrity sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig== 30 | 31 | "@lezer/lr@^0.15.4": 32 | version "0.15.8" 33 | resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" 34 | integrity sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg== 35 | dependencies: 36 | "@lezer/common" "^0.15.0" 37 | 38 | "@mischnic/json-sourcemap@^0.1.0": 39 | version "0.1.0" 40 | resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz#38af657be4108140a548638267d02a2ea3336507" 41 | integrity sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA== 42 | dependencies: 43 | "@lezer/common" "^0.15.7" 44 | "@lezer/lr" "^0.15.4" 45 | json5 "^2.2.1" 46 | 47 | "@parcel/bundler-default@2.5.0": 48 | version "2.5.0" 49 | resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.5.0.tgz#1f0b6d4893bb1a24f49fc7254a423134fb03741e" 50 | integrity sha512-7CJzE17SirCXjcRgBcnqWO/5EOA1raq/3OIKtT4cxbjpDQGHZpjpEEZiMNRpEpdNMxDSlsG8mAkXTYGL2VVWRw== 51 | dependencies: 52 | "@parcel/diagnostic" "2.5.0" 53 | "@parcel/hash" "2.5.0" 54 | "@parcel/plugin" "2.5.0" 55 | "@parcel/utils" "2.5.0" 56 | nullthrows "^1.1.1" 57 | 58 | "@parcel/cache@2.5.0": 59 | version "2.5.0" 60 | resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.5.0.tgz#957620b1b26bfd4f9bd7256ea25ef86e7d6f2816" 61 | integrity sha512-3kOO3cZQv0FAKhrMHGLdb4Qtzpmy78Q6jPN3u8eCY4yqeDTnyQBZvWNHoyCm5WlmL8y6Q6REYMbETLxSH1ggAQ== 62 | dependencies: 63 | "@parcel/fs" "2.5.0" 64 | "@parcel/logger" "2.5.0" 65 | "@parcel/utils" "2.5.0" 66 | lmdb "2.2.4" 67 | 68 | "@parcel/codeframe@2.5.0": 69 | version "2.5.0" 70 | resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.5.0.tgz#de73dcd69a36e9d0fed1f4361cabfd83df13244a" 71 | integrity sha512-qafqL8Vu2kr932cCWESoDEEoAeKVi7/xdzTBuhzEJng1AfmRT0rCbt/P4ao3RjiDyozPSjXsHOqM6GDZcto4eQ== 72 | dependencies: 73 | chalk "^4.1.0" 74 | 75 | "@parcel/compressor-raw@2.5.0": 76 | version "2.5.0" 77 | resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.5.0.tgz#8675d7474b84920e1e4682a5bbd9b417ebfc0bc5" 78 | integrity sha512-I5Zs+2f1ue4sTPdfT8BNsLfTZl48sMWLk2Io3elUJjH/SS9kO7ut5ChkuJtt77ZS35m0OF+ZCt3ICTJdnDG8eA== 79 | dependencies: 80 | "@parcel/plugin" "2.5.0" 81 | 82 | "@parcel/config-default@2.5.0": 83 | version "2.5.0" 84 | resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.5.0.tgz#31caa12f6d37f3ae1df68e639dc276039f927603" 85 | integrity sha512-r30V61958SONvP9I8KV8s44ZOFq0H219VyFjPysraSabHjZ+KMaCTQOuqaDtUMa272sHUQkBcZxKYj5jYPJlZg== 86 | dependencies: 87 | "@parcel/bundler-default" "2.5.0" 88 | "@parcel/compressor-raw" "2.5.0" 89 | "@parcel/namer-default" "2.5.0" 90 | "@parcel/optimizer-css" "2.5.0" 91 | "@parcel/optimizer-htmlnano" "2.5.0" 92 | "@parcel/optimizer-image" "2.5.0" 93 | "@parcel/optimizer-svgo" "2.5.0" 94 | "@parcel/optimizer-terser" "2.5.0" 95 | "@parcel/packager-css" "2.5.0" 96 | "@parcel/packager-html" "2.5.0" 97 | "@parcel/packager-js" "2.5.0" 98 | "@parcel/packager-raw" "2.5.0" 99 | "@parcel/packager-svg" "2.5.0" 100 | "@parcel/reporter-dev-server" "2.5.0" 101 | "@parcel/resolver-default" "2.5.0" 102 | "@parcel/runtime-browser-hmr" "2.5.0" 103 | "@parcel/runtime-js" "2.5.0" 104 | "@parcel/runtime-react-refresh" "2.5.0" 105 | "@parcel/runtime-service-worker" "2.5.0" 106 | "@parcel/transformer-babel" "2.5.0" 107 | "@parcel/transformer-css" "2.5.0" 108 | "@parcel/transformer-html" "2.5.0" 109 | "@parcel/transformer-image" "2.5.0" 110 | "@parcel/transformer-js" "2.5.0" 111 | "@parcel/transformer-json" "2.5.0" 112 | "@parcel/transformer-postcss" "2.5.0" 113 | "@parcel/transformer-posthtml" "2.5.0" 114 | "@parcel/transformer-raw" "2.5.0" 115 | "@parcel/transformer-react-refresh-wrap" "2.5.0" 116 | "@parcel/transformer-svg" "2.5.0" 117 | 118 | "@parcel/core@2.5.0": 119 | version "2.5.0" 120 | resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.5.0.tgz#13f60be9124a6a3e33aff32715acfc5ebade9dd2" 121 | integrity sha512-dygDmPsfAYJKTnUftcbEzjCik7AAaPbFvJW8ETYz8diyjkAG9y6hvCAZIrJE5pNOjFzg32en4v4UWv8Sqlzl9g== 122 | dependencies: 123 | "@mischnic/json-sourcemap" "^0.1.0" 124 | "@parcel/cache" "2.5.0" 125 | "@parcel/diagnostic" "2.5.0" 126 | "@parcel/events" "2.5.0" 127 | "@parcel/fs" "2.5.0" 128 | "@parcel/graph" "2.5.0" 129 | "@parcel/hash" "2.5.0" 130 | "@parcel/logger" "2.5.0" 131 | "@parcel/package-manager" "2.5.0" 132 | "@parcel/plugin" "2.5.0" 133 | "@parcel/source-map" "^2.0.0" 134 | "@parcel/types" "2.5.0" 135 | "@parcel/utils" "2.5.0" 136 | "@parcel/workers" "2.5.0" 137 | abortcontroller-polyfill "^1.1.9" 138 | base-x "^3.0.8" 139 | browserslist "^4.6.6" 140 | clone "^2.1.1" 141 | dotenv "^7.0.0" 142 | dotenv-expand "^5.1.0" 143 | json5 "^2.2.0" 144 | msgpackr "^1.5.4" 145 | nullthrows "^1.1.1" 146 | semver "^5.7.1" 147 | 148 | "@parcel/css-darwin-arm64@1.8.2": 149 | version "1.8.2" 150 | resolved "https://registry.yarnpkg.com/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.8.2.tgz#ac26b249e9f2ade2b674f51b8b1684901cf79449" 151 | integrity sha512-p5etxX3kPCuEQcipjqH9yc5j0x5/Yc++uB4MvG/sFbRgL2gI2zUuRo9sIgqA21boOP8lE4bQgz1ovPD/W1hj+Q== 152 | 153 | "@parcel/css-darwin-x64@1.8.2": 154 | version "1.8.2" 155 | resolved "https://registry.yarnpkg.com/@parcel/css-darwin-x64/-/css-darwin-x64-1.8.2.tgz#cf976783475e93f3feea09404bb946181b12bef6" 156 | integrity sha512-c3xi5DXRZYec5db4KPTxp69eHbomOuasgZNiuPPOi80k7jlOwfzCFQs0h6/KwWvTcJrKEFsLl8BKJU/aX7mETw== 157 | 158 | "@parcel/css-linux-arm-gnueabihf@1.8.2": 159 | version "1.8.2" 160 | resolved "https://registry.yarnpkg.com/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.8.2.tgz#e87ce228a81a5147e4d10c4b0c041beb4b28ad2a" 161 | integrity sha512-+ih3+mMpwbwtOjr/XW5pP0frsV1PMN+Qz7jCAM84h8xX+8UE/1IR0UVi3EPa8wQiIlcVcEwszQ1MV2UHacvo/A== 162 | 163 | "@parcel/css-linux-arm64-gnu@1.8.2": 164 | version "1.8.2" 165 | resolved "https://registry.yarnpkg.com/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.8.2.tgz#bedae0a7ff3f52003a6c4df0b20b65bced9dcc3a" 166 | integrity sha512-jIoyXbjJ1trUHXtyJhi3hlF1ck6xM4CDyaY5N6eN+3+ovkdw6wxog9IiheYJ1jf9ellYevLvTF5kiYE9MiP04A== 167 | 168 | "@parcel/css-linux-arm64-musl@1.8.2": 169 | version "1.8.2" 170 | resolved "https://registry.yarnpkg.com/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.8.2.tgz#be3b912c0127745dda70757e18d7e7628118076d" 171 | integrity sha512-QVTc5a+HatoywIei3djKYmp3s5dbI2Q3QaYZf3gqhyjOkeC7bm6j5eeNzFO+wa5xtga5jdHkIuTRrJ/wCojKKw== 172 | 173 | "@parcel/css-linux-x64-gnu@1.8.2": 174 | version "1.8.2" 175 | resolved "https://registry.yarnpkg.com/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.8.2.tgz#b38a07f461fd45657676326ee50ee5b6abccfd2b" 176 | integrity sha512-9r2tSfa6i3ZQ3a6C9XufJWuTv3LB7JYzxzEqsI35SSA8D/DrfAHMaIhqog5wSxKZRWmQxckh2wdT96eIIGHSGA== 177 | 178 | "@parcel/css-linux-x64-musl@1.8.2": 179 | version "1.8.2" 180 | resolved "https://registry.yarnpkg.com/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.8.2.tgz#e7ce666f76943bfb73998e0b3908c2636f239f99" 181 | integrity sha512-5SetLWkxXRQ3NU6QwwbGf9tOmGW2m1cGt07Moybbe4RCXOY6R5wAYUtauZUp7pD/fJlE9mHge4jnNHKpVO9pvw== 182 | 183 | "@parcel/css-win32-x64-msvc@1.8.2": 184 | version "1.8.2" 185 | resolved "https://registry.yarnpkg.com/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.8.2.tgz#cbef99d007d19511c1d6bd0b0124d988f180d343" 186 | integrity sha512-/EdW5Ejlnkvc/AYrAi/FmLNvM6a6eAx+A4Y7oW+8JSMvk6bYa2zmXi7XLU/QOQuH2VQa/3gIIMA+sYjPndvDpw== 187 | 188 | "@parcel/css@^1.8.1": 189 | version "1.8.2" 190 | resolved "https://registry.yarnpkg.com/@parcel/css/-/css-1.8.2.tgz#98647159c8f1c7ce23675cd3c742dacbd55f73f5" 191 | integrity sha512-3vTyKHy2LnZ3YJEut+UQPVIxsaY/mdGk7cDXtmvH4xR48Pd6rYzChHCMl4Ru2DUkCBpr0KCQRPZTdYcsJhUmIA== 192 | dependencies: 193 | detect-libc "^1.0.3" 194 | optionalDependencies: 195 | "@parcel/css-darwin-arm64" "1.8.2" 196 | "@parcel/css-darwin-x64" "1.8.2" 197 | "@parcel/css-linux-arm-gnueabihf" "1.8.2" 198 | "@parcel/css-linux-arm64-gnu" "1.8.2" 199 | "@parcel/css-linux-arm64-musl" "1.8.2" 200 | "@parcel/css-linux-x64-gnu" "1.8.2" 201 | "@parcel/css-linux-x64-musl" "1.8.2" 202 | "@parcel/css-win32-x64-msvc" "1.8.2" 203 | 204 | "@parcel/diagnostic@2.5.0": 205 | version "2.5.0" 206 | resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.5.0.tgz#8c6891924e04b625d50176aae141d24dc8dddf87" 207 | integrity sha512-KiMGGRpEV7wl5gjcxBKcgX84a+cG+IEn94gwy5LK3lENR09nuKShqqgKGAmj/17CobJgw1QNP94/H4Md+oxIWg== 208 | dependencies: 209 | "@mischnic/json-sourcemap" "^0.1.0" 210 | nullthrows "^1.1.1" 211 | 212 | "@parcel/events@2.5.0": 213 | version "2.5.0" 214 | resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.5.0.tgz#5e108a01a5aa3075038d2a2081fde0432d2559e7" 215 | integrity sha512-Gc2LPwL1H34Ony5MENbKZg7wvCscZ4x9y7Fu92sfbdWpLo3K13hVtsX3TMIIgYt3B7R7OmO8yR880U2T+JfVkQ== 216 | 217 | "@parcel/fs-search@2.5.0": 218 | version "2.5.0" 219 | resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.5.0.tgz#d96b7c46c2326398e52c9c14cdd07559d598436d" 220 | integrity sha512-uBONkz9ZCNSOqbPGWJY3MNl+pqBTfvzHH9+4UhzHEHPArvK2oD0+syYPVE60+zGrxybXTESYMCJp4bHvH6Z2hA== 221 | dependencies: 222 | detect-libc "^1.0.3" 223 | 224 | "@parcel/fs@2.5.0": 225 | version "2.5.0" 226 | resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.5.0.tgz#2bcb6ccf43826f2bfca9e1ca644be3bf5252c400" 227 | integrity sha512-YYr14BWtx/bJ+hu6PPQQ6G/3omOTWgVqEw+UFI3iQH3P6+e0LRXW/Ja1yAcJeepGcTwIP0opnXZBQOm8PBQ2SA== 228 | dependencies: 229 | "@parcel/fs-search" "2.5.0" 230 | "@parcel/types" "2.5.0" 231 | "@parcel/utils" "2.5.0" 232 | "@parcel/watcher" "^2.0.0" 233 | "@parcel/workers" "2.5.0" 234 | 235 | "@parcel/graph@2.5.0": 236 | version "2.5.0" 237 | resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-2.5.0.tgz#bd8898d555366a4b261766e22c8652ad869efaff" 238 | integrity sha512-qa2VtG08dJyTaWrxYAkMIlkoDRSPoiqLDNxxHKplkcxAjXBUw0/AkWaz82VO5r1G6jfOj+nM30ajH9uygZYwbw== 239 | dependencies: 240 | "@parcel/utils" "2.5.0" 241 | nullthrows "^1.1.1" 242 | 243 | "@parcel/hash@2.5.0": 244 | version "2.5.0" 245 | resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.5.0.tgz#f2a05f7090f8f27ce8b53afd6272183763101ba7" 246 | integrity sha512-47JL0XpB7UvIW6Ijf8vv+yVMt9dLvB/lRlBHFmAkmovisueVMVbYD7smxVZnCSehD8UH8BcymKbMzyL5dimgoQ== 247 | dependencies: 248 | detect-libc "^1.0.3" 249 | xxhash-wasm "^0.4.2" 250 | 251 | "@parcel/logger@2.5.0": 252 | version "2.5.0" 253 | resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.5.0.tgz#c618b780b80984d821c5bc53f27527fd540f4d0f" 254 | integrity sha512-pT1L3ceH6trL1N3I3r2HawPjz/PCubOo/Kazu7IeXsMsKVjj1a6AeieZHzkNZIbhiGPtm/cHbBNLz2zTWDLeOA== 255 | dependencies: 256 | "@parcel/diagnostic" "2.5.0" 257 | "@parcel/events" "2.5.0" 258 | 259 | "@parcel/markdown-ansi@2.5.0": 260 | version "2.5.0" 261 | resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.5.0.tgz#e0751d6c8fcd0aa4c8ee0a08d27e9d4d64705410" 262 | integrity sha512-ixkNF3KWIqxMlfxTe9Gb2cp/uNmklQev8VEUxujMVxmUfGyQs4859zdJIQlIinabWYhArhsXATkVf3MzCUN6TQ== 263 | dependencies: 264 | chalk "^4.1.0" 265 | 266 | "@parcel/namer-default@2.5.0": 267 | version "2.5.0" 268 | resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.5.0.tgz#1e1950a74aca825a753c9aa8e8c37dfb46ef7ef3" 269 | integrity sha512-ahGQqHJzsWE5Qux8zXMAU+lyNBOl+ZpcOFzRGE2DWOsmAlytsHl7DBVCQvzUyNBFg1/HmIj+7D4efv2kjR7rTg== 270 | dependencies: 271 | "@parcel/diagnostic" "2.5.0" 272 | "@parcel/plugin" "2.5.0" 273 | nullthrows "^1.1.1" 274 | 275 | "@parcel/node-resolver-core@2.5.0": 276 | version "2.5.0" 277 | resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.5.0.tgz#4aaf5c8eb57b56d1257ca02cae5b88be790be6bd" 278 | integrity sha512-XQvpguiIwQcu75cscLDFOVhjsjuPzXbuMaaZ7XxxUEl0PscIgu/GfKYxTfTruN3cRl+CaQH6qBAMfjLaFng6lQ== 279 | dependencies: 280 | "@parcel/diagnostic" "2.5.0" 281 | "@parcel/utils" "2.5.0" 282 | nullthrows "^1.1.1" 283 | 284 | "@parcel/optimizer-css@2.5.0": 285 | version "2.5.0" 286 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.5.0.tgz#4f64bd0aa29727802b29eaea31aedfbb15ead5e9" 287 | integrity sha512-J00bLF+4SsnKc+YbYrNuBr44/zz3cg++CoXteXhH27PxP1rScGQx36Rui8WORgil5mlX2VYN79DuqJC7V3Ynbg== 288 | dependencies: 289 | "@parcel/css" "^1.8.1" 290 | "@parcel/diagnostic" "2.5.0" 291 | "@parcel/plugin" "2.5.0" 292 | "@parcel/source-map" "^2.0.0" 293 | "@parcel/utils" "2.5.0" 294 | browserslist "^4.6.6" 295 | nullthrows "^1.1.1" 296 | 297 | "@parcel/optimizer-htmlnano@2.5.0": 298 | version "2.5.0" 299 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.5.0.tgz#ffd8b3ef16300f957209cf20e7908a81d6f5b4af" 300 | integrity sha512-Fr0zPqgxoNaOVdROAjNGDWCts3+wByNQ82Mxhu8Tzc25A2cPjcr1H2sa/TE3hf79c92DxdKf2FaC1ZOgR5YPdg== 301 | dependencies: 302 | "@parcel/plugin" "2.5.0" 303 | htmlnano "^2.0.0" 304 | nullthrows "^1.1.1" 305 | posthtml "^0.16.5" 306 | svgo "^2.4.0" 307 | 308 | "@parcel/optimizer-image@2.5.0": 309 | version "2.5.0" 310 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.5.0.tgz#c80a463bf1dd82782a1f80504c8d660ec7917bc0" 311 | integrity sha512-nbo2pdnAt21WLGjzTpsE8ZEL0xNoP7c3wBj9y70Pysmasg1SrRVCbfE8jTy+lHBQwq2yjC6lV/Usv+9lfA7S/w== 312 | dependencies: 313 | "@parcel/diagnostic" "2.5.0" 314 | "@parcel/plugin" "2.5.0" 315 | "@parcel/utils" "2.5.0" 316 | "@parcel/workers" "2.5.0" 317 | detect-libc "^1.0.3" 318 | 319 | "@parcel/optimizer-svgo@2.5.0": 320 | version "2.5.0" 321 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.5.0.tgz#b1c809aa2fbf9229dc3cb62bab399b4576fd8b35" 322 | integrity sha512-pgZqwU0RLc/wr4WcQY/W1GJmddnEANDEpz1mdppUOqBz1EfTQ7zh5NgUA3hV1i05Hbecp3mHSvXJPV0mhNOl5Q== 323 | dependencies: 324 | "@parcel/diagnostic" "2.5.0" 325 | "@parcel/plugin" "2.5.0" 326 | "@parcel/utils" "2.5.0" 327 | svgo "^2.4.0" 328 | 329 | "@parcel/optimizer-terser@2.5.0": 330 | version "2.5.0" 331 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.5.0.tgz#16b3320b34135edac69751ab2f3537a346133086" 332 | integrity sha512-PZ3UHBGfjE49/Jloopsd38Hxg4qzsrdepWP53mCuVP7Aw605Y4QtYuB1ho3VV0oXfKQVq+uI7lVIBsuW4K6vqA== 333 | dependencies: 334 | "@parcel/diagnostic" "2.5.0" 335 | "@parcel/plugin" "2.5.0" 336 | "@parcel/source-map" "^2.0.0" 337 | "@parcel/utils" "2.5.0" 338 | nullthrows "^1.1.1" 339 | terser "^5.2.0" 340 | 341 | "@parcel/package-manager@2.5.0": 342 | version "2.5.0" 343 | resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.5.0.tgz#9c82236e4e0fa158008b5bc5298def1085913b30" 344 | integrity sha512-zTuF55/lITUjw9dUU/X0HiF++589xbPXw/zUiG9T6s8BQThLvrxAhYP89S719pw7cTqDimGkTxnIuK+a0djEkg== 345 | dependencies: 346 | "@parcel/diagnostic" "2.5.0" 347 | "@parcel/fs" "2.5.0" 348 | "@parcel/logger" "2.5.0" 349 | "@parcel/types" "2.5.0" 350 | "@parcel/utils" "2.5.0" 351 | "@parcel/workers" "2.5.0" 352 | semver "^5.7.1" 353 | 354 | "@parcel/packager-css@2.5.0": 355 | version "2.5.0" 356 | resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.5.0.tgz#54e36cfee9b32a8be05db7e3a2c37b28f26fa0d1" 357 | integrity sha512-c0mGBFdVSPhAxaX3+zN8KEIqOOUhkIPKbZex1pnGYfy03Qe2/Mb4nyt5DAGlw9gjka1UCHIN/wszLmKC8YyUeg== 358 | dependencies: 359 | "@parcel/plugin" "2.5.0" 360 | "@parcel/source-map" "^2.0.0" 361 | "@parcel/utils" "2.5.0" 362 | nullthrows "^1.1.1" 363 | 364 | "@parcel/packager-html@2.5.0": 365 | version "2.5.0" 366 | resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.5.0.tgz#c390ca232753d6df73cdae7eff6f96ab6c973600" 367 | integrity sha512-ZFGUPRMWKrm8kQHdkEJ5S22C05qpSymx+o+57EfuNjCrGyj3M59WyGYYXYJ175bFYZ/jp5yy+VxMh6fZefe+Pw== 368 | dependencies: 369 | "@parcel/plugin" "2.5.0" 370 | "@parcel/types" "2.5.0" 371 | "@parcel/utils" "2.5.0" 372 | nullthrows "^1.1.1" 373 | posthtml "^0.16.5" 374 | 375 | "@parcel/packager-js@2.5.0": 376 | version "2.5.0" 377 | resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.5.0.tgz#3a696207587f57bf5e0c93b2e36db0758f896bea" 378 | integrity sha512-aJAKOTgXdxO3V9O7+2DCVOtne128WwXmUAOVThnMRo7f3zMVSAR7Mxc9pEsuTzPfj8UBXgFBRfdJUSCgsMxiSw== 379 | dependencies: 380 | "@parcel/diagnostic" "2.5.0" 381 | "@parcel/hash" "2.5.0" 382 | "@parcel/plugin" "2.5.0" 383 | "@parcel/source-map" "^2.0.0" 384 | "@parcel/utils" "2.5.0" 385 | globals "^13.2.0" 386 | nullthrows "^1.1.1" 387 | 388 | "@parcel/packager-raw@2.5.0": 389 | version "2.5.0" 390 | resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.5.0.tgz#ce0103c26667c93e5c04eda92691363e93aecb1a" 391 | integrity sha512-aHV0oogeiqxhxS1lsttw15EvG3DDWK3FV7+F+7hoaAy+xg89K56NTp6j43Jtw9iyU1/HnZRGBE2hF3C7N73oKw== 392 | dependencies: 393 | "@parcel/plugin" "2.5.0" 394 | 395 | "@parcel/packager-svg@2.5.0": 396 | version "2.5.0" 397 | resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.5.0.tgz#c6c62cc534ca4107bb724d81dc872ed64faa304d" 398 | integrity sha512-XSMFn30K/kpjcPpQqt88GmPJsNUSVL3RNeigXkIAcLpfO6Tb2eV4iOt4yVCagaDrRJ19alXut0TxjMm5bm41/g== 399 | dependencies: 400 | "@parcel/plugin" "2.5.0" 401 | "@parcel/types" "2.5.0" 402 | "@parcel/utils" "2.5.0" 403 | posthtml "^0.16.4" 404 | 405 | "@parcel/plugin@2.5.0": 406 | version "2.5.0" 407 | resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.5.0.tgz#ae24d9a709581483e0d494a9e09100f0e40956cf" 408 | integrity sha512-obtb6/Gql6YFQ86bdv75A2Noabx8679reFZeyfKKf0L7Lppx4DFQetXwM9XVy7Gx6hJ1Ekm3UMuuIyVJk33YHQ== 409 | dependencies: 410 | "@parcel/types" "2.5.0" 411 | 412 | "@parcel/reporter-cli@2.5.0": 413 | version "2.5.0" 414 | resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.5.0.tgz#f64ab15f5faef9c017ea67bf3378343684f267f3" 415 | integrity sha512-miJt2YbRJBmYSVeoUWUj8YL85Pwj1CmGQB0/btqhulGLH/Fvkbv6T4sJ4gl4l5xIt9mJQsZ70pOWwa8BId3rWw== 416 | dependencies: 417 | "@parcel/plugin" "2.5.0" 418 | "@parcel/types" "2.5.0" 419 | "@parcel/utils" "2.5.0" 420 | chalk "^4.1.0" 421 | term-size "^2.2.1" 422 | 423 | "@parcel/reporter-dev-server@2.5.0": 424 | version "2.5.0" 425 | resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.5.0.tgz#043daa2116358d8f806a89d4a7385fe9555a089f" 426 | integrity sha512-wvxAiW42AxJ3B8jtvowJcP4/cTV8zY48SfKg61YKYu1yUO+TtyJIjHQzDW2XuT34cIGFY97Gr0i+AVu44RyUuQ== 427 | dependencies: 428 | "@parcel/plugin" "2.5.0" 429 | "@parcel/utils" "2.5.0" 430 | 431 | "@parcel/resolver-default@2.5.0": 432 | version "2.5.0" 433 | resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.5.0.tgz#b107c59b4f8bbb013091916f349f5fc58e5dfab9" 434 | integrity sha512-39PkZpVr/+iYS11u+lA84vIsKm/yisltTVmUjlYsDnExiuV1c8OSbSdYZ3JMx+7CYPE0bWbosX2AGilIwIMWpQ== 435 | dependencies: 436 | "@parcel/node-resolver-core" "2.5.0" 437 | "@parcel/plugin" "2.5.0" 438 | 439 | "@parcel/runtime-browser-hmr@2.5.0": 440 | version "2.5.0" 441 | resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.5.0.tgz#5da8b803cc6bd8a0aac143521ea709f2d13a403f" 442 | integrity sha512-oPAo8Zf06gXCpt41nyvK7kv2HH1RrHAGgOqttyjStwAFlm5MZKs7BgtJzO58LfJN8g3sMY0cNdG17fB/4f8q6Q== 443 | dependencies: 444 | "@parcel/plugin" "2.5.0" 445 | "@parcel/utils" "2.5.0" 446 | 447 | "@parcel/runtime-js@2.5.0": 448 | version "2.5.0" 449 | resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.5.0.tgz#270369beef008f72e2c0814022f573817a12dba1" 450 | integrity sha512-gPC2PbNAiooULP71wF5twe4raekuXsR1Hw/ahITDoqsZdXHzG3CkoCjYL3CkmBGiKQgMMocCyN1E2oBzAH8Kyw== 451 | dependencies: 452 | "@parcel/plugin" "2.5.0" 453 | "@parcel/utils" "2.5.0" 454 | nullthrows "^1.1.1" 455 | 456 | "@parcel/runtime-react-refresh@2.5.0": 457 | version "2.5.0" 458 | resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.5.0.tgz#fc74342d77848ea61f364246df70673e83b5430f" 459 | integrity sha512-+8RuDKFdFYIQTrXG4MRhG9XqkkYEHn0zxKyOJ/IkDDfSEhY0na+EyhrneFUwIvDX63gLPkxceXAg0gwBqXPK/Q== 460 | dependencies: 461 | "@parcel/plugin" "2.5.0" 462 | "@parcel/utils" "2.5.0" 463 | react-refresh "^0.9.0" 464 | 465 | "@parcel/runtime-service-worker@2.5.0": 466 | version "2.5.0" 467 | resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.5.0.tgz#609ea02b27cae378f7d9f54820384f7e3494a749" 468 | integrity sha512-STuDlU0fPXeWpAmbayY7o04F0eHy6FTOFeT5KQ0PTxtdEa3Ey8QInP/NVE52Yv0aVQtesWukGrNEFCERlkbFRw== 469 | dependencies: 470 | "@parcel/plugin" "2.5.0" 471 | "@parcel/utils" "2.5.0" 472 | nullthrows "^1.1.1" 473 | 474 | "@parcel/source-map@^2.0.0": 475 | version "2.0.2" 476 | resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.0.2.tgz#9aa0b00518cee31d5634de6e9c924a5539b142c1" 477 | integrity sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA== 478 | dependencies: 479 | detect-libc "^1.0.3" 480 | 481 | "@parcel/transformer-babel@2.5.0": 482 | version "2.5.0" 483 | resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.5.0.tgz#f7f7563a2be9e8bccf7ef48dc61ef8b7be1c0ff0" 484 | integrity sha512-EFb866C9jCoBHIcebWF7goAcYj1wkObx0GDxshlazFtvym1RM27xSWWjRYyqb5+HNOxB3voaNvQOVjcD+DXjCA== 485 | dependencies: 486 | "@parcel/diagnostic" "2.5.0" 487 | "@parcel/plugin" "2.5.0" 488 | "@parcel/source-map" "^2.0.0" 489 | "@parcel/utils" "2.5.0" 490 | browserslist "^4.6.6" 491 | json5 "^2.2.0" 492 | nullthrows "^1.1.1" 493 | semver "^5.7.0" 494 | 495 | "@parcel/transformer-css@2.5.0": 496 | version "2.5.0" 497 | resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.5.0.tgz#8cbe2bd7299a8ef7a965b315da488dcbba1c43d3" 498 | integrity sha512-p8FOvKWWSbS6H8PbD9a0KZqyaKNpSD2BUTzSRYnNj3TBUv7/ZXaP6Om295XTQ/MPht1o7XTQzvfpF/7yEhr02Q== 499 | dependencies: 500 | "@parcel/css" "^1.8.1" 501 | "@parcel/diagnostic" "2.5.0" 502 | "@parcel/plugin" "2.5.0" 503 | "@parcel/source-map" "^2.0.0" 504 | "@parcel/utils" "2.5.0" 505 | browserslist "^4.6.6" 506 | nullthrows "^1.1.1" 507 | 508 | "@parcel/transformer-html@2.5.0": 509 | version "2.5.0" 510 | resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.5.0.tgz#665fecbcb05cf1a4148e752ab99bfaeabfa31051" 511 | integrity sha512-iEjNyAF0wQmY3DMw7FS+UzoOMng76UsSngh+WWA1E5lv5XyqrP8Mk2QLTJp1nWetUhSLhZr58LGmPYBTB4l9ZQ== 512 | dependencies: 513 | "@parcel/diagnostic" "2.5.0" 514 | "@parcel/hash" "2.5.0" 515 | "@parcel/plugin" "2.5.0" 516 | nullthrows "^1.1.1" 517 | posthtml "^0.16.5" 518 | posthtml-parser "^0.10.1" 519 | posthtml-render "^3.0.0" 520 | semver "^5.7.1" 521 | 522 | "@parcel/transformer-image@2.5.0": 523 | version "2.5.0" 524 | resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.5.0.tgz#c0523ea88fb4b6ae18fc7c65b08a5ba6dcd23abd" 525 | integrity sha512-vVEXTHZl8m/9yopgK0dWHLOQX2zOnghq6pZnWdWVG6fsvXZln7kP1YN5iwWDoADQYkiKzP+Ymn6UwP9pZpHFzA== 526 | dependencies: 527 | "@parcel/plugin" "2.5.0" 528 | "@parcel/workers" "2.5.0" 529 | nullthrows "^1.1.1" 530 | 531 | "@parcel/transformer-js@2.5.0": 532 | version "2.5.0" 533 | resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.5.0.tgz#268a6d34898d7c6515c5a64bae535d2c1a7f57a0" 534 | integrity sha512-Cp8Ic+Au3OcskCRZszmo47z3bqcZ7rfPv2xZYXpXY2TzEc3IV0bKje57bZektoY8LW9LkYM9iBO/WhkVoT6LIg== 535 | dependencies: 536 | "@parcel/diagnostic" "2.5.0" 537 | "@parcel/plugin" "2.5.0" 538 | "@parcel/source-map" "^2.0.0" 539 | "@parcel/utils" "2.5.0" 540 | "@parcel/workers" "2.5.0" 541 | "@swc/helpers" "^0.3.6" 542 | browserslist "^4.6.6" 543 | detect-libc "^1.0.3" 544 | nullthrows "^1.1.1" 545 | regenerator-runtime "^0.13.7" 546 | semver "^5.7.1" 547 | 548 | "@parcel/transformer-json@2.5.0": 549 | version "2.5.0" 550 | resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.5.0.tgz#9406b8f0cdd58e65f20fd381a75ece64d346858d" 551 | integrity sha512-661sByA7TkR6Lmxt+hqV4h2SAt+7lgc58DzmUYArpEl1fQnMuQuaB0kQeHzi6fDD2+2G6o7EC+DuwBZKa479TA== 552 | dependencies: 553 | "@parcel/plugin" "2.5.0" 554 | json5 "^2.2.0" 555 | 556 | "@parcel/transformer-less@2.5.0": 557 | version "2.5.0" 558 | resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.5.0.tgz#fdcf9abfcc9f5a5014174a1976538a2bb2ca0e70" 559 | integrity sha512-6p/Rf64J9ZMCi93dvkmP0VSdq7x++dcRjDQb5TJYBIR3N7D/nG5YWN83TQN/OI8uUkb+Q1RRTIi4uZuhEqDKaQ== 560 | dependencies: 561 | "@parcel/plugin" "2.5.0" 562 | "@parcel/source-map" "^2.0.0" 563 | less "^4.1.1" 564 | 565 | "@parcel/transformer-postcss@2.5.0": 566 | version "2.5.0" 567 | resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.5.0.tgz#bff3a36d5a1eb1af4b8c73b9fe5dc50804e449fa" 568 | integrity sha512-IPNlWElekdQHMTBqhdwJNBCQomuYyo7xgNBdnTrt9VJ+R5ihy6n7ZJSWIAJXAH9VZxETTtunfrzRtgkmtjTeZQ== 569 | dependencies: 570 | "@parcel/diagnostic" "2.5.0" 571 | "@parcel/hash" "2.5.0" 572 | "@parcel/plugin" "2.5.0" 573 | "@parcel/utils" "2.5.0" 574 | clone "^2.1.1" 575 | nullthrows "^1.1.1" 576 | postcss-value-parser "^4.2.0" 577 | semver "^5.7.1" 578 | 579 | "@parcel/transformer-posthtml@2.5.0": 580 | version "2.5.0" 581 | resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.5.0.tgz#d4c6558b0443ce94ec5ca823c265ebdf05f3af08" 582 | integrity sha512-AZxg1XD8OXOS4bEGEmBBR+X9T9qoFdVsbVUg498zzejYSka1ZQHF7TgLI/+pUnE+ZVYNIp7/G0xXqsRVKMKmdQ== 583 | dependencies: 584 | "@parcel/plugin" "2.5.0" 585 | "@parcel/utils" "2.5.0" 586 | nullthrows "^1.1.1" 587 | posthtml "^0.16.5" 588 | posthtml-parser "^0.10.1" 589 | posthtml-render "^3.0.0" 590 | semver "^5.7.1" 591 | 592 | "@parcel/transformer-raw@2.5.0": 593 | version "2.5.0" 594 | resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.5.0.tgz#5561945e2fd220ac38c0a21aad72175377d048bc" 595 | integrity sha512-I3zjE1u9+Wj90Qqs1V2FTm6iC6SAyOVUthwVZkZey+qbQG/ok682Ez2XjLu7MyQCo9BJNwF/nfOa1hHr3MaJEQ== 596 | dependencies: 597 | "@parcel/plugin" "2.5.0" 598 | 599 | "@parcel/transformer-react-refresh-wrap@2.5.0": 600 | version "2.5.0" 601 | resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.5.0.tgz#e1ef71218efb21a78677e8770fb6bcf753caf35c" 602 | integrity sha512-VPqVBxhTN4OQwcjsdyxrv+smjAm4s6dbSWAplgPwdOITMv+a0tjhhJU37WnRC+xxTrbEqRcOt96JvGOkPb8i7g== 603 | dependencies: 604 | "@parcel/plugin" "2.5.0" 605 | "@parcel/utils" "2.5.0" 606 | react-refresh "^0.9.0" 607 | 608 | "@parcel/transformer-svg@2.5.0": 609 | version "2.5.0" 610 | resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.5.0.tgz#78fd321e395923f720a886cb5b5c4fae7101c6b3" 611 | integrity sha512-zCGJcrCpICFe0Q/dgjQZfW7sYFkbJEC7NGT4zEJnMo8Cm/kq8Qh6+2ApX6c+vv5Q0WZn5Ic+N0OvxIMkvgdC/w== 612 | dependencies: 613 | "@parcel/diagnostic" "2.5.0" 614 | "@parcel/hash" "2.5.0" 615 | "@parcel/plugin" "2.5.0" 616 | nullthrows "^1.1.1" 617 | posthtml "^0.16.5" 618 | posthtml-parser "^0.10.1" 619 | posthtml-render "^3.0.0" 620 | semver "^5.7.1" 621 | 622 | "@parcel/types@2.5.0": 623 | version "2.5.0" 624 | resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.5.0.tgz#e3818d4358f849ac2593605b98366b8e156ab533" 625 | integrity sha512-bA0fhG6aXSGYEVo5Dt96x6lseUQHeVZVzgmiRdZsvb614Gvx22ItfaKhPmAVbM9vzbObZDHl9l9G2Ovw8Xve4g== 626 | dependencies: 627 | "@parcel/cache" "2.5.0" 628 | "@parcel/diagnostic" "2.5.0" 629 | "@parcel/fs" "2.5.0" 630 | "@parcel/package-manager" "2.5.0" 631 | "@parcel/source-map" "^2.0.0" 632 | "@parcel/workers" "2.5.0" 633 | utility-types "^3.10.0" 634 | 635 | "@parcel/utils@2.5.0": 636 | version "2.5.0" 637 | resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.5.0.tgz#96d2c7e7226128cc84418ba41770b38aff23ca20" 638 | integrity sha512-kaLGXtQuOOH55KZqXdYDvczhh3mk2eeTVqrrXuuihGjbLKYFlUW2tFDm+5r2s9nCPwTQxOO43ZEOCKSnia+e4w== 639 | dependencies: 640 | "@parcel/codeframe" "2.5.0" 641 | "@parcel/diagnostic" "2.5.0" 642 | "@parcel/hash" "2.5.0" 643 | "@parcel/logger" "2.5.0" 644 | "@parcel/markdown-ansi" "2.5.0" 645 | "@parcel/source-map" "^2.0.0" 646 | chalk "^4.1.0" 647 | 648 | "@parcel/watcher@^2.0.0": 649 | version "2.0.5" 650 | resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.5.tgz#f913a54e1601b0aac972803829b0eece48de215b" 651 | integrity sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw== 652 | dependencies: 653 | node-addon-api "^3.2.1" 654 | node-gyp-build "^4.3.0" 655 | 656 | "@parcel/workers@2.5.0": 657 | version "2.5.0" 658 | resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.5.0.tgz#c7f1a4bcd491c7422212724dedbcf7d1e980146e" 659 | integrity sha512-/Ow5OKJWs+9OzV3Jy4J++VnbNx0j3ls/M1CGVBLiBWyCada9DMtquYoBQ4Sk6Uam50BKkIFYetGOeXPNQyyMjg== 660 | dependencies: 661 | "@parcel/diagnostic" "2.5.0" 662 | "@parcel/logger" "2.5.0" 663 | "@parcel/types" "2.5.0" 664 | "@parcel/utils" "2.5.0" 665 | chrome-trace-event "^1.0.2" 666 | nullthrows "^1.1.1" 667 | 668 | "@swc/helpers@^0.3.6": 669 | version "0.3.13" 670 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.3.13.tgz#b9af856aaa3804fefdd1544632dde35b7b6ff978" 671 | integrity sha512-A1wswJhnqaLRn8uYVQ8YiNTtY5i/JIPmV08EXXjjTresIkUVUEUaFv/wXVhGXfRNYMvHPkuoMR1Nb6NgpxGjNg== 672 | dependencies: 673 | tslib "^2.4.0" 674 | 675 | "@trysound/sax@0.2.0": 676 | version "0.2.0" 677 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" 678 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== 679 | 680 | "@types/parse-json@^4.0.0": 681 | version "4.0.0" 682 | resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 683 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 684 | 685 | "@types/prop-types@*": 686 | version "15.7.5" 687 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 688 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 689 | 690 | "@types/react-dom@^16.8.4": 691 | version "16.9.15" 692 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.15.tgz#7bf41f2b2b86915ff9c0de475cb111d904df12c6" 693 | integrity sha512-PjWhZj54ACucQX2hDmnHyqHz+N2On5g3Lt5BeNn+wy067qvOokVSQw1nEog1XGfvLYrSl3cyrdebEfjQQNXD3A== 694 | dependencies: 695 | "@types/react" "^16" 696 | 697 | "@types/react@^16", "@types/react@^16.9.11": 698 | version "16.14.26" 699 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.26.tgz#82540a240ba7207ebe87d9579051bc19c9ef7605" 700 | integrity sha512-c/5CYyciOO4XdFcNhZW1O2woVx86k4T+DO2RorHZL7EhitkNQgSD/SgpdZJAUJa/qjVgOmTM44gHkAdZSXeQuQ== 701 | dependencies: 702 | "@types/prop-types" "*" 703 | "@types/scheduler" "*" 704 | csstype "^3.0.2" 705 | 706 | "@types/scheduler@*": 707 | version "0.16.2" 708 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 709 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 710 | 711 | abortcontroller-polyfill@^1.1.9: 712 | version "1.7.3" 713 | resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" 714 | integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== 715 | 716 | acorn@^8.5.0: 717 | version "8.7.1" 718 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" 719 | integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== 720 | 721 | ansi-styles@^3.2.1: 722 | version "3.2.1" 723 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 724 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 725 | dependencies: 726 | color-convert "^1.9.0" 727 | 728 | ansi-styles@^4.1.0: 729 | version "4.3.0" 730 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 731 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 732 | dependencies: 733 | color-convert "^2.0.1" 734 | 735 | asap@~2.0.6: 736 | version "2.0.6" 737 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 738 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= 739 | 740 | base-x@^3.0.8: 741 | version "3.0.9" 742 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 743 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 744 | dependencies: 745 | safe-buffer "^5.0.1" 746 | 747 | boolbase@^1.0.0: 748 | version "1.0.0" 749 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 750 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 751 | 752 | browserslist@^4.6.6: 753 | version "4.20.3" 754 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" 755 | integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== 756 | dependencies: 757 | caniuse-lite "^1.0.30001332" 758 | electron-to-chromium "^1.4.118" 759 | escalade "^3.1.1" 760 | node-releases "^2.0.3" 761 | picocolors "^1.0.0" 762 | 763 | buffer-from@^1.0.0: 764 | version "1.1.2" 765 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 766 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 767 | 768 | callsites@^3.0.0: 769 | version "3.1.0" 770 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 771 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 772 | 773 | caniuse-lite@^1.0.30001332: 774 | version "1.0.30001339" 775 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001339.tgz#f9aece4ea8156071613b27791547ba0b33f176cf" 776 | integrity sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ== 777 | 778 | chalk@^2.0.0: 779 | version "2.4.2" 780 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 781 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 782 | dependencies: 783 | ansi-styles "^3.2.1" 784 | escape-string-regexp "^1.0.5" 785 | supports-color "^5.3.0" 786 | 787 | chalk@^4.1.0: 788 | version "4.1.2" 789 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 790 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 791 | dependencies: 792 | ansi-styles "^4.1.0" 793 | supports-color "^7.1.0" 794 | 795 | chrome-trace-event@^1.0.2: 796 | version "1.0.3" 797 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 798 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 799 | 800 | clone@^2.1.1: 801 | version "2.1.2" 802 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 803 | integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= 804 | 805 | color-convert@^1.9.0: 806 | version "1.9.3" 807 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 808 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 809 | dependencies: 810 | color-name "1.1.3" 811 | 812 | color-convert@^2.0.1: 813 | version "2.0.1" 814 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 815 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 816 | dependencies: 817 | color-name "~1.1.4" 818 | 819 | color-name@1.1.3: 820 | version "1.1.3" 821 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 822 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 823 | 824 | color-name@~1.1.4: 825 | version "1.1.4" 826 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 827 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 828 | 829 | commander@^2.20.0: 830 | version "2.20.3" 831 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 832 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 833 | 834 | commander@^7.0.0, commander@^7.2.0: 835 | version "7.2.0" 836 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 837 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 838 | 839 | copy-anything@^2.0.1: 840 | version "2.0.6" 841 | resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" 842 | integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== 843 | dependencies: 844 | is-what "^3.14.1" 845 | 846 | core-js@^3.5.0: 847 | version "3.22.5" 848 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.5.tgz#a5f5a58e663d5c0ebb4e680cd7be37536fb2a9cf" 849 | integrity sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA== 850 | 851 | cosmiconfig@^7.0.1: 852 | version "7.0.1" 853 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" 854 | integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== 855 | dependencies: 856 | "@types/parse-json" "^4.0.0" 857 | import-fresh "^3.2.1" 858 | parse-json "^5.0.0" 859 | path-type "^4.0.0" 860 | yaml "^1.10.0" 861 | 862 | css-select@^4.1.3: 863 | version "4.3.0" 864 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" 865 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== 866 | dependencies: 867 | boolbase "^1.0.0" 868 | css-what "^6.0.1" 869 | domhandler "^4.3.1" 870 | domutils "^2.8.0" 871 | nth-check "^2.0.1" 872 | 873 | css-tree@^1.1.2, css-tree@^1.1.3: 874 | version "1.1.3" 875 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" 876 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== 877 | dependencies: 878 | mdn-data "2.0.14" 879 | source-map "^0.6.1" 880 | 881 | css-what@^6.0.1: 882 | version "6.1.0" 883 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 884 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 885 | 886 | csso@^4.2.0: 887 | version "4.2.0" 888 | resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" 889 | integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== 890 | dependencies: 891 | css-tree "^1.1.2" 892 | 893 | csstype@^3.0.2: 894 | version "3.0.11" 895 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" 896 | integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== 897 | 898 | debug@^3.2.6: 899 | version "3.2.7" 900 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 901 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 902 | dependencies: 903 | ms "^2.1.1" 904 | 905 | detect-libc@^1.0.3: 906 | version "1.0.3" 907 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 908 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 909 | 910 | dom-serializer@^1.0.1: 911 | version "1.4.1" 912 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" 913 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 914 | dependencies: 915 | domelementtype "^2.0.1" 916 | domhandler "^4.2.0" 917 | entities "^2.0.0" 918 | 919 | domelementtype@^2.0.1, domelementtype@^2.2.0: 920 | version "2.3.0" 921 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 922 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 923 | 924 | domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: 925 | version "4.3.1" 926 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" 927 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 928 | dependencies: 929 | domelementtype "^2.2.0" 930 | 931 | domutils@^2.8.0: 932 | version "2.8.0" 933 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 934 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 935 | dependencies: 936 | dom-serializer "^1.0.1" 937 | domelementtype "^2.2.0" 938 | domhandler "^4.2.0" 939 | 940 | dotenv-expand@^5.1.0: 941 | version "5.1.0" 942 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" 943 | integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== 944 | 945 | dotenv@^7.0.0: 946 | version "7.0.0" 947 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" 948 | integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== 949 | 950 | electron-to-chromium@^1.4.118: 951 | version "1.4.137" 952 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" 953 | integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== 954 | 955 | entities@^2.0.0: 956 | version "2.2.0" 957 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 958 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 959 | 960 | entities@^3.0.1: 961 | version "3.0.1" 962 | resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" 963 | integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== 964 | 965 | errno@^0.1.1: 966 | version "0.1.8" 967 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" 968 | integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== 969 | dependencies: 970 | prr "~1.0.1" 971 | 972 | error-ex@^1.3.1: 973 | version "1.3.2" 974 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 975 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 976 | dependencies: 977 | is-arrayish "^0.2.1" 978 | 979 | escalade@^3.1.1: 980 | version "3.1.1" 981 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 982 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 983 | 984 | escape-string-regexp@^1.0.5: 985 | version "1.0.5" 986 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 987 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 988 | 989 | get-port@^4.2.0: 990 | version "4.2.0" 991 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" 992 | integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== 993 | 994 | globals@^13.2.0: 995 | version "13.14.0" 996 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.14.0.tgz#daf3ff9b4336527cf56e98330b6f64bea9aff9df" 997 | integrity sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg== 998 | dependencies: 999 | type-fest "^0.20.2" 1000 | 1001 | graceful-fs@^4.1.2: 1002 | version "4.2.10" 1003 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" 1004 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 1005 | 1006 | has-flag@^3.0.0: 1007 | version "3.0.0" 1008 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1009 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1010 | 1011 | has-flag@^4.0.0: 1012 | version "4.0.0" 1013 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1014 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1015 | 1016 | htmlnano@^2.0.0: 1017 | version "2.0.2" 1018 | resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.0.2.tgz#3e3170941e2446a86211196d740272ebca78f878" 1019 | integrity sha512-+ZrQFS4Ub+zd+/fWwfvoYCEGNEa0/zrpys6CyXxvZDwtL7Pl+pOtRkiujyvBQ7Lmfp7/iEPxtOFgxWA16Gkj3w== 1020 | dependencies: 1021 | cosmiconfig "^7.0.1" 1022 | posthtml "^0.16.5" 1023 | timsort "^0.3.0" 1024 | 1025 | htmlparser2@^7.1.1: 1026 | version "7.2.0" 1027 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" 1028 | integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== 1029 | dependencies: 1030 | domelementtype "^2.0.1" 1031 | domhandler "^4.2.2" 1032 | domutils "^2.8.0" 1033 | entities "^3.0.1" 1034 | 1035 | iconv-lite@^0.4.4: 1036 | version "0.4.24" 1037 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1038 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1039 | dependencies: 1040 | safer-buffer ">= 2.1.2 < 3" 1041 | 1042 | image-size@~0.5.0: 1043 | version "0.5.5" 1044 | resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" 1045 | integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= 1046 | 1047 | import-fresh@^3.2.1: 1048 | version "3.3.0" 1049 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1050 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1051 | dependencies: 1052 | parent-module "^1.0.0" 1053 | resolve-from "^4.0.0" 1054 | 1055 | is-arrayish@^0.2.1: 1056 | version "0.2.1" 1057 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1058 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1059 | 1060 | is-json@^2.0.1: 1061 | version "2.0.1" 1062 | resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" 1063 | integrity sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8= 1064 | 1065 | is-what@^3.14.1: 1066 | version "3.14.1" 1067 | resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" 1068 | integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== 1069 | 1070 | js-tokens@^4.0.0: 1071 | version "4.0.0" 1072 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1073 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1074 | 1075 | json-parse-even-better-errors@^2.3.0: 1076 | version "2.3.1" 1077 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1078 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1079 | 1080 | json5@^2.2.0, json5@^2.2.1: 1081 | version "2.2.1" 1082 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 1083 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 1084 | 1085 | less@^4.1.1: 1086 | version "4.1.2" 1087 | resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0" 1088 | integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== 1089 | dependencies: 1090 | copy-anything "^2.0.1" 1091 | parse-node-version "^1.0.1" 1092 | tslib "^2.3.0" 1093 | optionalDependencies: 1094 | errno "^0.1.1" 1095 | graceful-fs "^4.1.2" 1096 | image-size "~0.5.0" 1097 | make-dir "^2.1.0" 1098 | mime "^1.4.1" 1099 | needle "^2.5.2" 1100 | source-map "~0.6.0" 1101 | 1102 | lines-and-columns@^1.1.6: 1103 | version "1.2.4" 1104 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 1105 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1106 | 1107 | lmdb@2.2.4: 1108 | version "2.2.4" 1109 | resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.2.4.tgz#6494d5a1d1db152e0be759edcfa06893e4cbdb53" 1110 | integrity sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ== 1111 | dependencies: 1112 | msgpackr "^1.5.4" 1113 | nan "^2.14.2" 1114 | node-gyp-build "^4.2.3" 1115 | ordered-binary "^1.2.4" 1116 | weak-lru-cache "^1.2.2" 1117 | 1118 | lodash.sortby@^4.7.0: 1119 | version "4.7.0" 1120 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 1121 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 1122 | 1123 | make-dir@^2.1.0: 1124 | version "2.1.0" 1125 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" 1126 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== 1127 | dependencies: 1128 | pify "^4.0.1" 1129 | semver "^5.6.0" 1130 | 1131 | mdn-data@2.0.14: 1132 | version "2.0.14" 1133 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" 1134 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== 1135 | 1136 | mime@^1.4.1: 1137 | version "1.6.0" 1138 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1139 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1140 | 1141 | ms@^2.1.1: 1142 | version "2.1.3" 1143 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1144 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1145 | 1146 | msgpackr-extract-darwin-arm64@1.1.0: 1147 | version "1.1.0" 1148 | resolved "https://registry.yarnpkg.com/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-1.1.0.tgz#d590dffac6b90edc3ab53392f7ec5668ed94638c" 1149 | integrity sha512-s1kHoT12tS2cCQOv+Wl3I+/cYNJXBPtwQqGA+dPYoXmchhXiE0Nso+BIfvQ5PxbmAyjj54Q5o7PnLTqVquNfZA== 1150 | 1151 | msgpackr-extract-darwin-x64@1.1.0: 1152 | version "1.1.0" 1153 | resolved "https://registry.yarnpkg.com/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-1.1.0.tgz#568cbdf5e819ac120659c02b0dbaabf483523ee3" 1154 | integrity sha512-yx/H/i12IKg4eWGu/eKdKzJD4jaYvvujQSaVmeOMCesbSQnWo5X6YR9TFjoiNoU9Aexk1KufzL9gW+1DozG1yw== 1155 | 1156 | msgpackr-extract-linux-arm64@1.1.0: 1157 | version "1.1.0" 1158 | resolved "https://registry.yarnpkg.com/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-1.1.0.tgz#c0a30e6687cea4f79115f5762c5fdff90e4a20d4" 1159 | integrity sha512-AxFle3fHNwz2V4CYDIGFxI6o/ZuI0lBKg0uHI8EcCMUmDE5mVAUWYge5WXmORVvb8sVWyVgFlmi3MTu4Ve6tNQ== 1160 | 1161 | msgpackr-extract-linux-arm@1.1.0: 1162 | version "1.1.0" 1163 | resolved "https://registry.yarnpkg.com/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-1.1.0.tgz#38e8db873b6b3986558bde4d7bb15eacc8743a9e" 1164 | integrity sha512-0VvSCqi12xpavxl14gMrauwIzHqHbmSChUijy/uo3mpjB1Pk4vlisKpZsaOZvNJyNKj0ACi5jYtbWnnOd7hYGw== 1165 | 1166 | msgpackr-extract-linux-x64@1.1.0: 1167 | version "1.1.0" 1168 | resolved "https://registry.yarnpkg.com/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-1.1.0.tgz#8c44ca5211d9fa6af77be64a8e687c0be0491ce7" 1169 | integrity sha512-O+XoyNFWpdB8oQL6O/YyzffPpmG5rTNrr1nKLW70HD2ENJUhcITzbV7eZimHPzkn8LAGls1tBaMTHQezTBpFOw== 1170 | 1171 | msgpackr-extract-win32-x64@1.1.0: 1172 | version "1.1.0" 1173 | resolved "https://registry.yarnpkg.com/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-1.1.0.tgz#7bf9bd258e334668842c7532e5e40a60ca3325d7" 1174 | integrity sha512-6AJdM5rNsL4yrskRfhujVSPEd6IBpgvsnIT/TPowKNLQ62iIdryizPY2PJNFiW3AJcY249AHEiDBXS1cTDPxzA== 1175 | 1176 | msgpackr-extract@^1.1.4: 1177 | version "1.1.4" 1178 | resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-1.1.4.tgz#665037c1470f225d01d2d735dad0334fff5faae6" 1179 | integrity sha512-WQbHvsThprXh+EqZYy+SQFEs7z6bNM7a0vgirwUfwUcphWGT2mdPcpyLCNiRsN6w5q5VKJUMblHY+tNEyceb9Q== 1180 | dependencies: 1181 | node-gyp-build-optional-packages "^4.3.2" 1182 | optionalDependencies: 1183 | msgpackr-extract-darwin-arm64 "1.1.0" 1184 | msgpackr-extract-darwin-x64 "1.1.0" 1185 | msgpackr-extract-linux-arm "1.1.0" 1186 | msgpackr-extract-linux-arm64 "1.1.0" 1187 | msgpackr-extract-linux-x64 "1.1.0" 1188 | msgpackr-extract-win32-x64 "1.1.0" 1189 | 1190 | msgpackr@^1.5.4: 1191 | version "1.5.7" 1192 | resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.7.tgz#53b3fd0e7afdf4184a594881a18832df9422b660" 1193 | integrity sha512-Hsa80i8W4BiObSMHslfnwC+CC1CYHZzoXJZn0+3EvoCEOgt3c5QlXhdcjgFk2aZxMgpV8aUFZqJyQUCIp4UrzA== 1194 | optionalDependencies: 1195 | msgpackr-extract "^1.1.4" 1196 | 1197 | nan@^2.14.2: 1198 | version "2.15.0" 1199 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" 1200 | integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== 1201 | 1202 | needle@^2.5.2: 1203 | version "2.9.1" 1204 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" 1205 | integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== 1206 | dependencies: 1207 | debug "^3.2.6" 1208 | iconv-lite "^0.4.4" 1209 | sax "^1.2.4" 1210 | 1211 | node-addon-api@^3.2.1: 1212 | version "3.2.1" 1213 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" 1214 | integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== 1215 | 1216 | node-gyp-build-optional-packages@^4.3.2: 1217 | version "4.3.2" 1218 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.2.tgz#82de9bdf9b1ad042457533afb2f67469dc2264bb" 1219 | integrity sha512-P5Ep3ISdmwcCkZIaBaQamQtWAG0facC89phWZgi5Z3hBU//J6S48OIvyZWSPPf6yQMklLZiqoosWAZUj7N+esA== 1220 | 1221 | node-gyp-build@^4.2.3, node-gyp-build@^4.3.0: 1222 | version "4.4.0" 1223 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" 1224 | integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== 1225 | 1226 | node-releases@^2.0.3: 1227 | version "2.0.4" 1228 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" 1229 | integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== 1230 | 1231 | nth-check@^2.0.1: 1232 | version "2.0.1" 1233 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" 1234 | integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== 1235 | dependencies: 1236 | boolbase "^1.0.0" 1237 | 1238 | nullthrows@^1.1.1: 1239 | version "1.1.1" 1240 | resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" 1241 | integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== 1242 | 1243 | object-assign@^4.1.1: 1244 | version "4.1.1" 1245 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1246 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1247 | 1248 | ordered-binary@^1.2.4: 1249 | version "1.2.5" 1250 | resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.2.5.tgz#6208c45067eae9d14b8f44791a1d7037adad9147" 1251 | integrity sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA== 1252 | 1253 | parcel@^2.5.0: 1254 | version "2.5.0" 1255 | resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.5.0.tgz#b6f01c665b6085e4eb58957ff11bc8f4027bd8f7" 1256 | integrity sha512-er0mj/BaMjWyzQ/jedLUi/LNAuQcFT8lCvoNqANF+jTaX9rohaBwxIvKVJVAZgyCnmyfbbldp496wPMW0R0+CA== 1257 | dependencies: 1258 | "@parcel/config-default" "2.5.0" 1259 | "@parcel/core" "2.5.0" 1260 | "@parcel/diagnostic" "2.5.0" 1261 | "@parcel/events" "2.5.0" 1262 | "@parcel/fs" "2.5.0" 1263 | "@parcel/logger" "2.5.0" 1264 | "@parcel/package-manager" "2.5.0" 1265 | "@parcel/reporter-cli" "2.5.0" 1266 | "@parcel/reporter-dev-server" "2.5.0" 1267 | "@parcel/utils" "2.5.0" 1268 | chalk "^4.1.0" 1269 | commander "^7.0.0" 1270 | get-port "^4.2.0" 1271 | v8-compile-cache "^2.0.0" 1272 | 1273 | parent-module@^1.0.0: 1274 | version "1.0.1" 1275 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1276 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1277 | dependencies: 1278 | callsites "^3.0.0" 1279 | 1280 | parse-json@^5.0.0: 1281 | version "5.2.0" 1282 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1283 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1284 | dependencies: 1285 | "@babel/code-frame" "^7.0.0" 1286 | error-ex "^1.3.1" 1287 | json-parse-even-better-errors "^2.3.0" 1288 | lines-and-columns "^1.1.6" 1289 | 1290 | parse-node-version@^1.0.1: 1291 | version "1.0.1" 1292 | resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" 1293 | integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== 1294 | 1295 | path-type@^4.0.0: 1296 | version "4.0.0" 1297 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1298 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1299 | 1300 | performance-now@^2.1.0: 1301 | version "2.1.0" 1302 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1303 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 1304 | 1305 | picocolors@^1.0.0: 1306 | version "1.0.0" 1307 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1308 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1309 | 1310 | pify@^4.0.1: 1311 | version "4.0.1" 1312 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 1313 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 1314 | 1315 | postcss-value-parser@^4.2.0: 1316 | version "4.2.0" 1317 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 1318 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1319 | 1320 | posthtml-parser@^0.10.1: 1321 | version "0.10.2" 1322 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573" 1323 | integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== 1324 | dependencies: 1325 | htmlparser2 "^7.1.1" 1326 | 1327 | posthtml-parser@^0.11.0: 1328 | version "0.11.0" 1329 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a" 1330 | integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== 1331 | dependencies: 1332 | htmlparser2 "^7.1.1" 1333 | 1334 | posthtml-render@^3.0.0: 1335 | version "3.0.0" 1336 | resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205" 1337 | integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== 1338 | dependencies: 1339 | is-json "^2.0.1" 1340 | 1341 | posthtml@^0.16.4, posthtml@^0.16.5: 1342 | version "0.16.6" 1343 | resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59" 1344 | integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== 1345 | dependencies: 1346 | posthtml-parser "^0.11.0" 1347 | posthtml-render "^3.0.0" 1348 | 1349 | promise@^8.0.3: 1350 | version "8.1.0" 1351 | resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" 1352 | integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== 1353 | dependencies: 1354 | asap "~2.0.6" 1355 | 1356 | prr@~1.0.1: 1357 | version "1.0.1" 1358 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 1359 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= 1360 | 1361 | punycode@^2.1.0: 1362 | version "2.1.1" 1363 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1364 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1365 | 1366 | raf@^3.4.1: 1367 | version "3.4.1" 1368 | resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" 1369 | integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== 1370 | dependencies: 1371 | performance-now "^2.1.0" 1372 | 1373 | react-app-polyfill@^1.0.0: 1374 | version "1.0.6" 1375 | resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" 1376 | integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== 1377 | dependencies: 1378 | core-js "^3.5.0" 1379 | object-assign "^4.1.1" 1380 | promise "^8.0.3" 1381 | raf "^3.4.1" 1382 | regenerator-runtime "^0.13.3" 1383 | whatwg-fetch "^3.0.0" 1384 | 1385 | react-refresh@^0.9.0: 1386 | version "0.9.0" 1387 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" 1388 | integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== 1389 | 1390 | regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.7: 1391 | version "0.13.9" 1392 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 1393 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1394 | 1395 | resolve-from@^4.0.0: 1396 | version "4.0.0" 1397 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1398 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1399 | 1400 | safe-buffer@^5.0.1: 1401 | version "5.2.1" 1402 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1403 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1404 | 1405 | "safer-buffer@>= 2.1.2 < 3": 1406 | version "2.1.2" 1407 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1408 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1409 | 1410 | sax@^1.2.4: 1411 | version "1.2.4" 1412 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1413 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 1414 | 1415 | semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: 1416 | version "5.7.1" 1417 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1418 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1419 | 1420 | source-map-support@~0.5.20: 1421 | version "0.5.21" 1422 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1423 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1424 | dependencies: 1425 | buffer-from "^1.0.0" 1426 | source-map "^0.6.0" 1427 | 1428 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: 1429 | version "0.6.1" 1430 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1431 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1432 | 1433 | source-map@~0.8.0-beta.0: 1434 | version "0.8.0-beta.0" 1435 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" 1436 | integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== 1437 | dependencies: 1438 | whatwg-url "^7.0.0" 1439 | 1440 | stable@^0.1.8: 1441 | version "0.1.8" 1442 | resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" 1443 | integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== 1444 | 1445 | supports-color@^5.3.0: 1446 | version "5.5.0" 1447 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1448 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1449 | dependencies: 1450 | has-flag "^3.0.0" 1451 | 1452 | supports-color@^7.1.0: 1453 | version "7.2.0" 1454 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1455 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1456 | dependencies: 1457 | has-flag "^4.0.0" 1458 | 1459 | svgo@^2.4.0: 1460 | version "2.8.0" 1461 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" 1462 | integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== 1463 | dependencies: 1464 | "@trysound/sax" "0.2.0" 1465 | commander "^7.2.0" 1466 | css-select "^4.1.3" 1467 | css-tree "^1.1.3" 1468 | csso "^4.2.0" 1469 | picocolors "^1.0.0" 1470 | stable "^0.1.8" 1471 | 1472 | term-size@^2.2.1: 1473 | version "2.2.1" 1474 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" 1475 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== 1476 | 1477 | terser@^5.2.0: 1478 | version "5.13.1" 1479 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" 1480 | integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== 1481 | dependencies: 1482 | acorn "^8.5.0" 1483 | commander "^2.20.0" 1484 | source-map "~0.8.0-beta.0" 1485 | source-map-support "~0.5.20" 1486 | 1487 | timsort@^0.3.0: 1488 | version "0.3.0" 1489 | resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" 1490 | integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= 1491 | 1492 | tr46@^1.0.1: 1493 | version "1.0.1" 1494 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 1495 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= 1496 | dependencies: 1497 | punycode "^2.1.0" 1498 | 1499 | tslib@^2.3.0, tslib@^2.4.0: 1500 | version "2.4.0" 1501 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" 1502 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== 1503 | 1504 | type-fest@^0.20.2: 1505 | version "0.20.2" 1506 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1507 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1508 | 1509 | typescript@^3.4.5: 1510 | version "3.9.10" 1511 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" 1512 | integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== 1513 | 1514 | utility-types@^3.10.0: 1515 | version "3.10.0" 1516 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" 1517 | integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== 1518 | 1519 | v8-compile-cache@^2.0.0: 1520 | version "2.3.0" 1521 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1522 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1523 | 1524 | weak-lru-cache@^1.2.2: 1525 | version "1.2.2" 1526 | resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" 1527 | integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== 1528 | 1529 | webidl-conversions@^4.0.2: 1530 | version "4.0.2" 1531 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 1532 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 1533 | 1534 | whatwg-fetch@^3.0.0: 1535 | version "3.6.2" 1536 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" 1537 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== 1538 | 1539 | whatwg-url@^7.0.0: 1540 | version "7.1.0" 1541 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" 1542 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== 1543 | dependencies: 1544 | lodash.sortby "^4.7.0" 1545 | tr46 "^1.0.1" 1546 | webidl-conversions "^4.0.2" 1547 | 1548 | xxhash-wasm@^0.4.2: 1549 | version "0.4.2" 1550 | resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" 1551 | integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== 1552 | 1553 | yaml@^1.10.0: 1554 | version "1.10.2" 1555 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1556 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1557 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.1", 3 | "license": "MIT", 4 | "main": "dist/index.js", 5 | "typings": "dist/index.d.ts", 6 | "description": "这是一个基于 react-rnd 实现的拖拽组件,在rnd的功能基础上增加了拖拽时显示辅助线及吸附的功能。", 7 | "keywords": ["react","react-rnd-dragline","react-dragline","dragline"], 8 | "repository":"https://github.com/Ectimi/react-rnd-dargline", 9 | "homepage": "https://github.com/Ectimi/react-rnd-dargline", 10 | "files": [ 11 | "dist", 12 | "src" 13 | ], 14 | "engines": { 15 | "node": ">=10" 16 | }, 17 | "scripts": { 18 | "start": "tsdx watch", 19 | "build": "tsdx build", 20 | "test": "tsdx test --passWithNoTests", 21 | "lint": "tsdx lint", 22 | "prepare": "tsdx build", 23 | "size": "size-limit", 24 | "analyze": "size-limit --why" 25 | }, 26 | "peerDependencies": { 27 | "react": ">=16" 28 | }, 29 | "husky": { 30 | "hooks": { 31 | "pre-commit": "tsdx lint" 32 | } 33 | }, 34 | "prettier": { 35 | "printWidth": 80, 36 | "semi": true, 37 | "singleQuote": true, 38 | "trailingComma": "es5" 39 | }, 40 | "name": "react-rnd-dragline", 41 | "author": "Yangjunjie", 42 | "module": "dist/react-rnd-dragline.esm.js", 43 | "size-limit": [ 44 | { 45 | "path": "dist/react-rnd-dragline.cjs.production.min.js", 46 | "limit": "10 KB" 47 | }, 48 | { 49 | "path": "dist/react-rnd-dragline.esm.js", 50 | "limit": "10 KB" 51 | } 52 | ], 53 | "devDependencies": { 54 | "@size-limit/preset-small-lib": "^4.10.2", 55 | "@types/react": "^17.0.5", 56 | "@types/react-dom": "^17.0.5", 57 | "autoprefixer": "^10.2.5", 58 | "cssnano": "^5.0.2", 59 | "husky": "^6.0.0", 60 | "less": "^4.1.1", 61 | "react": "^17.0.2", 62 | "react-dom": "^17.0.2", 63 | "rollup-plugin-postcss": "^4.0.0", 64 | "size-limit": "^4.10.2", 65 | "tsdx": "^0.14.1", 66 | "tslib": "^2.2.0", 67 | "typescript": "^4.2.4" 68 | }, 69 | "dependencies": { 70 | "@types/react-rnd": "^8.0.0", 71 | "classnames": "^2.3.1", 72 | "react-rnd": "^10.2.4" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/DragArea.tsx: -------------------------------------------------------------------------------- 1 | import React, { 2 | Fragment, 3 | Children, 4 | ReactElement, 5 | ReactNode, 6 | PureComponent, 7 | } from 'react'; 8 | import { Props as RndProps } from 'react-rnd'; 9 | import { getMidCoordinate } from './utils'; 10 | import { IDragItem, ILine } from './types'; 11 | 12 | interface IDragAreaProps { 13 | children: ReactElement | ReactElement[]; 14 | bounds?: RndProps['bounds']; 15 | enableResizing?: RndProps['enableResizing']; 16 | guidelineColor?: string; 17 | guidelineWidth?: number; 18 | onAdsorb?: boolean; 19 | adsorbThreshold?: number; 20 | } 21 | 22 | interface IDrageAreaState { 23 | guidelines: ILine[]; 24 | } 25 | 26 | export class DragArea extends PureComponent { 27 | items: IDragItem[] = []; 28 | coordinateMap: Map = new Map(); 29 | currentDragItem: IDragItem | undefined; 30 | state: IDrageAreaState = { 31 | guidelines: [], 32 | }; 33 | 34 | componentDidMount() { 35 | this.updateCoordinateMap(); 36 | } 37 | 38 | init = (dragItem: IDragItem) => { 39 | this.items.push(dragItem); 40 | }; 41 | 42 | updateCoordinateMap = (dragItem?: IDragItem): Map => { 43 | if (dragItem) { 44 | for (let i = 0; i < this.items.length; i++) { 45 | if (this.items[i].id === dragItem.id) { 46 | this.items[i] = dragItem; 47 | break; 48 | } 49 | } 50 | } 51 | 52 | this.coordinateMap.clear(); 53 | 54 | for (let i = 0; i < this.items.length; i++) { 55 | const item = this.items[i]; 56 | let x1 = item.x; 57 | let x2 = x1 + item.width; 58 | let x3 = getMidCoordinate(x2, x1); 59 | let y1 = item.y; 60 | let y2 = y1 + item.height; 61 | let y3 = getMidCoordinate(y2, y1); 62 | let keys = [ 63 | x1 + '|x', 64 | x2 + '|x', 65 | x3 + '|xCenter', 66 | y1 + '|y', 67 | y2 + '|y', 68 | y3 + '|yCenter', 69 | ]; 70 | keys.forEach((key) => { 71 | if (this.coordinateMap.get(key)) { 72 | this.coordinateMap.set(key, [...this.coordinateMap.get(key)!, item]); 73 | } else { 74 | this.coordinateMap.set(key, [item]); 75 | } 76 | }); 77 | } 78 | 79 | return this.coordinateMap; 80 | }; 81 | 82 | getGuideLine = (dragItem: IDragItem) => { 83 | const { guidelineWidth = 1 } = this.props; 84 | 85 | this.updateCoordinateMap(dragItem); 86 | let x1 = dragItem.x; 87 | let x2 = dragItem.x + dragItem.width; 88 | let x3 = getMidCoordinate(x2, x1); 89 | let y1 = dragItem.y; 90 | let y2 = dragItem.y + dragItem.height; 91 | let y3 = getMidCoordinate(y2, y1); 92 | let keys = [ 93 | x1 + '|x', 94 | x2 + '|x', 95 | x3 + '|xCenter', 96 | y1 + '|y', 97 | y2 + '|y', 98 | y3 + '|yCenter', 99 | ]; 100 | let guidelines: ILine[] = []; 101 | 102 | keys.forEach((key) => { 103 | for (let [k, items] of this.coordinateMap) { 104 | if (items.length > 1) { 105 | if (key === k) { 106 | let line: ILine; 107 | if (key.includes('x')) { 108 | const sorted = [...items].sort((a, b) => a.y - b.y); 109 | let minY = sorted[0].y; 110 | let maxY = sorted[sorted.length - 1].y; 111 | line = { 112 | x: +key.split('|')[0], 113 | y: minY, 114 | width: guidelineWidth, 115 | height: maxY + sorted[sorted.length - 1].height - minY, 116 | }; 117 | } else if (key.includes('y')) { 118 | const sorted = [...items].sort((a, b) => a.x - b.x); 119 | let minX = sorted[0].x; 120 | let maxX = sorted[sorted.length - 1].x; 121 | line = { 122 | x: minX, 123 | y: +key.split('|')[0], 124 | width: maxX + sorted[sorted.length - 1].width - minX, 125 | height: guidelineWidth, 126 | }; 127 | } 128 | guidelines.push(line!); 129 | } 130 | } 131 | } 132 | }); 133 | 134 | this.setState({ guidelines }); 135 | }; 136 | 137 | onDragStop = () => { 138 | this.setState({ guidelines: [] }); 139 | }; 140 | 141 | render(): ReactNode { 142 | const { 143 | bounds = '', 144 | enableResizing = { 145 | top: true, 146 | right: true, 147 | bottom: true, 148 | left: true, 149 | topRight: true, 150 | bottomRight: true, 151 | bottomLeft: true, 152 | topLeft: true, 153 | }, 154 | guidelineColor = '#448ef7', 155 | onAdsorb = true, 156 | adsorbThreshold = 5, 157 | } = this.props; 158 | return ( 159 | 160 | {Children.map( 161 | this.props.children, 162 | (element) => { 163 | return ( 164 | 175 | ); 176 | }, 177 | )} 178 | {this.state.guidelines.map((line, index) => ( 179 |
190 | ))} 191 |
192 | ); 193 | } 194 | } 195 | -------------------------------------------------------------------------------- /src/DragItem.tsx: -------------------------------------------------------------------------------- 1 | import React, { Fragment, PureComponent, createRef, ReactElement, ReactNode } from 'react'; 2 | import { DraggableEventHandler } from 'react-draggable'; 3 | import { Rnd, RndResizeCallback, Props as RndProps } from 'react-rnd'; 4 | import { nanoid } from 'nanoid'; 5 | import { IPos, ISize, IDragItem } from './types'; 6 | import { getMidCoordinate } from './utils'; 7 | 8 | interface IWithRndProps extends RndProps { 9 | init?: (dragItem: IDragItem) => void; 10 | dragging?: (dragItem: IDragItem) => void; 11 | dragged?: (dragItem?: IDragItem) => void; 12 | getCoordinateMap?: (dragItem: IDragItem) => Map; 13 | onAdsorb?: boolean; 14 | adsorbThreshold?: number; 15 | children: ReactElement; 16 | } 17 | 18 | interface IWithRndState extends ISize, IPos { 19 | mounted: boolean; 20 | dragging: boolean; 21 | } 22 | 23 | type TAdsorbResult = { x: number | null; y: number | null }; 24 | 25 | export class DragItem extends PureComponent { 26 | state = { 27 | x: 0, 28 | y: 0, 29 | width: 0, 30 | height: 0, 31 | mounted: false, 32 | dragging: false, 33 | }; 34 | ref = createRef(); 35 | id = nanoid(); 36 | 37 | componentDidMount() { 38 | const { left, top, width, height } = 39 | this.ref.current?.getBoundingClientRect()!; 40 | const x = 41 | parseFloat(getComputedStyle(this.ref.current as HTMLElement).marginLeft) + 42 | left; 43 | const y = 44 | parseFloat(getComputedStyle(this.ref.current as HTMLElement).marginTop) + 45 | top; 46 | 47 | this.props.init!({ id: this.id, x, y, width, height }); 48 | this.setState( 49 | { 50 | x, 51 | y, 52 | width, 53 | height, 54 | mounted: true, 55 | }, 56 | () => { 57 | this.ref.current!.style.marginTop = '0'; 58 | this.ref.current!.style.marginLeft = '0'; 59 | }, 60 | ); 61 | } 62 | 63 | isAdsorb(dragItem: IDragItem): TAdsorbResult { 64 | const threshold = this.props.adsorbThreshold || 3; 65 | const result: TAdsorbResult = { x: null, y: null }; 66 | const coordinateMap = this.props.getCoordinateMap!(dragItem); 67 | const xList: number[] = []; 68 | const xCenterList: number[] = []; 69 | const yList: number[] = []; 70 | const yCenterList: number[] = []; 71 | 72 | for (let [k, items] of coordinateMap) { 73 | const excludeSelfItems = items.filter((item) => item.id !== dragItem.id); 74 | const number = +k.split('|')[0]; 75 | 76 | if (/\|x\b/.test(k)) { 77 | excludeSelfItems.map(() => xList.push(number)); 78 | } else if (k.includes('xCenter')) { 79 | excludeSelfItems.map(() => xCenterList.push(number)); 80 | } else if (/\|y\b/.test(k)) { 81 | excludeSelfItems.map(() => yList.push(number)); 82 | } else if (k.includes('yCenter')) { 83 | excludeSelfItems.map(() => yCenterList.push(number)); 84 | } 85 | } 86 | 87 | xList.sort((a, b) => a - b); 88 | xCenterList.sort((a, b) => a - b); 89 | yList.sort((a, b) => a - b); 90 | yCenterList.sort((a, b) => a - b); 91 | 92 | for (let i = 0; i < xList.length; i++) { 93 | const needCompareX = xList[i]; 94 | if ( 95 | dragItem.x >= needCompareX && 96 | dragItem.x <= needCompareX + threshold 97 | ) { 98 | result.x = needCompareX; 99 | break; 100 | } else if ( 101 | dragItem.x + dragItem.width >= needCompareX - threshold && 102 | dragItem.x + dragItem.width <= needCompareX 103 | ) { 104 | result.x = needCompareX - dragItem.width; 105 | break; 106 | } 107 | } 108 | 109 | if (result.x === null) { 110 | for (let i = 0; i < xCenterList.length; i++) { 111 | const needCompareX = xCenterList[i]; 112 | const midX = getMidCoordinate(dragItem.x, dragItem.x + dragItem.width); 113 | if ( 114 | midX >= needCompareX - threshold && 115 | midX <= needCompareX + threshold 116 | ) { 117 | result.x = needCompareX - dragItem.width / 2; 118 | break; 119 | } 120 | } 121 | } 122 | 123 | for (let i = 0; i < yList.length; i++) { 124 | const needCompareY = yList[i]; 125 | if ( 126 | dragItem.y >= needCompareY && 127 | dragItem.y <= needCompareY + threshold 128 | ) { 129 | result.y = needCompareY; 130 | break; 131 | } else if ( 132 | dragItem.y + dragItem.width >= needCompareY - threshold && 133 | dragItem.y + dragItem.width <= needCompareY 134 | ) { 135 | result.y = needCompareY - dragItem.height; 136 | break; 137 | } 138 | } 139 | 140 | if (result.y === null) { 141 | for (let i = 0; i < yCenterList.length; i++) { 142 | const needCompareY = yCenterList[i]; 143 | const midY = getMidCoordinate(dragItem.y, dragItem.y + dragItem.height); 144 | if ( 145 | midY >= needCompareY - threshold && 146 | midY <= needCompareY + threshold 147 | ) { 148 | result.y = needCompareY - dragItem.height / 2; 149 | break; 150 | } 151 | } 152 | } 153 | 154 | return result; 155 | } 156 | 157 | onDrag: DraggableEventHandler = (e, data) => { 158 | const { dragging, onDrag } = this.props; 159 | const { width, height } = this.state; 160 | const dragItem: IDragItem = { 161 | id: this.id, 162 | x: data.x, 163 | y: data.y, 164 | width, 165 | height, 166 | }; 167 | const adsorb = this.isAdsorb(dragItem); 168 | 169 | dragging!(dragItem); 170 | onDrag && onDrag(e, data); 171 | 172 | if (this.props.onAdsorb) { 173 | this.setState({ 174 | x: adsorb.x || data.x, 175 | y: adsorb.y || data.y, 176 | dragging: true, 177 | }); 178 | } else { 179 | this.setState({ 180 | x: data.x, 181 | y: data.y, 182 | dragging: true, 183 | }); 184 | } 185 | }; 186 | 187 | onDragStop: DraggableEventHandler = (e, data) => { 188 | const { dragged, onDragStop } = this.props; 189 | dragged!(); 190 | this.setState({ dragging: false }); 191 | onDragStop && onDragStop(e, data); 192 | }; 193 | 194 | onResizeStop: RndResizeCallback = (e, dir, refToElement, delta, position) => { 195 | const { onResizeStop } = this.props; 196 | 197 | this.setState( 198 | (prev) => { 199 | return { 200 | x: position.x, 201 | y: position.y, 202 | width: delta.width + prev.width, 203 | height: delta.height + prev.height, 204 | }; 205 | }, 206 | () => { 207 | onResizeStop && onResizeStop(e, dir, refToElement, delta, position); 208 | }, 209 | ); 210 | }; 211 | 212 | render(): ReactNode { 213 | const { x, y, width, height, mounted, dragging } = this.state; 214 | const { children } = this.props; 215 | const rndProps = { 216 | ...this.props, 217 | onDrag: this.onDrag, 218 | onDragStop: this.onDragStop, 219 | onResizeStop: this.onResizeStop, 220 | }; 221 | const excludeProps = [ 222 | 'init', 223 | 'dragging', 224 | 'dragged', 225 | 'getCoordinateMap', 226 | 'onAdsorb', 227 | 'adsorbThreshold', 228 | ]; 229 | excludeProps.forEach((key) => Reflect.deleteProperty(rndProps, key)); 230 | 231 | return ( 232 | 233 | {mounted ? ( 234 | 244 | 249 | 250 | ) : ( 251 | 252 | )} 253 | 254 | ); 255 | } 256 | } 257 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import { DragItem } from './DragItem'; 2 | import { DragArea } from './DragArea'; 3 | 4 | export { DragItem, DragArea }; 5 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IPos { 2 | x: number; 3 | y: number; 4 | } 5 | 6 | export interface ISize { 7 | width: number; 8 | height: number; 9 | } 10 | 11 | export interface IDragItem extends IPos, ISize { 12 | id: string; 13 | } 14 | 15 | export interface ILine { 16 | x: number; 17 | y: number; 18 | width?: number; 19 | height?: number; 20 | } 21 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | export function getMaxAndMin(arr: number[]) { 2 | const min = Math.min.apply(Math, arr); 3 | const max = Math.max.apply(Math, arr); 4 | 5 | return [min, max]; 6 | } 7 | 8 | export function getMidCoordinate(x1: number, x2: number) { 9 | return Math.floor(x2 - x1) / 2 + x1; 10 | } 11 | -------------------------------------------------------------------------------- /test/blah.test.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import * as ReactDOM from 'react-dom'; 3 | import { Thing } from '../src'; 4 | 5 | describe('it', () => { 6 | it('renders without crashing', () => { 7 | const div = document.createElement('div'); 8 | ReactDOM.render(, div); 9 | ReactDOM.unmountComponentAtNode(div); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs 3 | "include": ["src", "types"], 4 | "compilerOptions": { 5 | "module": "esnext", 6 | "lib": ["dom", "esnext"], 7 | "importHelpers": true, 8 | // output .d.ts declaration files for consumers 9 | "declaration": true, 10 | // output .js.map sourcemap files for consumers 11 | "sourceMap": true, 12 | // match output dir to input dir. e.g. dist/index instead of dist/src/index 13 | "rootDir": "./src", 14 | // stricter type-checking for stronger correctness. Recommended by TS 15 | "strict": true, 16 | // linter checks for common issues 17 | "noImplicitReturns": true, 18 | "noFallthroughCasesInSwitch": true, 19 | // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative 20 | "noUnusedLocals": true, 21 | "noUnusedParameters": true, 22 | // use Node's module resolution algorithm, instead of the legacy TS one 23 | "moduleResolution": "node", 24 | // transpile JSX to React.createElement 25 | "jsx": "react", 26 | // interop between ESM and CJS modules. Recommended by TS 27 | "esModuleInterop": true, 28 | // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS 29 | "skipLibCheck": true, 30 | // error out if import and file system have a casing mismatch. Recommended by TS 31 | "forceConsistentCasingInFileNames": true, 32 | // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` 33 | "noEmit": true, 34 | "noImplicitAny": false, 35 | "downlevelIteration": true, 36 | } 37 | } 38 | --------------------------------------------------------------------------------