├── .babelrc
├── .gitignore
├── example
└── basic-usage
│ ├── .eslintrc.json
│ ├── .npmignore
│ ├── .npmrc
│ ├── components
│ └── Header.js
│ ├── license
│ ├── package.json
│ ├── pages
│ ├── _app.js
│ ├── group.js
│ ├── index.js
│ └── place.js
│ ├── public
│ ├── bg1.jpg
│ ├── bg2.jpg
│ ├── bg3.jpg
│ ├── honolulu.jpg
│ ├── img1.jpg
│ ├── img2.jpg
│ ├── peru.jpg
│ ├── profile1.jpg
│ ├── santorini.jpg
│ ├── wf1.jpg
│ ├── wf2.jpg
│ ├── wf3.jpg
│ └── wf4.jpg
│ └── yarn.lock
├── lib
├── MorphTransition.js
├── index.js
└── irrelon-morph.js
├── package-lock.json
├── package.json
├── readme.md
└── src
├── MorphTransition.js
├── index.js
└── irrelon-morph.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-env",
4 | "@babel/preset-react"
5 | ],
6 | "plugins": [
7 | "@babel/plugin-proposal-class-properties",
8 | "@babel/plugin-proposal-object-rest-spread"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 |
25 | # Android/IntelliJ
26 | #
27 | .idea
28 | .gradle
29 | local.properties
30 | *.iml
31 |
32 | # node.js
33 | #
34 | node_modules/
35 | npm-debug.log
36 | yarn-error.log
37 |
38 | # BUCK
39 | buck-out/
40 | \.buckd/
41 | *.keystore
42 |
43 | # fastlane
44 | #
45 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
46 | # screenshots whenever they are needed.
47 | # For more information about the recommended setup visit:
48 | # https://docs.fastlane.tools/best-practices/source-control/
49 |
50 | */fastlane/report.xml
51 | */fastlane/Preview.html
52 | */fastlane/screenshots
53 |
54 | .next
--------------------------------------------------------------------------------
/example/basic-usage/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/example/basic-usage/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .next
3 |
--------------------------------------------------------------------------------
/example/basic-usage/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 |
--------------------------------------------------------------------------------
/example/basic-usage/components/Header.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from "next/link";
3 |
4 | function Header(props) {
5 | return (
6 |
117 | );
118 | }
119 |
120 | export default Header;
--------------------------------------------------------------------------------
/example/basic-usage/license:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) Irrelon
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/example/basic-usage/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "basic-usage",
3 | "description": "Basic morphing example",
4 | "author": {
5 | "name": "Rob Evans - Irrelon Software Limited",
6 | "email": "rob@irrelon.com"
7 | },
8 | "scripts": {
9 | "dev": "next dev",
10 | "build": "next build",
11 | "start": "next start",
12 | "lint": "next lint",
13 | "eslint": "eslint components/** pages/** *.js",
14 | "eslint-fix": "eslint components/** pages/** *.js --fix"
15 | },
16 | "dependencies": {
17 | "eslint": "^8.9.0",
18 | "next": "12.1.0",
19 | "nextjs-morph-page": "^2.1.1",
20 | "react": "17.0.2",
21 | "react-dom": "17.0.2"
22 | },
23 | "devDependencies": {
24 | "eslint-config-next": "12.1.0"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/example/basic-usage/pages/_app.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import MorphTransition from 'nextjs-morph-page';
3 | import Header from "../components/Header";
4 |
5 | function MyApp({Component, pageProps, router}) {
6 | return (
7 | <>
8 |
9 | <>
10 |
11 |
12 | >
13 |
14 |
65 | >
66 | );
67 | }
68 |
69 | export default MyApp;
--------------------------------------------------------------------------------
/example/basic-usage/pages/group.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | function Group() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |

11 |
12 |
13 |
14 |
15 |

16 |
17 |
18 |
19 |
20 |

21 |
22 |
23 |
24 |
25 |

26 |
27 |
28 |
29 |
30 |
59 |
60 | );
61 | }
62 |
63 | export default Group;
--------------------------------------------------------------------------------
/example/basic-usage/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | function Index() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 |
15 |
16 |

17 |
18 |
19 |
20 |
21 |

22 |
23 |
24 |
25 |
26 |

27 |
28 |
29 |
30 |
31 |
32 |
Home
33 |
34 |
35 |
This is the home page. Here we have some really
36 | interested stuff about the user and whotnot.
37 |
38 |
39 |
40 |
41 |
59 |
60 | );
61 | }
62 |
63 | export default Index;
--------------------------------------------------------------------------------
/example/basic-usage/pages/place.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | function Place() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |

11 |
12 |
13 |
14 |
15 |

16 |
17 |
18 |
19 |
20 |

21 |
22 |
23 |
24 |
25 |

26 |
27 |
28 |
29 |
30 |
31 |
32 |
Places
33 |
34 |
35 |
Place page with some other text.
36 |
37 |
38 |
39 |
40 |
60 |
61 | );
62 | }
63 |
64 | export default Place;
--------------------------------------------------------------------------------
/example/basic-usage/public/bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/bg1.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/bg2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/bg2.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/bg3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/bg3.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/honolulu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/honolulu.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/img1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/img1.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/img2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/img2.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/peru.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/peru.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/profile1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/profile1.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/santorini.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/santorini.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/wf1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/wf1.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/wf2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/wf2.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/wf3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/wf3.jpg
--------------------------------------------------------------------------------
/example/basic-usage/public/wf4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Irrelon/nextjs-morph-page/d5aa2d8d209c7b0ce3c997edf1da822796da60b5/example/basic-usage/public/wf4.jpg
--------------------------------------------------------------------------------
/example/basic-usage/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime-corejs3@^7.10.2":
6 | version "7.17.2"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13"
8 | integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==
9 | dependencies:
10 | core-js-pure "^3.20.2"
11 | regenerator-runtime "^0.13.4"
12 |
13 | "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3":
14 | version "7.17.2"
15 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
16 | integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
17 | dependencies:
18 | regenerator-runtime "^0.13.4"
19 |
20 | "@eslint/eslintrc@^1.1.0":
21 | version "1.1.0"
22 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3"
23 | integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==
24 | dependencies:
25 | ajv "^6.12.4"
26 | debug "^4.3.2"
27 | espree "^9.3.1"
28 | globals "^13.9.0"
29 | ignore "^4.0.6"
30 | import-fresh "^3.2.1"
31 | js-yaml "^4.1.0"
32 | minimatch "^3.0.4"
33 | strip-json-comments "^3.1.1"
34 |
35 | "@humanwhocodes/config-array@^0.9.2":
36 | version "0.9.5"
37 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
38 | integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==
39 | dependencies:
40 | "@humanwhocodes/object-schema" "^1.2.1"
41 | debug "^4.1.1"
42 | minimatch "^3.0.4"
43 |
44 | "@humanwhocodes/object-schema@^1.2.1":
45 | version "1.2.1"
46 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
47 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
48 |
49 | "@next/env@12.1.0":
50 | version "12.1.0"
51 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.0.tgz#73713399399b34aa5a01771fb73272b55b22c314"
52 | integrity sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==
53 |
54 | "@next/eslint-plugin-next@12.1.0":
55 | version "12.1.0"
56 | resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.0.tgz#32586a11378b3ffa5a93ac40a3c44ad99d70e95a"
57 | integrity sha512-WFiyvSM2G5cQmh32t/SiQuJ+I2O+FHVlK/RFw5b1565O2kEM/36EXncjt88Pa+X5oSc+1SS+tWxowWJd1lqI+g==
58 | dependencies:
59 | glob "7.1.7"
60 |
61 | "@next/swc-android-arm64@12.1.0":
62 | version "12.1.0"
63 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz#865ba3a9afc204ff2bdeea49dd64d58705007a39"
64 | integrity sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==
65 |
66 | "@next/swc-darwin-arm64@12.1.0":
67 | version "12.1.0"
68 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz#08e8b411b8accd095009ed12efbc2f1d4d547135"
69 | integrity sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==
70 |
71 | "@next/swc-darwin-x64@12.1.0":
72 | version "12.1.0"
73 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz#fcd684497a76e8feaca88db3c394480ff0b007cd"
74 | integrity sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==
75 |
76 | "@next/swc-linux-arm-gnueabihf@12.1.0":
77 | version "12.1.0"
78 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz#9ec6380a27938a5799aaa6035c205b3c478468a7"
79 | integrity sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==
80 |
81 | "@next/swc-linux-arm64-gnu@12.1.0":
82 | version "12.1.0"
83 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz#7f4196dff1049cea479607c75b81033ae2dbd093"
84 | integrity sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==
85 |
86 | "@next/swc-linux-arm64-musl@12.1.0":
87 | version "12.1.0"
88 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz#b445f767569cdc2dddee785ca495e1a88c025566"
89 | integrity sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==
90 |
91 | "@next/swc-linux-x64-gnu@12.1.0":
92 | version "12.1.0"
93 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz#67610e9be4fbc987de7535f1bcb17e45fe12f90e"
94 | integrity sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==
95 |
96 | "@next/swc-linux-x64-musl@12.1.0":
97 | version "12.1.0"
98 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz#ea19a23db08a9f2e34ac30401f774cf7d1669d31"
99 | integrity sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==
100 |
101 | "@next/swc-win32-arm64-msvc@12.1.0":
102 | version "12.1.0"
103 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz#eadf054fc412085659b98e145435bbba200b5283"
104 | integrity sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==
105 |
106 | "@next/swc-win32-ia32-msvc@12.1.0":
107 | version "12.1.0"
108 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz#68faeae10c89f698bf9d28759172b74c9c21bda1"
109 | integrity sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==
110 |
111 | "@next/swc-win32-x64-msvc@12.1.0":
112 | version "12.1.0"
113 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz#d27e7e76c87a460a4da99c5bfdb1618dcd6cd064"
114 | integrity sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==
115 |
116 | "@nodelib/fs.scandir@2.1.5":
117 | version "2.1.5"
118 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
119 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
120 | dependencies:
121 | "@nodelib/fs.stat" "2.0.5"
122 | run-parallel "^1.1.9"
123 |
124 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
125 | version "2.0.5"
126 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
127 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
128 |
129 | "@nodelib/fs.walk@^1.2.3":
130 | version "1.2.8"
131 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
132 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
133 | dependencies:
134 | "@nodelib/fs.scandir" "2.1.5"
135 | fastq "^1.6.0"
136 |
137 | "@rushstack/eslint-patch@^1.0.8":
138 | version "1.1.0"
139 | resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
140 | integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
141 |
142 | "@types/json5@^0.0.29":
143 | version "0.0.29"
144 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
145 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
146 |
147 | "@typescript-eslint/parser@^5.0.0":
148 | version "5.12.1"
149 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.12.1.tgz#b090289b553b8aa0899740d799d0f96e6f49771b"
150 | integrity sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==
151 | dependencies:
152 | "@typescript-eslint/scope-manager" "5.12.1"
153 | "@typescript-eslint/types" "5.12.1"
154 | "@typescript-eslint/typescript-estree" "5.12.1"
155 | debug "^4.3.2"
156 |
157 | "@typescript-eslint/scope-manager@5.12.1":
158 | version "5.12.1"
159 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz#58734fd45d2d1dec49641aacc075fba5f0968817"
160 | integrity sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==
161 | dependencies:
162 | "@typescript-eslint/types" "5.12.1"
163 | "@typescript-eslint/visitor-keys" "5.12.1"
164 |
165 | "@typescript-eslint/types@5.12.1":
166 | version "5.12.1"
167 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.12.1.tgz#46a36a28ff4d946821b58fe5a73c81dc2e12aa89"
168 | integrity sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==
169 |
170 | "@typescript-eslint/typescript-estree@5.12.1":
171 | version "5.12.1"
172 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz#6a9425b9c305bcbc38e2d1d9a24c08e15e02b722"
173 | integrity sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==
174 | dependencies:
175 | "@typescript-eslint/types" "5.12.1"
176 | "@typescript-eslint/visitor-keys" "5.12.1"
177 | debug "^4.3.2"
178 | globby "^11.0.4"
179 | is-glob "^4.0.3"
180 | semver "^7.3.5"
181 | tsutils "^3.21.0"
182 |
183 | "@typescript-eslint/visitor-keys@5.12.1":
184 | version "5.12.1"
185 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz#f722da106c8f9695ae5640574225e45af3e52ec3"
186 | integrity sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==
187 | dependencies:
188 | "@typescript-eslint/types" "5.12.1"
189 | eslint-visitor-keys "^3.0.0"
190 |
191 | acorn-jsx@^5.3.1:
192 | version "5.3.2"
193 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
194 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
195 |
196 | acorn@^8.7.0:
197 | version "8.7.0"
198 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
199 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
200 |
201 | ajv@^6.10.0, ajv@^6.12.4:
202 | version "6.12.6"
203 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
204 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
205 | dependencies:
206 | fast-deep-equal "^3.1.1"
207 | fast-json-stable-stringify "^2.0.0"
208 | json-schema-traverse "^0.4.1"
209 | uri-js "^4.2.2"
210 |
211 | ansi-regex@^5.0.1:
212 | version "5.0.1"
213 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
214 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
215 |
216 | ansi-styles@^4.1.0:
217 | version "4.3.0"
218 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
219 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
220 | dependencies:
221 | color-convert "^2.0.1"
222 |
223 | argparse@^2.0.1:
224 | version "2.0.1"
225 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
226 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
227 |
228 | aria-query@^4.2.2:
229 | version "4.2.2"
230 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
231 | integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
232 | dependencies:
233 | "@babel/runtime" "^7.10.2"
234 | "@babel/runtime-corejs3" "^7.10.2"
235 |
236 | array-includes@^3.1.3, array-includes@^3.1.4:
237 | version "3.1.4"
238 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
239 | integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
240 | dependencies:
241 | call-bind "^1.0.2"
242 | define-properties "^1.1.3"
243 | es-abstract "^1.19.1"
244 | get-intrinsic "^1.1.1"
245 | is-string "^1.0.7"
246 |
247 | array-union@^2.1.0:
248 | version "2.1.0"
249 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
250 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
251 |
252 | array.prototype.flat@^1.2.5:
253 | version "1.2.5"
254 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
255 | integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
256 | dependencies:
257 | call-bind "^1.0.2"
258 | define-properties "^1.1.3"
259 | es-abstract "^1.19.0"
260 |
261 | array.prototype.flatmap@^1.2.5:
262 | version "1.2.5"
263 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"
264 | integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
265 | dependencies:
266 | call-bind "^1.0.0"
267 | define-properties "^1.1.3"
268 | es-abstract "^1.19.0"
269 |
270 | ast-types-flow@^0.0.7:
271 | version "0.0.7"
272 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
273 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
274 |
275 | axe-core@^4.3.5:
276 | version "4.4.1"
277 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
278 | integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
279 |
280 | axobject-query@^2.2.0:
281 | version "2.2.0"
282 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
283 | integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
284 |
285 | balanced-match@^1.0.0:
286 | version "1.0.2"
287 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
288 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
289 |
290 | brace-expansion@^1.1.7:
291 | version "1.1.11"
292 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
293 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
294 | dependencies:
295 | balanced-match "^1.0.0"
296 | concat-map "0.0.1"
297 |
298 | braces@^3.0.1:
299 | version "3.0.2"
300 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
301 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
302 | dependencies:
303 | fill-range "^7.0.1"
304 |
305 | call-bind@^1.0.0, call-bind@^1.0.2:
306 | version "1.0.2"
307 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
308 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
309 | dependencies:
310 | function-bind "^1.1.1"
311 | get-intrinsic "^1.0.2"
312 |
313 | callsites@^3.0.0:
314 | version "3.1.0"
315 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
316 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
317 |
318 | caniuse-lite@^1.0.30001283:
319 | version "1.0.30001312"
320 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f"
321 | integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==
322 |
323 | chalk@^4.0.0:
324 | version "4.1.2"
325 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
326 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
327 | dependencies:
328 | ansi-styles "^4.1.0"
329 | supports-color "^7.1.0"
330 |
331 | color-convert@^2.0.1:
332 | version "2.0.1"
333 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
334 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
335 | dependencies:
336 | color-name "~1.1.4"
337 |
338 | color-name@~1.1.4:
339 | version "1.1.4"
340 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
341 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
342 |
343 | concat-map@0.0.1:
344 | version "0.0.1"
345 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
346 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
347 |
348 | core-js-pure@^3.20.2:
349 | version "3.21.1"
350 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51"
351 | integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==
352 |
353 | cross-spawn@^7.0.2:
354 | version "7.0.3"
355 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
356 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
357 | dependencies:
358 | path-key "^3.1.0"
359 | shebang-command "^2.0.0"
360 | which "^2.0.1"
361 |
362 | damerau-levenshtein@^1.0.7:
363 | version "1.0.8"
364 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
365 | integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
366 |
367 | debug@^2.6.9:
368 | version "2.6.9"
369 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
370 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
371 | dependencies:
372 | ms "2.0.0"
373 |
374 | debug@^3.2.7:
375 | version "3.2.7"
376 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
377 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
378 | dependencies:
379 | ms "^2.1.1"
380 |
381 | debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
382 | version "4.3.3"
383 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
384 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
385 | dependencies:
386 | ms "2.1.2"
387 |
388 | deep-is@^0.1.3:
389 | version "0.1.4"
390 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
391 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
392 |
393 | define-properties@^1.1.3:
394 | version "1.1.3"
395 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
396 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
397 | dependencies:
398 | object-keys "^1.0.12"
399 |
400 | dir-glob@^3.0.1:
401 | version "3.0.1"
402 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
403 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
404 | dependencies:
405 | path-type "^4.0.0"
406 |
407 | doctrine@^2.1.0:
408 | version "2.1.0"
409 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
410 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
411 | dependencies:
412 | esutils "^2.0.2"
413 |
414 | doctrine@^3.0.0:
415 | version "3.0.0"
416 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
417 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
418 | dependencies:
419 | esutils "^2.0.2"
420 |
421 | dom-helpers@^3.4.0:
422 | version "3.4.0"
423 | resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8"
424 | integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==
425 | dependencies:
426 | "@babel/runtime" "^7.1.2"
427 |
428 | emoji-regex@^9.2.2:
429 | version "9.2.2"
430 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
431 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
432 |
433 | es-abstract@^1.19.0, es-abstract@^1.19.1:
434 | version "1.19.1"
435 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
436 | integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
437 | dependencies:
438 | call-bind "^1.0.2"
439 | es-to-primitive "^1.2.1"
440 | function-bind "^1.1.1"
441 | get-intrinsic "^1.1.1"
442 | get-symbol-description "^1.0.0"
443 | has "^1.0.3"
444 | has-symbols "^1.0.2"
445 | internal-slot "^1.0.3"
446 | is-callable "^1.2.4"
447 | is-negative-zero "^2.0.1"
448 | is-regex "^1.1.4"
449 | is-shared-array-buffer "^1.0.1"
450 | is-string "^1.0.7"
451 | is-weakref "^1.0.1"
452 | object-inspect "^1.11.0"
453 | object-keys "^1.1.1"
454 | object.assign "^4.1.2"
455 | string.prototype.trimend "^1.0.4"
456 | string.prototype.trimstart "^1.0.4"
457 | unbox-primitive "^1.0.1"
458 |
459 | es-to-primitive@^1.2.1:
460 | version "1.2.1"
461 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
462 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
463 | dependencies:
464 | is-callable "^1.1.4"
465 | is-date-object "^1.0.1"
466 | is-symbol "^1.0.2"
467 |
468 | escape-string-regexp@^4.0.0:
469 | version "4.0.0"
470 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
471 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
472 |
473 | eslint-config-next@12.1.0:
474 | version "12.1.0"
475 | resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.0.tgz#8ace680dc5207e6ab6c915f3989adec122f582e7"
476 | integrity sha512-tBhuUgoDITcdcM7xFvensi9I5WTI4dnvH4ETGRg1U8ZKpXrZsWQFdOKIDzR3RLP5HR3xXrLviaMM4c3zVoE/pA==
477 | dependencies:
478 | "@next/eslint-plugin-next" "12.1.0"
479 | "@rushstack/eslint-patch" "^1.0.8"
480 | "@typescript-eslint/parser" "^5.0.0"
481 | eslint-import-resolver-node "^0.3.4"
482 | eslint-import-resolver-typescript "^2.4.0"
483 | eslint-plugin-import "^2.25.2"
484 | eslint-plugin-jsx-a11y "^6.5.1"
485 | eslint-plugin-react "^7.27.0"
486 | eslint-plugin-react-hooks "^4.3.0"
487 |
488 | eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6:
489 | version "0.3.6"
490 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd"
491 | integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==
492 | dependencies:
493 | debug "^3.2.7"
494 | resolve "^1.20.0"
495 |
496 | eslint-import-resolver-typescript@^2.4.0:
497 | version "2.5.0"
498 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz#07661966b272d14ba97f597b51e1a588f9722f0a"
499 | integrity sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==
500 | dependencies:
501 | debug "^4.3.1"
502 | glob "^7.1.7"
503 | is-glob "^4.0.1"
504 | resolve "^1.20.0"
505 | tsconfig-paths "^3.9.0"
506 |
507 | eslint-module-utils@^2.7.2:
508 | version "2.7.3"
509 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee"
510 | integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==
511 | dependencies:
512 | debug "^3.2.7"
513 | find-up "^2.1.0"
514 |
515 | eslint-plugin-import@^2.25.2:
516 | version "2.25.4"
517 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1"
518 | integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==
519 | dependencies:
520 | array-includes "^3.1.4"
521 | array.prototype.flat "^1.2.5"
522 | debug "^2.6.9"
523 | doctrine "^2.1.0"
524 | eslint-import-resolver-node "^0.3.6"
525 | eslint-module-utils "^2.7.2"
526 | has "^1.0.3"
527 | is-core-module "^2.8.0"
528 | is-glob "^4.0.3"
529 | minimatch "^3.0.4"
530 | object.values "^1.1.5"
531 | resolve "^1.20.0"
532 | tsconfig-paths "^3.12.0"
533 |
534 | eslint-plugin-jsx-a11y@^6.5.1:
535 | version "6.5.1"
536 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8"
537 | integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==
538 | dependencies:
539 | "@babel/runtime" "^7.16.3"
540 | aria-query "^4.2.2"
541 | array-includes "^3.1.4"
542 | ast-types-flow "^0.0.7"
543 | axe-core "^4.3.5"
544 | axobject-query "^2.2.0"
545 | damerau-levenshtein "^1.0.7"
546 | emoji-regex "^9.2.2"
547 | has "^1.0.3"
548 | jsx-ast-utils "^3.2.1"
549 | language-tags "^1.0.5"
550 | minimatch "^3.0.4"
551 |
552 | eslint-plugin-react-hooks@^4.3.0:
553 | version "4.3.0"
554 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172"
555 | integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==
556 |
557 | eslint-plugin-react@^7.27.0:
558 | version "7.28.0"
559 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf"
560 | integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==
561 | dependencies:
562 | array-includes "^3.1.4"
563 | array.prototype.flatmap "^1.2.5"
564 | doctrine "^2.1.0"
565 | estraverse "^5.3.0"
566 | jsx-ast-utils "^2.4.1 || ^3.0.0"
567 | minimatch "^3.0.4"
568 | object.entries "^1.1.5"
569 | object.fromentries "^2.0.5"
570 | object.hasown "^1.1.0"
571 | object.values "^1.1.5"
572 | prop-types "^15.7.2"
573 | resolve "^2.0.0-next.3"
574 | semver "^6.3.0"
575 | string.prototype.matchall "^4.0.6"
576 |
577 | eslint-scope@^7.1.1:
578 | version "7.1.1"
579 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
580 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
581 | dependencies:
582 | esrecurse "^4.3.0"
583 | estraverse "^5.2.0"
584 |
585 | eslint-utils@^3.0.0:
586 | version "3.0.0"
587 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
588 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
589 | dependencies:
590 | eslint-visitor-keys "^2.0.0"
591 |
592 | eslint-visitor-keys@^2.0.0:
593 | version "2.1.0"
594 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
595 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
596 |
597 | eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0:
598 | version "3.3.0"
599 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
600 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
601 |
602 | eslint@^8.9.0:
603 | version "8.9.0"
604 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.9.0.tgz#a2a8227a99599adc4342fd9b854cb8d8d6412fdb"
605 | integrity sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==
606 | dependencies:
607 | "@eslint/eslintrc" "^1.1.0"
608 | "@humanwhocodes/config-array" "^0.9.2"
609 | ajv "^6.10.0"
610 | chalk "^4.0.0"
611 | cross-spawn "^7.0.2"
612 | debug "^4.3.2"
613 | doctrine "^3.0.0"
614 | escape-string-regexp "^4.0.0"
615 | eslint-scope "^7.1.1"
616 | eslint-utils "^3.0.0"
617 | eslint-visitor-keys "^3.3.0"
618 | espree "^9.3.1"
619 | esquery "^1.4.0"
620 | esutils "^2.0.2"
621 | fast-deep-equal "^3.1.3"
622 | file-entry-cache "^6.0.1"
623 | functional-red-black-tree "^1.0.1"
624 | glob-parent "^6.0.1"
625 | globals "^13.6.0"
626 | ignore "^5.2.0"
627 | import-fresh "^3.0.0"
628 | imurmurhash "^0.1.4"
629 | is-glob "^4.0.0"
630 | js-yaml "^4.1.0"
631 | json-stable-stringify-without-jsonify "^1.0.1"
632 | levn "^0.4.1"
633 | lodash.merge "^4.6.2"
634 | minimatch "^3.0.4"
635 | natural-compare "^1.4.0"
636 | optionator "^0.9.1"
637 | regexpp "^3.2.0"
638 | strip-ansi "^6.0.1"
639 | strip-json-comments "^3.1.0"
640 | text-table "^0.2.0"
641 | v8-compile-cache "^2.0.3"
642 |
643 | espree@^9.3.1:
644 | version "9.3.1"
645 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd"
646 | integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==
647 | dependencies:
648 | acorn "^8.7.0"
649 | acorn-jsx "^5.3.1"
650 | eslint-visitor-keys "^3.3.0"
651 |
652 | esquery@^1.4.0:
653 | version "1.4.0"
654 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
655 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
656 | dependencies:
657 | estraverse "^5.1.0"
658 |
659 | esrecurse@^4.3.0:
660 | version "4.3.0"
661 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
662 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
663 | dependencies:
664 | estraverse "^5.2.0"
665 |
666 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
667 | version "5.3.0"
668 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
669 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
670 |
671 | esutils@^2.0.2:
672 | version "2.0.3"
673 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
674 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
675 |
676 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
677 | version "3.1.3"
678 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
679 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
680 |
681 | fast-glob@^3.2.9:
682 | version "3.2.11"
683 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
684 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
685 | dependencies:
686 | "@nodelib/fs.stat" "^2.0.2"
687 | "@nodelib/fs.walk" "^1.2.3"
688 | glob-parent "^5.1.2"
689 | merge2 "^1.3.0"
690 | micromatch "^4.0.4"
691 |
692 | fast-json-stable-stringify@^2.0.0:
693 | version "2.1.0"
694 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
695 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
696 |
697 | fast-levenshtein@^2.0.6:
698 | version "2.0.6"
699 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
700 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
701 |
702 | fastq@^1.6.0:
703 | version "1.13.0"
704 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
705 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
706 | dependencies:
707 | reusify "^1.0.4"
708 |
709 | file-entry-cache@^6.0.1:
710 | version "6.0.1"
711 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
712 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
713 | dependencies:
714 | flat-cache "^3.0.4"
715 |
716 | fill-range@^7.0.1:
717 | version "7.0.1"
718 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
719 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
720 | dependencies:
721 | to-regex-range "^5.0.1"
722 |
723 | find-up@^2.1.0:
724 | version "2.1.0"
725 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
726 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
727 | dependencies:
728 | locate-path "^2.0.0"
729 |
730 | flat-cache@^3.0.4:
731 | version "3.0.4"
732 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
733 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
734 | dependencies:
735 | flatted "^3.1.0"
736 | rimraf "^3.0.2"
737 |
738 | flatted@^3.1.0:
739 | version "3.2.5"
740 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
741 | integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
742 |
743 | fs.realpath@^1.0.0:
744 | version "1.0.0"
745 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
746 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
747 |
748 | function-bind@^1.1.1:
749 | version "1.1.1"
750 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
751 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
752 |
753 | functional-red-black-tree@^1.0.1:
754 | version "1.0.1"
755 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
756 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
757 |
758 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
759 | version "1.1.1"
760 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
761 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
762 | dependencies:
763 | function-bind "^1.1.1"
764 | has "^1.0.3"
765 | has-symbols "^1.0.1"
766 |
767 | get-symbol-description@^1.0.0:
768 | version "1.0.0"
769 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
770 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
771 | dependencies:
772 | call-bind "^1.0.2"
773 | get-intrinsic "^1.1.1"
774 |
775 | glob-parent@^5.1.2:
776 | version "5.1.2"
777 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
778 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
779 | dependencies:
780 | is-glob "^4.0.1"
781 |
782 | glob-parent@^6.0.1:
783 | version "6.0.2"
784 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
785 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
786 | dependencies:
787 | is-glob "^4.0.3"
788 |
789 | glob@7.1.7:
790 | version "7.1.7"
791 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
792 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
793 | dependencies:
794 | fs.realpath "^1.0.0"
795 | inflight "^1.0.4"
796 | inherits "2"
797 | minimatch "^3.0.4"
798 | once "^1.3.0"
799 | path-is-absolute "^1.0.0"
800 |
801 | glob@^7.1.3, glob@^7.1.7:
802 | version "7.2.0"
803 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
804 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
805 | dependencies:
806 | fs.realpath "^1.0.0"
807 | inflight "^1.0.4"
808 | inherits "2"
809 | minimatch "^3.0.4"
810 | once "^1.3.0"
811 | path-is-absolute "^1.0.0"
812 |
813 | globals@^13.6.0, globals@^13.9.0:
814 | version "13.12.1"
815 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb"
816 | integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==
817 | dependencies:
818 | type-fest "^0.20.2"
819 |
820 | globby@^11.0.4:
821 | version "11.1.0"
822 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
823 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
824 | dependencies:
825 | array-union "^2.1.0"
826 | dir-glob "^3.0.1"
827 | fast-glob "^3.2.9"
828 | ignore "^5.2.0"
829 | merge2 "^1.4.1"
830 | slash "^3.0.0"
831 |
832 | has-bigints@^1.0.1:
833 | version "1.0.1"
834 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
835 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
836 |
837 | has-flag@^4.0.0:
838 | version "4.0.0"
839 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
840 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
841 |
842 | has-symbols@^1.0.1, has-symbols@^1.0.2:
843 | version "1.0.2"
844 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
845 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
846 |
847 | has-tostringtag@^1.0.0:
848 | version "1.0.0"
849 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
850 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
851 | dependencies:
852 | has-symbols "^1.0.2"
853 |
854 | has@^1.0.3:
855 | version "1.0.3"
856 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
857 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
858 | dependencies:
859 | function-bind "^1.1.1"
860 |
861 | ignore@^4.0.6:
862 | version "4.0.6"
863 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
864 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
865 |
866 | ignore@^5.2.0:
867 | version "5.2.0"
868 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
869 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
870 |
871 | import-fresh@^3.0.0, import-fresh@^3.2.1:
872 | version "3.3.0"
873 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
874 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
875 | dependencies:
876 | parent-module "^1.0.0"
877 | resolve-from "^4.0.0"
878 |
879 | imurmurhash@^0.1.4:
880 | version "0.1.4"
881 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
882 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
883 |
884 | inflight@^1.0.4:
885 | version "1.0.6"
886 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
887 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
888 | dependencies:
889 | once "^1.3.0"
890 | wrappy "1"
891 |
892 | inherits@2:
893 | version "2.0.4"
894 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
895 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
896 |
897 | internal-slot@^1.0.3:
898 | version "1.0.3"
899 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
900 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
901 | dependencies:
902 | get-intrinsic "^1.1.0"
903 | has "^1.0.3"
904 | side-channel "^1.0.4"
905 |
906 | is-bigint@^1.0.1:
907 | version "1.0.4"
908 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
909 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
910 | dependencies:
911 | has-bigints "^1.0.1"
912 |
913 | is-boolean-object@^1.1.0:
914 | version "1.1.2"
915 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
916 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
917 | dependencies:
918 | call-bind "^1.0.2"
919 | has-tostringtag "^1.0.0"
920 |
921 | is-callable@^1.1.4, is-callable@^1.2.4:
922 | version "1.2.4"
923 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
924 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
925 |
926 | is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1:
927 | version "2.8.1"
928 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
929 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
930 | dependencies:
931 | has "^1.0.3"
932 |
933 | is-date-object@^1.0.1:
934 | version "1.0.5"
935 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
936 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
937 | dependencies:
938 | has-tostringtag "^1.0.0"
939 |
940 | is-extglob@^2.1.1:
941 | version "2.1.1"
942 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
943 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
944 |
945 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
946 | version "4.0.3"
947 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
948 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
949 | dependencies:
950 | is-extglob "^2.1.1"
951 |
952 | is-negative-zero@^2.0.1:
953 | version "2.0.2"
954 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
955 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
956 |
957 | is-number-object@^1.0.4:
958 | version "1.0.6"
959 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
960 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
961 | dependencies:
962 | has-tostringtag "^1.0.0"
963 |
964 | is-number@^7.0.0:
965 | version "7.0.0"
966 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
967 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
968 |
969 | is-regex@^1.1.4:
970 | version "1.1.4"
971 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
972 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
973 | dependencies:
974 | call-bind "^1.0.2"
975 | has-tostringtag "^1.0.0"
976 |
977 | is-shared-array-buffer@^1.0.1:
978 | version "1.0.1"
979 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
980 | integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
981 |
982 | is-string@^1.0.5, is-string@^1.0.7:
983 | version "1.0.7"
984 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
985 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
986 | dependencies:
987 | has-tostringtag "^1.0.0"
988 |
989 | is-symbol@^1.0.2, is-symbol@^1.0.3:
990 | version "1.0.4"
991 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
992 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
993 | dependencies:
994 | has-symbols "^1.0.2"
995 |
996 | is-weakref@^1.0.1:
997 | version "1.0.2"
998 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
999 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1000 | dependencies:
1001 | call-bind "^1.0.2"
1002 |
1003 | isexe@^2.0.0:
1004 | version "2.0.0"
1005 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1006 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1007 |
1008 | "js-tokens@^3.0.0 || ^4.0.0":
1009 | version "4.0.0"
1010 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1011 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1012 |
1013 | js-yaml@^4.1.0:
1014 | version "4.1.0"
1015 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1016 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1017 | dependencies:
1018 | argparse "^2.0.1"
1019 |
1020 | json-schema-traverse@^0.4.1:
1021 | version "0.4.1"
1022 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1023 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1024 |
1025 | json-stable-stringify-without-jsonify@^1.0.1:
1026 | version "1.0.1"
1027 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1028 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
1029 |
1030 | json5@^1.0.1:
1031 | version "1.0.1"
1032 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
1033 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
1034 | dependencies:
1035 | minimist "^1.2.0"
1036 |
1037 | "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
1038 | version "3.2.1"
1039 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
1040 | integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
1041 | dependencies:
1042 | array-includes "^3.1.3"
1043 | object.assign "^4.1.2"
1044 |
1045 | language-subtag-registry@~0.3.2:
1046 | version "0.3.21"
1047 | resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
1048 | integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==
1049 |
1050 | language-tags@^1.0.5:
1051 | version "1.0.5"
1052 | resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
1053 | integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
1054 | dependencies:
1055 | language-subtag-registry "~0.3.2"
1056 |
1057 | levn@^0.4.1:
1058 | version "0.4.1"
1059 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1060 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1061 | dependencies:
1062 | prelude-ls "^1.2.1"
1063 | type-check "~0.4.0"
1064 |
1065 | locate-path@^2.0.0:
1066 | version "2.0.0"
1067 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1068 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
1069 | dependencies:
1070 | p-locate "^2.0.0"
1071 | path-exists "^3.0.0"
1072 |
1073 | lodash.merge@^4.6.2:
1074 | version "4.6.2"
1075 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1076 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1077 |
1078 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1079 | version "1.4.0"
1080 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1081 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1082 | dependencies:
1083 | js-tokens "^3.0.0 || ^4.0.0"
1084 |
1085 | lru-cache@^6.0.0:
1086 | version "6.0.0"
1087 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1088 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1089 | dependencies:
1090 | yallist "^4.0.0"
1091 |
1092 | merge2@^1.3.0, merge2@^1.4.1:
1093 | version "1.4.1"
1094 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1095 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1096 |
1097 | micromatch@^4.0.4:
1098 | version "4.0.4"
1099 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
1100 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
1101 | dependencies:
1102 | braces "^3.0.1"
1103 | picomatch "^2.2.3"
1104 |
1105 | minimatch@^3.0.4:
1106 | version "3.1.2"
1107 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1108 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1109 | dependencies:
1110 | brace-expansion "^1.1.7"
1111 |
1112 | minimist@^1.2.0:
1113 | version "1.2.5"
1114 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1115 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1116 |
1117 | ms@2.0.0:
1118 | version "2.0.0"
1119 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1120 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1121 |
1122 | ms@2.1.2:
1123 | version "2.1.2"
1124 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1125 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1126 |
1127 | ms@^2.1.1:
1128 | version "2.1.3"
1129 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1130 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1131 |
1132 | nanoid@^3.1.30:
1133 | version "3.3.1"
1134 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
1135 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
1136 |
1137 | natural-compare@^1.4.0:
1138 | version "1.4.0"
1139 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1140 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1141 |
1142 | next@12.1.0:
1143 | version "12.1.0"
1144 | resolved "https://registry.yarnpkg.com/next/-/next-12.1.0.tgz#c33d753b644be92fc58e06e5a214f143da61dd5d"
1145 | integrity sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==
1146 | dependencies:
1147 | "@next/env" "12.1.0"
1148 | caniuse-lite "^1.0.30001283"
1149 | postcss "8.4.5"
1150 | styled-jsx "5.0.0"
1151 | use-subscription "1.5.1"
1152 | optionalDependencies:
1153 | "@next/swc-android-arm64" "12.1.0"
1154 | "@next/swc-darwin-arm64" "12.1.0"
1155 | "@next/swc-darwin-x64" "12.1.0"
1156 | "@next/swc-linux-arm-gnueabihf" "12.1.0"
1157 | "@next/swc-linux-arm64-gnu" "12.1.0"
1158 | "@next/swc-linux-arm64-musl" "12.1.0"
1159 | "@next/swc-linux-x64-gnu" "12.1.0"
1160 | "@next/swc-linux-x64-musl" "12.1.0"
1161 | "@next/swc-win32-arm64-msvc" "12.1.0"
1162 | "@next/swc-win32-ia32-msvc" "12.1.0"
1163 | "@next/swc-win32-x64-msvc" "12.1.0"
1164 |
1165 | nextjs-morph-page@^2.0.2:
1166 | version "2.0.3"
1167 | resolved "https://registry.yarnpkg.com/nextjs-morph-page/-/nextjs-morph-page-2.0.3.tgz#ffa8a6b468a0bc22f2cf13d8dc08fb37dd9ca165"
1168 | integrity sha512-pR//aLv3wIlSOmhTVpGiADh2RtJGalIIMtCYFXyJfTFuU/DIyzF8pz+x30pswgdnUBNcTw49oxJXHJ2+2cbQOQ==
1169 | dependencies:
1170 | prop-types "^15.6.2"
1171 | react "^16.6.3"
1172 | react-transition-group "^2.5.0"
1173 |
1174 | object-assign@^4.1.1:
1175 | version "4.1.1"
1176 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1177 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1178 |
1179 | object-inspect@^1.11.0, object-inspect@^1.9.0:
1180 | version "1.12.0"
1181 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
1182 | integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
1183 |
1184 | object-keys@^1.0.12, object-keys@^1.1.1:
1185 | version "1.1.1"
1186 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1187 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1188 |
1189 | object.assign@^4.1.2:
1190 | version "4.1.2"
1191 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1192 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1193 | dependencies:
1194 | call-bind "^1.0.0"
1195 | define-properties "^1.1.3"
1196 | has-symbols "^1.0.1"
1197 | object-keys "^1.1.1"
1198 |
1199 | object.entries@^1.1.5:
1200 | version "1.1.5"
1201 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
1202 | integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
1203 | dependencies:
1204 | call-bind "^1.0.2"
1205 | define-properties "^1.1.3"
1206 | es-abstract "^1.19.1"
1207 |
1208 | object.fromentries@^2.0.5:
1209 | version "2.0.5"
1210 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
1211 | integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
1212 | dependencies:
1213 | call-bind "^1.0.2"
1214 | define-properties "^1.1.3"
1215 | es-abstract "^1.19.1"
1216 |
1217 | object.hasown@^1.1.0:
1218 | version "1.1.0"
1219 | resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"
1220 | integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
1221 | dependencies:
1222 | define-properties "^1.1.3"
1223 | es-abstract "^1.19.1"
1224 |
1225 | object.values@^1.1.5:
1226 | version "1.1.5"
1227 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
1228 | integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
1229 | dependencies:
1230 | call-bind "^1.0.2"
1231 | define-properties "^1.1.3"
1232 | es-abstract "^1.19.1"
1233 |
1234 | once@^1.3.0:
1235 | version "1.4.0"
1236 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1237 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1238 | dependencies:
1239 | wrappy "1"
1240 |
1241 | optionator@^0.9.1:
1242 | version "0.9.1"
1243 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
1244 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1245 | dependencies:
1246 | deep-is "^0.1.3"
1247 | fast-levenshtein "^2.0.6"
1248 | levn "^0.4.1"
1249 | prelude-ls "^1.2.1"
1250 | type-check "^0.4.0"
1251 | word-wrap "^1.2.3"
1252 |
1253 | p-limit@^1.1.0:
1254 | version "1.3.0"
1255 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
1256 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
1257 | dependencies:
1258 | p-try "^1.0.0"
1259 |
1260 | p-locate@^2.0.0:
1261 | version "2.0.0"
1262 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
1263 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
1264 | dependencies:
1265 | p-limit "^1.1.0"
1266 |
1267 | p-try@^1.0.0:
1268 | version "1.0.0"
1269 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
1270 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
1271 |
1272 | parent-module@^1.0.0:
1273 | version "1.0.1"
1274 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1275 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1276 | dependencies:
1277 | callsites "^3.0.0"
1278 |
1279 | path-exists@^3.0.0:
1280 | version "3.0.0"
1281 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1282 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
1283 |
1284 | path-is-absolute@^1.0.0:
1285 | version "1.0.1"
1286 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1287 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1288 |
1289 | path-key@^3.1.0:
1290 | version "3.1.1"
1291 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1292 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1293 |
1294 | path-parse@^1.0.6, path-parse@^1.0.7:
1295 | version "1.0.7"
1296 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1297 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1298 |
1299 | path-type@^4.0.0:
1300 | version "4.0.0"
1301 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1302 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1303 |
1304 | picocolors@^1.0.0:
1305 | version "1.0.0"
1306 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1307 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1308 |
1309 | picomatch@^2.2.3:
1310 | version "2.3.1"
1311 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1312 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1313 |
1314 | postcss@8.4.5:
1315 | version "8.4.5"
1316 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
1317 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
1318 | dependencies:
1319 | nanoid "^3.1.30"
1320 | picocolors "^1.0.0"
1321 | source-map-js "^1.0.1"
1322 |
1323 | prelude-ls@^1.2.1:
1324 | version "1.2.1"
1325 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1326 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1327 |
1328 | prop-types@^15.6.2, prop-types@^15.7.2:
1329 | version "15.8.1"
1330 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
1331 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1332 | dependencies:
1333 | loose-envify "^1.4.0"
1334 | object-assign "^4.1.1"
1335 | react-is "^16.13.1"
1336 |
1337 | punycode@^2.1.0:
1338 | version "2.1.1"
1339 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1340 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1341 |
1342 | queue-microtask@^1.2.2:
1343 | version "1.2.3"
1344 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1345 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1346 |
1347 | react-dom@17.0.2:
1348 | version "17.0.2"
1349 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
1350 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
1351 | dependencies:
1352 | loose-envify "^1.1.0"
1353 | object-assign "^4.1.1"
1354 | scheduler "^0.20.2"
1355 |
1356 | react-is@^16.13.1:
1357 | version "16.13.1"
1358 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1359 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1360 |
1361 | react-lifecycles-compat@^3.0.4:
1362 | version "3.0.4"
1363 | resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
1364 | integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
1365 |
1366 | react-transition-group@^2.5.0:
1367 | version "2.9.0"
1368 | resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d"
1369 | integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==
1370 | dependencies:
1371 | dom-helpers "^3.4.0"
1372 | loose-envify "^1.4.0"
1373 | prop-types "^15.6.2"
1374 | react-lifecycles-compat "^3.0.4"
1375 |
1376 | react@17.0.2:
1377 | version "17.0.2"
1378 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
1379 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
1380 | dependencies:
1381 | loose-envify "^1.1.0"
1382 | object-assign "^4.1.1"
1383 |
1384 | react@^16.6.3:
1385 | version "16.14.0"
1386 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
1387 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
1388 | dependencies:
1389 | loose-envify "^1.1.0"
1390 | object-assign "^4.1.1"
1391 | prop-types "^15.6.2"
1392 |
1393 | regenerator-runtime@^0.13.4:
1394 | version "0.13.9"
1395 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
1396 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1397 |
1398 | regexp.prototype.flags@^1.3.1:
1399 | version "1.4.1"
1400 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
1401 | integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
1402 | dependencies:
1403 | call-bind "^1.0.2"
1404 | define-properties "^1.1.3"
1405 |
1406 | regexpp@^3.2.0:
1407 | version "3.2.0"
1408 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
1409 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
1410 |
1411 | resolve-from@^4.0.0:
1412 | version "4.0.0"
1413 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1414 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1415 |
1416 | resolve@^1.20.0:
1417 | version "1.22.0"
1418 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
1419 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
1420 | dependencies:
1421 | is-core-module "^2.8.1"
1422 | path-parse "^1.0.7"
1423 | supports-preserve-symlinks-flag "^1.0.0"
1424 |
1425 | resolve@^2.0.0-next.3:
1426 | version "2.0.0-next.3"
1427 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
1428 | integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
1429 | dependencies:
1430 | is-core-module "^2.2.0"
1431 | path-parse "^1.0.6"
1432 |
1433 | reusify@^1.0.4:
1434 | version "1.0.4"
1435 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1436 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1437 |
1438 | rimraf@^3.0.2:
1439 | version "3.0.2"
1440 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1441 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1442 | dependencies:
1443 | glob "^7.1.3"
1444 |
1445 | run-parallel@^1.1.9:
1446 | version "1.2.0"
1447 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1448 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1449 | dependencies:
1450 | queue-microtask "^1.2.2"
1451 |
1452 | scheduler@^0.20.2:
1453 | version "0.20.2"
1454 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
1455 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
1456 | dependencies:
1457 | loose-envify "^1.1.0"
1458 | object-assign "^4.1.1"
1459 |
1460 | semver@^6.3.0:
1461 | version "6.3.0"
1462 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1463 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1464 |
1465 | semver@^7.3.5:
1466 | version "7.3.5"
1467 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
1468 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
1469 | dependencies:
1470 | lru-cache "^6.0.0"
1471 |
1472 | shebang-command@^2.0.0:
1473 | version "2.0.0"
1474 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1475 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1476 | dependencies:
1477 | shebang-regex "^3.0.0"
1478 |
1479 | shebang-regex@^3.0.0:
1480 | version "3.0.0"
1481 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1482 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1483 |
1484 | side-channel@^1.0.4:
1485 | version "1.0.4"
1486 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
1487 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1488 | dependencies:
1489 | call-bind "^1.0.0"
1490 | get-intrinsic "^1.0.2"
1491 | object-inspect "^1.9.0"
1492 |
1493 | slash@^3.0.0:
1494 | version "3.0.0"
1495 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1496 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1497 |
1498 | source-map-js@^1.0.1:
1499 | version "1.0.2"
1500 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
1501 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1502 |
1503 | string.prototype.matchall@^4.0.6:
1504 | version "4.0.6"
1505 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
1506 | integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
1507 | dependencies:
1508 | call-bind "^1.0.2"
1509 | define-properties "^1.1.3"
1510 | es-abstract "^1.19.1"
1511 | get-intrinsic "^1.1.1"
1512 | has-symbols "^1.0.2"
1513 | internal-slot "^1.0.3"
1514 | regexp.prototype.flags "^1.3.1"
1515 | side-channel "^1.0.4"
1516 |
1517 | string.prototype.trimend@^1.0.4:
1518 | version "1.0.4"
1519 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
1520 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
1521 | dependencies:
1522 | call-bind "^1.0.2"
1523 | define-properties "^1.1.3"
1524 |
1525 | string.prototype.trimstart@^1.0.4:
1526 | version "1.0.4"
1527 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
1528 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
1529 | dependencies:
1530 | call-bind "^1.0.2"
1531 | define-properties "^1.1.3"
1532 |
1533 | strip-ansi@^6.0.1:
1534 | version "6.0.1"
1535 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1536 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1537 | dependencies:
1538 | ansi-regex "^5.0.1"
1539 |
1540 | strip-bom@^3.0.0:
1541 | version "3.0.0"
1542 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
1543 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
1544 |
1545 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1546 | version "3.1.1"
1547 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1548 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1549 |
1550 | styled-jsx@5.0.0:
1551 | version "5.0.0"
1552 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0.tgz#816b4b92e07b1786c6b7111821750e0ba4d26e77"
1553 | integrity sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==
1554 |
1555 | supports-color@^7.1.0:
1556 | version "7.2.0"
1557 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1558 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1559 | dependencies:
1560 | has-flag "^4.0.0"
1561 |
1562 | supports-preserve-symlinks-flag@^1.0.0:
1563 | version "1.0.0"
1564 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1565 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1566 |
1567 | text-table@^0.2.0:
1568 | version "0.2.0"
1569 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1570 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1571 |
1572 | to-regex-range@^5.0.1:
1573 | version "5.0.1"
1574 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1575 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1576 | dependencies:
1577 | is-number "^7.0.0"
1578 |
1579 | tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0:
1580 | version "3.12.0"
1581 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
1582 | integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
1583 | dependencies:
1584 | "@types/json5" "^0.0.29"
1585 | json5 "^1.0.1"
1586 | minimist "^1.2.0"
1587 | strip-bom "^3.0.0"
1588 |
1589 | tslib@^1.8.1:
1590 | version "1.14.1"
1591 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
1592 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1593 |
1594 | tsutils@^3.21.0:
1595 | version "3.21.0"
1596 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
1597 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
1598 | dependencies:
1599 | tslib "^1.8.1"
1600 |
1601 | type-check@^0.4.0, type-check@~0.4.0:
1602 | version "0.4.0"
1603 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1604 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1605 | dependencies:
1606 | prelude-ls "^1.2.1"
1607 |
1608 | type-fest@^0.20.2:
1609 | version "0.20.2"
1610 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1611 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1612 |
1613 | unbox-primitive@^1.0.1:
1614 | version "1.0.1"
1615 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
1616 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
1617 | dependencies:
1618 | function-bind "^1.1.1"
1619 | has-bigints "^1.0.1"
1620 | has-symbols "^1.0.2"
1621 | which-boxed-primitive "^1.0.2"
1622 |
1623 | uri-js@^4.2.2:
1624 | version "4.4.1"
1625 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1626 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1627 | dependencies:
1628 | punycode "^2.1.0"
1629 |
1630 | use-subscription@1.5.1:
1631 | version "1.5.1"
1632 | resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1"
1633 | integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
1634 | dependencies:
1635 | object-assign "^4.1.1"
1636 |
1637 | v8-compile-cache@^2.0.3:
1638 | version "2.3.0"
1639 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
1640 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
1641 |
1642 | which-boxed-primitive@^1.0.2:
1643 | version "1.0.2"
1644 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
1645 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
1646 | dependencies:
1647 | is-bigint "^1.0.1"
1648 | is-boolean-object "^1.1.0"
1649 | is-number-object "^1.0.4"
1650 | is-string "^1.0.5"
1651 | is-symbol "^1.0.3"
1652 |
1653 | which@^2.0.1:
1654 | version "2.0.2"
1655 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1656 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1657 | dependencies:
1658 | isexe "^2.0.0"
1659 |
1660 | word-wrap@^1.2.3:
1661 | version "1.2.3"
1662 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1663 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1664 |
1665 | wrappy@1:
1666 | version "1.0.2"
1667 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1668 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1669 |
1670 | yallist@^4.0.0:
1671 | version "4.0.0"
1672 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1673 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1674 |
--------------------------------------------------------------------------------
/lib/MorphTransition.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _Transition = _interopRequireDefault(require("react-transition-group/Transition"));
13 |
14 | var _PropTypes = require("react-transition-group/utils/PropTypes");
15 |
16 | var _irrelonMorph = _interopRequireWildcard(require("./irrelon-morph"));
17 |
18 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
19 |
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21 |
22 | function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
23 |
24 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25 |
26 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27 |
28 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29 |
30 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31 |
32 | function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
33 |
34 | function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
35 |
36 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
37 |
38 | function areChildrenDifferent(oldChildren, newChildren) {
39 | if (oldChildren === newChildren) {
40 | return false;
41 | }
42 |
43 | return !(_react.default.isValidElement(oldChildren) && _react.default.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key);
44 | }
45 |
46 | function buildClassName(className, state) {
47 | switch (state) {
48 | case 'enter':
49 | return "".concat(className, " enter");
50 |
51 | case 'entering':
52 | return "".concat(className, " enter ").concat(className, " enter active");
53 |
54 | case 'entered':
55 | return "".concat(className, " enter.done");
56 |
57 | case 'exit':
58 | return "".concat(className, " exit");
59 |
60 | case 'exiting':
61 | return "".concat(className, " exit ").concat(className, " exit active");
62 |
63 | case 'exited':
64 | return "".concat(className, " exit done");
65 |
66 | default:
67 | return '';
68 | }
69 | }
70 |
71 | function shouldDelayEnter(children) {
72 | return _react.default.isValidElement(children) && children.type.pageTransitionDelayEnter;
73 | }
74 |
75 | var MorphTransition =
76 | /*#__PURE__*/
77 | function (_React$Component) {
78 | _inherits(MorphTransition, _React$Component);
79 |
80 | function MorphTransition(props) {
81 | var _this;
82 |
83 | _classCallCheck(this, MorphTransition);
84 |
85 | _this = _possibleConstructorReturn(this, (MorphTransition.__proto__ || Object.getPrototypeOf(MorphTransition)).call(this, props));
86 | var children = props.children;
87 | _this.state = {
88 | state: 'enter',
89 | isIn: !shouldDelayEnter(children),
90 | currentChildren: children,
91 | nextChildren: null,
92 | renderedChildren: children,
93 | showLoading: false
94 | };
95 | return _this;
96 | }
97 |
98 | _createClass(MorphTransition, [{
99 | key: "componentDidMount",
100 | value: function componentDidMount() {
101 | if (shouldDelayEnter(this.props.children)) {
102 | this.setState({
103 | timeoutId: this.startEnterTimer()
104 | });
105 | }
106 | }
107 | }, {
108 | key: "componentDidUpdate",
109 | value: function componentDidUpdate(prevProps, prevState) {
110 | var _state = this.state,
111 | currentChildren = _state.currentChildren,
112 | renderedChildren = _state.renderedChildren,
113 | nextChildren = _state.nextChildren,
114 | isIn = _state.isIn,
115 | state = _state.state;
116 | var children = this.props.children;
117 | var hasNewChildren = areChildrenDifferent(currentChildren, children);
118 | var needsTransition = areChildrenDifferent(renderedChildren, children);
119 |
120 | if (hasNewChildren) {
121 | // We got a new set of children while we were transitioning some in
122 | // Immediately start transitioning out this component and update the next
123 | // component
124 | this.setState({
125 | isIn: false,
126 | nextChildren: children,
127 | currentChildren: children
128 | });
129 |
130 | if (this.state.timeoutId) {
131 | clearTimeout(this.state.timeoutId);
132 | } //console.log('New DOM changes');
133 |
134 | } else if (needsTransition && !isIn && state === 'exited') {
135 | if (shouldDelayEnter(nextChildren)) {
136 | // Wait for the ready callback to actually transition in, but still
137 | // mount the component to allow it to start loading things
138 | this.setState({
139 | renderedChildren: nextChildren,
140 | nextChildren: null
141 | });
142 | } else {
143 | // No need to wait, mount immediately
144 | this.setState({
145 | isIn: true,
146 | renderedChildren: nextChildren,
147 | nextChildren: null,
148 | timeoutId: this.startEnterTimer()
149 | });
150 | }
151 | } else if (prevState.showLoading && !this.state.showLoading) {
152 | // We hid the loading indicator; now that that change has been flushed to
153 | // the DOM, we can now bring in the next component!
154 | this.setState({
155 | isIn: true
156 | });
157 | }
158 | }
159 | }, {
160 | key: "componentWillUnmount",
161 | value: function componentWillUnmount() {
162 | if (this.state.timeoutId) {
163 | clearTimeout(this.state.timeoutId);
164 | }
165 | }
166 | }, {
167 | key: "onEnter",
168 | value: function onEnter(pageElem) {
169 | var _this2 = this;
170 |
171 | //console.log('onEnter');
172 | // It's safe to reenable scrolling now
173 | this.disableScrolling = false;
174 | this.setState({
175 | state: 'enter',
176 | showLoading: false
177 | });
178 |
179 | if (!this._sourceMorphElements) {
180 | return;
181 | } // Find the source and target pairs
182 |
183 |
184 | var promiseArr = [];
185 |
186 | this._sourceMorphElements.forEach(function (sourceItem) {
187 | var sourceNode = sourceItem.node;
188 | var customTargetSelector = sourceNode.getAttribute("data-morph-target");
189 | var targetSelector;
190 | var selectorType;
191 |
192 | if (customTargetSelector) {
193 | selectorType = "querySelector";
194 | targetSelector = customTargetSelector;
195 | } else {
196 | selectorType = "getElementById";
197 | targetSelector = sourceItem.node.id;
198 | }
199 |
200 | promiseArr.push(new Promise(function (resolve) {
201 | var target;
202 |
203 | if (selectorType === "getElementById") {
204 | target = document.getElementById(targetSelector);
205 | } else {
206 | target = pageElem.querySelector(targetSelector);
207 | }
208 |
209 | if (target) {
210 | (0, _irrelonMorph.default)(sourceItem, target, parseInt(sourceNode.getAttribute('data-morph-ms'), 10) || 600).then(function (morphData) {
211 | (0, _irrelonMorph.endMorph)(morphData);
212 | resolve();
213 | });
214 | } else {
215 | resolve();
216 | }
217 | }));
218 | });
219 |
220 | Promise.all(promiseArr).then(function () {
221 | _this2.onMorphComplete(pageElem);
222 | });
223 | }
224 | }, {
225 | key: "onEntering",
226 | value: function onEntering() {
227 | //console.log('onEntering');
228 | this.setState({
229 | state: 'entering'
230 | });
231 | }
232 | }, {
233 | key: "scanDomForMorphElements",
234 | value: function scanDomForMorphElements(pageElem) {
235 | var morphElems = pageElem.querySelectorAll('[data-morph-ms]');
236 | var sourceSnapshot = [];
237 |
238 | if (morphElems && morphElems.length) {
239 | for (var i = 0; i < morphElems.length; i++) {
240 | sourceSnapshot.push(new _irrelonMorph.ScannedNode(morphElems[i]));
241 | }
242 | }
243 |
244 | return sourceSnapshot;
245 | }
246 | }, {
247 | key: "onEntered",
248 | value: function onEntered(pageElem) {
249 | var _this3 = this;
250 |
251 | //console.log('onEntered');
252 | this.setState({
253 | state: 'entered'
254 | });
255 | setTimeout(function () {
256 | _this3._sourceMorphElements = _this3.scanDomForMorphElements(pageElem); //console.log('On entered detected ' + this._sourceMorphElements.length + ' new source elements');
257 | }, 1);
258 | }
259 | }, {
260 | key: "onMorphComplete",
261 | value: function onMorphComplete(pageElem) {
262 | this._sourceMorphElements = this.scanDomForMorphElements(pageElem); //console.log('On entered detected ' + this._sourceMorphElements.length + ' new source elements');
263 | }
264 | }, {
265 | key: "onExit",
266 | value: function onExit() {
267 | //console.log('onExit');
268 | // Disable scrolling until this component has unmounted
269 | this.disableScrolling = true;
270 | this.setState({
271 | state: 'exit'
272 | });
273 | (0, _irrelonMorph.cancelAllMorphs)();
274 | }
275 | }, {
276 | key: "onExiting",
277 | value: function onExiting() {
278 | //console.log('onExiting');
279 | this.setState({
280 | state: 'exiting'
281 | });
282 | }
283 | }, {
284 | key: "onExited",
285 | value: function onExited() {
286 | //console.log('onExited');
287 | this.setState({
288 | state: 'exited',
289 | renderedChildren: null
290 | });
291 | }
292 | }, {
293 | key: "onChildLoaded",
294 | value: function onChildLoaded() {
295 | //console.log('Child loaded');
296 | if (this.state.timeoutId) {
297 | clearTimeout(this.state.timeoutId);
298 | }
299 |
300 | this.setState({
301 | isIn: true
302 | });
303 | }
304 | }, {
305 | key: "startEnterTimer",
306 | value: function startEnterTimer() {
307 | var _this4 = this;
308 |
309 | return setTimeout(function () {
310 | _this4.setState({
311 | showLoading: true
312 | });
313 | }, this.props.loadingDelay);
314 | }
315 | }, {
316 | key: "render",
317 | value: function render() {
318 | var _this5 = this;
319 |
320 | var _props = this.props,
321 | timeout = _props.timeout,
322 | loadingCallbackName = _props.loadingCallbackName;
323 | var _state2 = this.state,
324 | children = _state2.renderedChildren,
325 | state = _state2.state;
326 |
327 | if (['entering', 'exiting', 'exited'].indexOf(state) !== -1) {
328 | // Need to reflow!
329 | // eslint-disable-next-line no-unused-expressions
330 | if (document.body) {
331 | document.body.scrollTop;
332 | }
333 | }
334 |
335 | var containerClassName = buildClassName(this.props.classNames, state);
336 | return _react.default.createElement(_Transition.default, {
337 | timeout: timeout,
338 | "in": this.state.isIn,
339 | appear: true,
340 | onEnter: function onEnter() {
341 | return _this5.onEnter.apply(_this5, arguments);
342 | },
343 | onEntering: function onEntering() {
344 | return _this5.onEntering.apply(_this5, arguments);
345 | },
346 | onEntered: function onEntered() {
347 | return _this5.onEntered.apply(_this5, arguments);
348 | },
349 | onExit: function onExit() {
350 | return _this5.onExit.apply(_this5, arguments);
351 | },
352 | onExiting: function onExiting() {
353 | return _this5.onExiting.apply(_this5, arguments);
354 | },
355 | onExited: function onExited() {
356 | return _this5.onExited.apply(_this5, arguments);
357 | }
358 | }, _react.default.createElement("div", {
359 | className: containerClassName
360 | }, children && _react.default.cloneElement(children, _defineProperty({}, loadingCallbackName, function () {
361 | return _this5.onChildLoaded();
362 | }))));
363 | }
364 | }]);
365 |
366 | return MorphTransition;
367 | }(_react.default.Component);
368 |
369 | MorphTransition.propTypes = {
370 | children: _propTypes.default.node.isRequired,
371 | classNames: _propTypes.default.string.isRequired,
372 | timeout: _propTypes.default.number.isRequired,
373 | loadingComponent: _propTypes.default.element,
374 | loadingDelay: _propTypes.default.number,
375 | loadingCallbackName: _propTypes.default.string,
376 |
377 | /* eslint-disable react/require-default-props */
378 | loadingTimeout: function loadingTimeout(props) {
379 | var pt = _PropTypes.timeoutsShape;
380 |
381 | if (props.loadingComponent) {
382 | pt = pt.isRequired;
383 | }
384 |
385 | for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
386 | args[_key - 1] = arguments[_key];
387 | }
388 |
389 | return pt.apply(void 0, [props].concat(args));
390 | },
391 | loadingClassNames: function loadingClassNames(props) {
392 | var pt = _propTypes.default.string;
393 |
394 | if (props.loadingTimeout) {
395 | pt = pt.isRequired;
396 | }
397 |
398 | for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
399 | args[_key2 - 1] = arguments[_key2];
400 | }
401 |
402 | return pt.apply(void 0, [props].concat(args));
403 | },
404 |
405 | /* eslint-enable react/require-default-props */
406 | monkeyPatchScrolling: _propTypes.default.bool
407 | };
408 | MorphTransition.defaultProps = {
409 | loadingComponent: null,
410 | loadingCallbackName: 'pageTransitionReadyToEnter',
411 | loadingDelay: 500,
412 | monkeyPatchScrolling: false
413 | };
414 | var _default = MorphTransition;
415 | exports.default = _default;
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _MorphTransition = _interopRequireDefault(require("./MorphTransition"));
9 |
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11 |
12 | var _default = _MorphTransition.default;
13 | exports.default = _default;
--------------------------------------------------------------------------------
/lib/irrelon-morph.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.cancelAllMorphs = exports.cancelMorph = exports.endMorph = exports.trackProps = exports.ScannedNode = exports.default = void 0;
7 |
8 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9 |
10 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
11 |
12 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13 |
14 | var activeMorphs = [];
15 | var trackProps = [{
16 | name: 'top',
17 | units: 'px'
18 | }, {
19 | name: 'left',
20 | units: 'px'
21 | }, {
22 | name: 'width'
23 | }, {
24 | name: 'height'
25 | }, {
26 | name: 'backgroundColor'
27 | }, {
28 | name: 'backgroundImage'
29 | }, {
30 | name: 'borderBottomLeftRadius'
31 | }, {
32 | name: 'borderBottomRightRadius'
33 | }, {
34 | name: 'borderTopLeftRadius'
35 | }, {
36 | name: 'borderTopRightRadius'
37 | }, {
38 | name: 'position',
39 | applyVal: false
40 | }, {
41 | name: 'marginTop',
42 | applyVal: false
43 | }, {
44 | name: 'marginLeft',
45 | applyVal: false
46 | }, {
47 | name: 'marginBottom',
48 | applyVal: false
49 | }, {
50 | name: 'marginRight',
51 | applyVal: false
52 | }, {
53 | name: 'paddingTop',
54 | applyVal: false
55 | }, {
56 | name: 'paddingLeft',
57 | applyVal: false
58 | }, {
59 | name: 'paddingBottom',
60 | applyVal: false
61 | }, {
62 | name: 'paddingRight',
63 | applyVal: false
64 | }, {
65 | name: 'borderTopWidth'
66 | }, {
67 | name: 'borderLeftWidth'
68 | }, {
69 | name: 'borderRightWidth'
70 | }, {
71 | name: 'borderBottomWidth'
72 | }, {
73 | name: 'borderTopColor'
74 | }, {
75 | name: 'borderLeftColor'
76 | }, {
77 | name: 'borderRightColor'
78 | }, {
79 | name: 'borderBottomColor'
80 | }];
81 | exports.trackProps = trackProps;
82 |
83 | var ScannedNode =
84 | /*#__PURE__*/
85 | function () {
86 | function ScannedNode(node) {
87 | _classCallCheck(this, ScannedNode);
88 |
89 | this.node = node;
90 | this.style = {};
91 | this.scanNode(node);
92 | }
93 |
94 | _createClass(ScannedNode, [{
95 | key: "scanNode",
96 | value: function scanNode(node) {
97 | var _this = this;
98 |
99 | var styles = window.getComputedStyle(node);
100 | var bounds = node.getBoundingClientRect();
101 | this.parentNode = node.parentNode;
102 | this.nextSibling = node.nextSibling;
103 | trackProps.forEach(function (prop) {
104 | _this.style[prop.name] = styles[prop.name];
105 | });
106 | this.style.top = bounds.top;
107 | this.style.left = bounds.left;
108 | }
109 | }]);
110 |
111 | return ScannedNode;
112 | }();
113 |
114 | exports.ScannedNode = ScannedNode;
115 |
116 | var registerMorph = function registerMorph(morphData) {
117 | activeMorphs.push(morphData);
118 | };
119 |
120 | var removeMorph = function removeMorph(morphData) {
121 | var index = activeMorphs.indexOf(morphData);
122 |
123 | if (index === -1) {
124 | return;
125 | }
126 |
127 | activeMorphs.splice(index, 1);
128 | };
129 |
130 | var applyStyles = function applyStyles(targetElem, targetData) {
131 | var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
132 | var modifier = options.modifier,
133 | overrides = options.overrides;
134 | trackProps.forEach(function (prop) {
135 | var applyVal = prop.applyVal !== false;
136 |
137 | if (overrides && overrides[prop.name] && overrides[prop.name].applyVal !== undefined) {
138 | applyVal = overrides[prop.name].applyVal;
139 | }
140 |
141 | if (!applyVal) return;
142 | var modifierVal;
143 |
144 | if (modifier) {
145 | modifierVal = modifier(prop);
146 | }
147 |
148 | if (modifierVal !== undefined) {
149 | targetElem.style[prop.name] = targetData.style[prop.name] + modifierVal + (prop.units ? prop.units : '');
150 | } else {
151 | targetElem.style[prop.name] = targetData.style[prop.name] + (prop.units ? prop.units : '');
152 | }
153 | });
154 | };
155 |
156 | var morphElement = function morphElement(sourceData, targetData, duration, options) {
157 | options = options || {};
158 | return new Promise(function (resolve) {
159 | if (!(sourceData instanceof ScannedNode)) {
160 | // We have to scan the source node
161 | sourceData = new ScannedNode(sourceData);
162 | }
163 |
164 | var source = sourceData.node; // Hide the source
165 |
166 | source.style.display = 'none'; // Read css from target
167 |
168 | if (!(targetData instanceof ScannedNode)) {
169 | // We have to scan the source node
170 | targetData = new ScannedNode(targetData);
171 | }
172 |
173 | var target = targetData.node;
174 | var targetPlaceholder;
175 |
176 | if (!target.getAttribute('data-morph-in-place')) {
177 | // Create a placeholder at the target location to maintain scrolling
178 | targetPlaceholder = document.createElement(target.tagName); //console.log('------- Placeholder');
179 |
180 | applyStyles(targetPlaceholder, targetData, {
181 | modifier: function modifier(prop) {
182 | switch (prop.name) {
183 | case 'top':
184 | return document.body.scrollTop;
185 |
186 | case 'left':
187 | return document.body.scrollLeft;
188 | }
189 | },
190 | overrides: {
191 | marginTop: {
192 | applyVal: true
193 | },
194 | marginLeft: {
195 | applyVal: true
196 | },
197 | marginRight: {
198 | applyVal: true
199 | },
200 | marginBottom: {
201 | applyVal: true
202 | },
203 | backgroundImage: {
204 | applyVal: false
205 | },
206 | backgroundColor: {
207 | applyVal: false
208 | }
209 | }
210 | });
211 |
212 | if (options.paintTarget) {
213 | targetPlaceholder.style.backgroundColor = '#ff0000';
214 | }
215 |
216 | targetData.parentNode.insertBefore(targetPlaceholder, targetData.nextSibling);
217 | } // Apply source css to target
218 | //console.log('------- Target move to source');
219 |
220 |
221 | applyStyles(target, sourceData);
222 |
223 | if (!target.getAttribute('data-morph-in-place')) {
224 | target.style.margin = '0px';
225 | target.style.position = 'absolute';
226 | document.body.appendChild(target);
227 | }
228 |
229 | setTimeout(function () {
230 | target.style.transition = "all ".concat(duration, "ms"); // Apply target css to target
231 | //console.log('------- Target move to target');
232 |
233 | applyStyles(target, targetData, {
234 | modifier: function modifier(prop) {
235 | switch (prop.name) {
236 | case 'top':
237 | return document.body.scrollTop;
238 |
239 | case 'left':
240 | return document.body.scrollLeft;
241 | }
242 | }
243 | });
244 | }, 1);
245 | var morphData = {
246 | target: target,
247 | targetData: targetData,
248 | targetPlaceholder: targetPlaceholder
249 | };
250 | morphData.timeoutId = setTimeout(function () {
251 | resolve(morphData);
252 | }, duration);
253 | registerMorph(morphData);
254 | });
255 | };
256 |
257 | var endMorph = function endMorph(morphData) {
258 | removeMorph(morphData); // Check that our DOM is still viable and not changed since we started this animation
259 |
260 | morphData.targetData.parentNode.insertBefore(morphData.target, morphData.targetData.nextSibling);
261 |
262 | if (!morphData.target.getAttribute('data-morph-in-place')) {
263 | morphData.targetPlaceholder.parentNode.removeChild(morphData.targetPlaceholder);
264 | }
265 |
266 | morphData.target.removeAttribute('style');
267 | };
268 |
269 | exports.endMorph = endMorph;
270 |
271 | var cancelAllMorphs = function cancelAllMorphs() {
272 | //console.log('Cancelling all morphs');
273 | // Cancel all morph functions
274 | for (var i = activeMorphs.length - 1; i >= 0; i--) {
275 | cancelMorph(activeMorphs[i]);
276 | } // Clear the canceller array
277 |
278 |
279 | activeMorphs.length = 0;
280 | };
281 |
282 | exports.cancelAllMorphs = cancelAllMorphs;
283 |
284 | var cancelMorph = function cancelMorph(morphData) {
285 | // Cancel single morph
286 | clearTimeout(morphData.timeoutId); // Return the target to its original settings
287 |
288 | endMorph(morphData);
289 | };
290 |
291 | exports.cancelMorph = cancelMorph;
292 | var _default = morphElement;
293 | exports.default = _default;
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextjs-morph-page",
3 | "version": "2.1.1",
4 | "description": "A next.js page transition component that allows you to morph individual elements from one page to another, identified by their element id attribute.",
5 | "main": "lib/index.js",
6 | "files": [
7 | "lib/"
8 | ],
9 | "scripts": {
10 | "build": "rimraf lib && babel src --out-dir lib",
11 | "test": "echo \"Error: no test specified\" && exit 1"
12 | },
13 | "author": "Rob Evans - Irrelon Software Limited",
14 | "license": "MIT",
15 | "dependencies": {
16 | "prop-types": "^15.6.2",
17 | "react": "17.0.2",
18 | "react-transition-group": "^2.5.0"
19 | },
20 | "devDependencies": {
21 | "@babel/cli": "7.0.0-beta.42",
22 | "@babel/core": "7.0.0-beta.42",
23 | "@babel/plugin-proposal-class-properties": "7.0.0-beta.42",
24 | "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.42",
25 | "@babel/preset-env": "7.0.0-beta.42",
26 | "@babel/preset-react": "7.0.0-beta.42",
27 | "react": "17.0.2",
28 | "react-dom": "17.0.2",
29 | "rimraf": "^2.6.2"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Page Transitions with Element Morphing
2 |
3 | This is a fork of the original work done here https://github.com/illinois/next-page-transitions and adds new functionality to morph pages at an element-level.
4 |
5 | ## Demo
6 |
7 | You can see a basic demo of this library in action here: https://basic-usage-uwkrojwfad.now.sh/
8 |
9 | > The demo is hosted on now.js. Start-up times on the now.js containers can take a long time if they haven't been used for a while. Just click the link and be patient :)
10 |
11 | ## Install
12 |
13 | ```bash
14 | npm i nextjs-morph-page --save
15 | ```
16 |
17 | ## Usage
18 | > If you have browser dev tools enabled and you disable network cache, images may appear to morph incorrectly. If you are seeing weird morphing on images, close your dev tools or re-enable network cache while testing morphs on images.
19 |
20 | Make sure that your app has a custom App component; if not, [follow the example](https://github.com/zeit/next.js#custom-app) on the Next.js readme to create one. Then, in your App's render method, wrap the page Component in a MorphTransition component.
21 |
22 | ```js
23 | import App, { Container } from 'next/app'
24 | import React from 'react'
25 | import MorphTransition from 'nextjs-morph-page'
26 |
27 | export default class MyApp extends App {
28 | static async getInitialProps({ Component, router, ctx }) {
29 | let pageProps = {}
30 |
31 | if (Component.getInitialProps) {
32 | pageProps = await Component.getInitialProps(ctx)
33 | }
34 |
35 | return { pageProps }
36 | }
37 |
38 | render() {
39 | const { Component, pageProps } = this.props;
40 | return (
41 |
42 |
43 |
44 |
45 |
61 |
62 | )
63 | }
64 | }
65 | ```
66 |
67 | ## Whole-Page Based Transitions
68 |
69 | When you move to a new page, the `Component` will change, and the
70 | `MorphTransition` component will detect that. Instead of immediately unmounting
71 | the page, it will apply the `morph.exit` class to a wrapper around
72 | the page to initialize the "exit" transition, and will then apply the
73 | `morph.exit.active` class as well to begin the transition. This is
74 | very similar to how the
75 | [react-transition-group](https://github.com/reactjs/react-transition-group)
76 | library does things. After the previous page has been animated out,
77 | the new page is mounted and a similar pair of `.morph.enter` and
78 | `morph.enter.active` classes will be applied. This process repeats
79 | every time a new page is navigated to.
80 |
81 | ## Element-Based Transitions
82 |
83 | As you move from one page to another the individual elements on the page can
84 | also be "morphed" from the source / current page to the target / destination
85 | page. To indicate an element to be morphed you must provide the element with
86 | an id that is the SAME ON BOTH PAGES as well as a `data-morph-ms` attribute
87 | indicating the number of milliseconds the element's morph should take.
88 |
89 | > There is a new experimental way to set the target of a morph operation from the
90 | source element, via the `data-morph-target` attribute. This attribute takes a CSS
91 | selector that is compatible with document.querySelector() and attempts to find
92 | the target to morph to using that selector. Make sure the selector only returns
93 | a single element as only the first matching element will be used as a target.
94 | e.g. \...\
can be targeted by '.foo[bar="true"]'.
95 | ID selectors cannot start with a number when using `document.querySelector()`.
96 |
97 | The `data-morph-ms` attribute only needs to exist on the source page. If you want
98 | transitions to occur on that element when the user navigates back from page 2
99 | to page 1, as well as from page 1 to page 2, put a `data-morph-ms` on the element
100 | on page 2 as well as page 1.
101 |
102 | E.g:
103 |
104 | #### Page 1
105 |
106 | ```html
107 |
108 | ```
109 |
110 | #### Page 2
111 |
112 | ```html
113 |
114 | ```
115 |
116 | Any css applied to the page 2 element "test1" will be applied as the morph transitions.
117 |
118 | # Gotchas and Errors
119 | > VERY IMPORTANT: The plugin does not currently support having style attributes on an
120 | element. If you apply styles directly on an element via the style="" attribute they will
121 | be wiped out when a morph is applied. Use css classes only.
122 |
123 | ## IDs Starting With Numbers
124 | ```
125 | Uncaught SyntaxError: Failed to execute 'querySelector' on 'Element': '#1' is not a valid selector.
126 | ```
127 |
128 | This is because the ID applied to an element with a `data-morph-ms` attribute starts with
129 | a number. This is a problem because the querySelector() function doesn't allow an ID query
130 | where the ID starts with a number. This is a restriction of that function, not of this
131 | library. Either change your IDs to start with a letter or do not use the `data-morph-target`
132 | attribute. Previous versions of this library before 2.1.0 would throw this error even if you
133 | were not using the `data-morph-target`. Newer versions (2.1.0 and up) will attempt to use
134 | getElementById() instead of querySelector() if `data-morph-target` is not used.
--------------------------------------------------------------------------------
/src/MorphTransition.js:
--------------------------------------------------------------------------------
1 | /* eslint-env browser */
2 | // We (supposedly) know what we're doing
3 | /* eslint-disable react/no-did-update-set-state */
4 | /* eslint-disable react/no-did-mount-set-state */
5 | import React from 'react';
6 | import PropTypes from 'prop-types';
7 | import Transition from 'react-transition-group/Transition';
8 | import {timeoutsShape} from 'react-transition-group/utils/PropTypes';
9 | import morphElement, {ScannedNode, cancelAllMorphs, endMorph} from './irrelon-morph';
10 |
11 | function areChildrenDifferent (oldChildren, newChildren) {
12 | if (oldChildren === newChildren) {
13 | return false;
14 | }
15 |
16 | return !(React.isValidElement(oldChildren) &&
17 | React.isValidElement(newChildren) &&
18 | oldChildren.key != null &&
19 | oldChildren.key === newChildren.key);
20 | }
21 |
22 | function buildClassName (className, state) {
23 | switch (state) {
24 | case 'enter':
25 | return `${className} enter`;
26 | case 'entering':
27 | return `${className} enter ${className} enter active`;
28 | case 'entered':
29 | return `${className} enter.done`;
30 | case 'exit':
31 | return `${className} exit`;
32 | case 'exiting':
33 | return `${className} exit ${className} exit active`;
34 | case 'exited':
35 | return `${className} exit done`;
36 | default:
37 | return ''
38 | }
39 | }
40 |
41 | function shouldDelayEnter (children) {
42 | return React.isValidElement(children) && children.type.pageTransitionDelayEnter;
43 | }
44 |
45 | class MorphTransition extends React.Component {
46 | constructor (props) {
47 | super(props);
48 |
49 | const {children} = props;
50 | this.state = {
51 | state: 'enter',
52 | isIn: !shouldDelayEnter(children),
53 | currentChildren: children,
54 | nextChildren: null,
55 | renderedChildren: children,
56 | showLoading: false,
57 | };
58 | }
59 |
60 | componentDidMount () {
61 | if (shouldDelayEnter(this.props.children)) {
62 | this.setState({
63 | timeoutId: this.startEnterTimer()
64 | });
65 | }
66 | }
67 |
68 | componentDidUpdate (prevProps, prevState) {
69 | const {
70 | currentChildren,
71 | renderedChildren,
72 | nextChildren,
73 | isIn,
74 | state,
75 | } = this.state;
76 | const {children} = this.props;
77 | const hasNewChildren = areChildrenDifferent(currentChildren, children);
78 | const needsTransition = areChildrenDifferent(renderedChildren, children);
79 |
80 | if (hasNewChildren) {
81 | // We got a new set of children while we were transitioning some in
82 | // Immediately start transitioning out this component and update the next
83 | // component
84 | this.setState({
85 | isIn: false,
86 | nextChildren: children,
87 | currentChildren: children,
88 | });
89 | if (this.state.timeoutId) {
90 | clearTimeout(this.state.timeoutId)
91 | }
92 | //console.log('New DOM changes');
93 | } else if (needsTransition && !isIn && state === 'exited') {
94 | if (shouldDelayEnter(nextChildren)) {
95 | // Wait for the ready callback to actually transition in, but still
96 | // mount the component to allow it to start loading things
97 | this.setState({
98 | renderedChildren: nextChildren,
99 | nextChildren: null
100 | })
101 | } else {
102 | // No need to wait, mount immediately
103 | this.setState({
104 | isIn: true,
105 | renderedChildren: nextChildren,
106 | nextChildren: null,
107 | timeoutId: this.startEnterTimer()
108 | })
109 | }
110 | } else if (prevState.showLoading && !this.state.showLoading) {
111 | // We hid the loading indicator; now that that change has been flushed to
112 | // the DOM, we can now bring in the next component!
113 | this.setState({
114 | isIn: true,
115 | })
116 | }
117 | }
118 |
119 | componentWillUnmount () {
120 | if (this.state.timeoutId) {
121 | clearTimeout(this.state.timeoutId);
122 | }
123 | }
124 |
125 | onEnter (pageElem) {
126 | //console.log('onEnter');
127 | // It's safe to reenable scrolling now
128 | this.disableScrolling = false;
129 | this.setState({
130 | state: 'enter',
131 | showLoading: false
132 | });
133 |
134 | if (!this._sourceMorphElements) {
135 | return;
136 | }
137 |
138 | // Find the source and target pairs
139 | const promiseArr = [];
140 |
141 | this._sourceMorphElements.forEach((sourceItem) => {
142 | const sourceNode = sourceItem.node;
143 | const customTargetSelector = sourceNode.getAttribute("data-morph-target");
144 | let targetSelector;
145 | let selectorType;
146 |
147 | if (customTargetSelector) {
148 | selectorType = "querySelector";
149 | targetSelector = customTargetSelector;
150 | } else {
151 | selectorType = "getElementById";
152 | targetSelector = sourceItem.node.id;
153 | }
154 |
155 | promiseArr.push(new Promise((resolve) => {
156 | let target;
157 |
158 | if (selectorType === "getElementById") {
159 | target = document.getElementById(targetSelector);
160 | } else {
161 | target = pageElem.querySelector(targetSelector);
162 | }
163 |
164 | if (target) {
165 | morphElement(sourceItem, target, parseInt(sourceNode.getAttribute('data-morph-ms'), 10) || 600).then((morphData) => {
166 | endMorph(morphData);
167 | resolve();
168 | });
169 | } else {
170 | resolve();
171 | }
172 | }));
173 | });
174 |
175 | Promise.all(promiseArr).then(() => {
176 | this.onMorphComplete(pageElem);
177 | });
178 | }
179 |
180 | onEntering () {
181 | //console.log('onEntering');
182 | this.setState({
183 | state: 'entering',
184 | })
185 | }
186 |
187 | scanDomForMorphElements (pageElem) {
188 | const morphElems = pageElem.querySelectorAll('[data-morph-ms]');
189 | const sourceSnapshot = [];
190 |
191 | if (morphElems && morphElems.length) {
192 | for (let i = 0; i < morphElems.length; i++) {
193 | sourceSnapshot.push(new ScannedNode(morphElems[i]));
194 | }
195 | }
196 |
197 | return sourceSnapshot;
198 | }
199 |
200 | onEntered (pageElem) {
201 | //console.log('onEntered');
202 | this.setState({
203 | state: 'entered',
204 | });
205 |
206 | setTimeout(() => {
207 | this._sourceMorphElements = this.scanDomForMorphElements(pageElem);
208 | //console.log('On entered detected ' + this._sourceMorphElements.length + ' new source elements');
209 | }, 1);
210 | }
211 |
212 | onMorphComplete (pageElem) {
213 | this._sourceMorphElements = this.scanDomForMorphElements(pageElem);
214 | //console.log('On entered detected ' + this._sourceMorphElements.length + ' new source elements');
215 | }
216 |
217 | onExit () {
218 | //console.log('onExit');
219 | // Disable scrolling until this component has unmounted
220 | this.disableScrolling = true;
221 | this.setState({
222 | state: 'exit',
223 | });
224 |
225 | cancelAllMorphs();
226 | }
227 |
228 | onExiting () {
229 | //console.log('onExiting');
230 | this.setState({
231 | state: 'exiting',
232 | });
233 | }
234 |
235 | onExited () {
236 | //console.log('onExited');
237 | this.setState({
238 | state: 'exited',
239 | renderedChildren: null
240 | });
241 | }
242 |
243 | onChildLoaded () {
244 | //console.log('Child loaded');
245 | if (this.state.timeoutId) {
246 | clearTimeout(this.state.timeoutId)
247 | }
248 |
249 | this.setState({
250 | isIn: true,
251 | });
252 | }
253 |
254 | startEnterTimer () {
255 | return setTimeout(() => {
256 | this.setState({
257 | showLoading: true,
258 | })
259 | }, this.props.loadingDelay)
260 | }
261 |
262 | render () {
263 | const {timeout, loadingCallbackName} = this.props;
264 | const {renderedChildren: children, state} = this.state;
265 |
266 | if (['entering', 'exiting', 'exited'].indexOf(state) !== -1) {
267 | // Need to reflow!
268 | // eslint-disable-next-line no-unused-expressions
269 | if (document.body) {
270 | document.body.scrollTop
271 | }
272 | }
273 |
274 | const containerClassName = buildClassName(this.props.classNames, state);
275 |
276 | return (
277 | this.onEnter(...args)}
282 | onEntering={(...args) => this.onEntering(...args)}
283 | onEntered={(...args) => this.onEntered(...args)}
284 | onExit={(...args) => this.onExit(...args)}
285 | onExiting={(...args) => this.onExiting(...args)}
286 | onExited={(...args) => this.onExited(...args)}
287 | >
288 |
289 | {children &&
290 | React.cloneElement(children, {
291 | [loadingCallbackName]: () => this.onChildLoaded(),
292 | })}
293 |
294 |
295 | )
296 | }
297 | }
298 |
299 | MorphTransition.propTypes = {
300 | children: PropTypes.node.isRequired,
301 | classNames: PropTypes.string.isRequired,
302 | timeout: PropTypes.number.isRequired,
303 | loadingComponent: PropTypes.element,
304 | loadingDelay: PropTypes.number,
305 | loadingCallbackName: PropTypes.string,
306 | /* eslint-disable react/require-default-props */
307 | loadingTimeout: (props, ...args) => {
308 | let pt = timeoutsShape;
309 | if (props.loadingComponent) {
310 | pt = pt.isRequired
311 | }
312 | return pt(props, ...args)
313 | },
314 | loadingClassNames: (props, ...args) => {
315 | let pt = PropTypes.string;
316 | if (props.loadingTimeout) {
317 | pt = pt.isRequired
318 | }
319 | return pt(props, ...args)
320 | },
321 | /* eslint-enable react/require-default-props */
322 | monkeyPatchScrolling: PropTypes.bool,
323 | };
324 |
325 | MorphTransition.defaultProps = {
326 | loadingComponent: null,
327 | loadingCallbackName: 'pageTransitionReadyToEnter',
328 | loadingDelay: 500,
329 | monkeyPatchScrolling: false,
330 | };
331 |
332 | export default MorphTransition
333 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import MorphTransition from './MorphTransition';
2 | export default MorphTransition;
--------------------------------------------------------------------------------
/src/irrelon-morph.js:
--------------------------------------------------------------------------------
1 | const activeMorphs = [];
2 |
3 | const trackProps = [
4 | {name: 'top', units: 'px'},
5 | {name: 'left', units: 'px'},
6 | {name: 'width'},
7 | {name: 'height'},
8 | {name: 'backgroundColor'},
9 | {name: 'backgroundImage'},
10 | {name: 'borderBottomLeftRadius'},
11 | {name: 'borderBottomRightRadius'},
12 | {name: 'borderTopLeftRadius'},
13 | {name: 'borderTopRightRadius'},
14 | {name: 'position', applyVal: false},
15 | {name: 'marginTop', applyVal: false},
16 | {name: 'marginLeft', applyVal: false},
17 | {name: 'marginBottom', applyVal: false},
18 | {name: 'marginRight', applyVal: false},
19 | {name: 'paddingTop', applyVal: false},
20 | {name: 'paddingLeft', applyVal: false},
21 | {name: 'paddingBottom', applyVal: false},
22 | {name: 'paddingRight', applyVal: false},
23 | {name: 'borderTopWidth'},
24 | {name: 'borderLeftWidth'},
25 | {name: 'borderRightWidth'},
26 | {name: 'borderBottomWidth'},
27 | {name: 'borderTopColor'},
28 | {name: 'borderLeftColor'},
29 | {name: 'borderRightColor'},
30 | {name: 'borderBottomColor'}
31 | ];
32 |
33 | class ScannedNode {
34 | constructor (node) {
35 | this.node = node;
36 | this.style = {};
37 |
38 | this.scanNode(node);
39 | }
40 |
41 | scanNode (node) {
42 | const styles = window.getComputedStyle(node);
43 | const bounds = node.getBoundingClientRect();
44 |
45 | this.parentNode = node.parentNode;
46 | this.nextSibling = node.nextSibling;
47 |
48 | trackProps.forEach((prop) => {
49 | this.style[prop.name] = styles[prop.name];
50 | });
51 |
52 | this.style.top = bounds.top;
53 | this.style.left = bounds.left;
54 | }
55 | }
56 |
57 | const registerMorph = (morphData) => {
58 | activeMorphs.push(morphData);
59 | };
60 |
61 | const removeMorph = (morphData) => {
62 | const index = activeMorphs.indexOf(morphData);
63 | if (index === -1) {
64 | return;
65 | }
66 |
67 | activeMorphs.splice(index, 1);
68 | };
69 |
70 | const applyStyles = (targetElem, targetData, options = {}) => {
71 | const {modifier, overrides} = options;
72 |
73 | trackProps.forEach((prop) => {
74 | let applyVal = prop.applyVal !== false;
75 | if (overrides && overrides[prop.name] && overrides[prop.name].applyVal !== undefined) {
76 | applyVal = overrides[prop.name].applyVal;
77 | }
78 |
79 | if (!applyVal) return;
80 |
81 | let modifierVal;
82 | if (modifier) {
83 | modifierVal = modifier(prop);
84 | }
85 |
86 | if (modifierVal !== undefined) {
87 | targetElem.style[prop.name] = targetData.style[prop.name] + modifierVal + (prop.units ? prop.units : '');
88 | } else {
89 | targetElem.style[prop.name] = targetData.style[prop.name] + (prop.units ? prop.units : '');
90 | }
91 | });
92 | };
93 |
94 | const morphElement = (sourceData, targetData, duration, options) => {
95 | options = options || {};
96 |
97 | return new Promise((resolve) => {
98 | if (!(sourceData instanceof ScannedNode)) {
99 | // We have to scan the source node
100 | sourceData = new ScannedNode(sourceData);
101 | }
102 |
103 | const source = sourceData.node;
104 |
105 | // Hide the source
106 | source.style.display = 'none';
107 |
108 | // Read css from target
109 | if (!(targetData instanceof ScannedNode)) {
110 | // We have to scan the source node
111 | targetData = new ScannedNode(targetData);
112 | }
113 |
114 | const target = targetData.node;
115 | let targetPlaceholder;
116 |
117 | if (!target.getAttribute('data-morph-in-place')) {
118 | // Create a placeholder at the target location to maintain scrolling
119 | targetPlaceholder = document.createElement(target.tagName);
120 |
121 | //console.log('------- Placeholder');
122 | applyStyles(targetPlaceholder, targetData, {
123 | modifier: (prop) => {
124 | switch (prop.name) {
125 | case 'top':
126 | return document.body.scrollTop;
127 |
128 | case 'left':
129 | return document.body.scrollLeft;
130 | }
131 | },
132 | overrides: {
133 | marginTop: {
134 | applyVal: true
135 | },
136 | marginLeft: {
137 | applyVal: true
138 | },
139 | marginRight: {
140 | applyVal: true
141 | },
142 | marginBottom: {
143 | applyVal: true
144 | },
145 | backgroundImage: {
146 | applyVal: false
147 | },
148 | backgroundColor: {
149 | applyVal: false
150 | }
151 | }
152 | });
153 |
154 | if (options.paintTarget) {
155 | targetPlaceholder.style.backgroundColor = '#ff0000';
156 | }
157 | targetData.parentNode.insertBefore(targetPlaceholder, targetData.nextSibling);
158 | }
159 |
160 | // Apply source css to target
161 | //console.log('------- Target move to source');
162 | applyStyles(target, sourceData);
163 |
164 | if (!target.getAttribute('data-morph-in-place')) {
165 | target.style.margin = '0px';
166 | target.style.position = 'absolute';
167 | document.body.appendChild(target);
168 | }
169 |
170 | setTimeout(() => {
171 | target.style.transition = `all ${duration}ms`;
172 |
173 | // Apply target css to target
174 | //console.log('------- Target move to target');
175 | applyStyles(target, targetData, {
176 | modifier: (prop) => {
177 | switch (prop.name) {
178 | case 'top':
179 | return document.body.scrollTop;
180 |
181 | case 'left':
182 | return document.body.scrollLeft;
183 | }
184 | }
185 | });
186 | }, 1);
187 |
188 | const morphData = {
189 | target,
190 | targetData,
191 | targetPlaceholder
192 | };
193 |
194 | morphData.timeoutId = setTimeout(() => {
195 | resolve(morphData);
196 | }, duration);
197 |
198 | registerMorph(morphData);
199 | });
200 | };
201 |
202 | const endMorph = (morphData) => {
203 | removeMorph(morphData);
204 |
205 | // Check that our DOM is still viable and not changed since we started this animation
206 | morphData.targetData.parentNode.insertBefore(morphData.target, morphData.targetData.nextSibling);
207 |
208 | if (!morphData.target.getAttribute('data-morph-in-place')) {
209 | morphData.targetPlaceholder.parentNode.removeChild(morphData.targetPlaceholder);
210 | }
211 |
212 | morphData.target.removeAttribute('style');
213 | };
214 |
215 | const cancelAllMorphs = () => {
216 | //console.log('Cancelling all morphs');
217 |
218 | // Cancel all morph functions
219 | for (let i = activeMorphs.length - 1; i >= 0; i--) {
220 | cancelMorph(activeMorphs[i]);
221 | }
222 |
223 | // Clear the canceller array
224 | activeMorphs.length = 0;
225 | };
226 |
227 | const cancelMorph = (morphData) => {
228 | // Cancel single morph
229 | clearTimeout(morphData.timeoutId);
230 |
231 | // Return the target to its original settings
232 | endMorph(morphData);
233 | };
234 |
235 | export default morphElement;
236 |
237 | export {
238 | ScannedNode,
239 | trackProps,
240 | endMorph,
241 | cancelMorph,
242 | cancelAllMorphs
243 | }
--------------------------------------------------------------------------------