{"_id":"react-nanny","_rev":"29-940e4be7dc7494684994aaa55c23e3ee","name":"react-nanny","dist-tags":{"latest":"2.15.0","beta":"2.3.0-beta.1"},"versions":{"0.0.1":{"name":"react-nanny","version":"0.0.1","description":"Utils to manage your React Children","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@0.0.1","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-u5w8+qXIBMRLr8Hgjzf48yooaHb7hB2+pfpdjtoJz/eTcFDh+raP8XlIoiMI8gcML5pF+40f9wMeANrLP59B7g==","shasum":"ca331cddc491e4874d3cc75b9d58ad3fa9d50f64","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-0.0.1.tgz","fileCount":39,"unpackedSize":79431,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4JzcCRA9TVsSAnZWagAARrgP/23yYGoGq08CqT+OJ5VQ\nr2kR0gmjGv/sAjjLEUe5ZU67RvENIDQ43RdNQpJ7helswrANSM8FsdtuwjWz\nYxLCjgC7JA3G5B1qL6HBmJLq1K1dOBG75Q/4bogY/XeG96LBZClDj5BRY559\nXUd4UQdFJEdg54WXuWrSvlkOt6pmf7sH8Uxt1Xs9umAe2sN5UbgF7Mqpw3D6\nI+/Vw4gGejgIjv2kysYURo+DlCO7aOrPx13KhoiyF7Na96ijNXghphTLtwgw\nu7KyDBERUTMMrfrcO/6kl4t2/2Nh6OydEggAErI3BNLhTMfmSJHrD6EZ4wS8\neqkMhOKFiU02loi9w+/mdRVMKYeByigg2eioHnu/EGBLXXHsZRP/9QyZah9x\nHlTktq0piQXNsaTo6JrASXfKFLCBM6qdz+XTfSpAja7LvRJehwYa8KJHhhGd\nYV4f1YsXJ1lNwolNCfjSrM9vagruaLMtRCgI1gkyK05jWl14eFDywIUjf3wh\nEkFbgmbmVGzJPOAMnN5/nys5jRwKSM0sojBLV9xTG9pu0qO1gPNQJgePglI2\nJzwU1cCVtbeeyN9eIpXgu6qYpmmIem3Zfy/mWuUVNL35AfJfxLJsILUqF/VQ\nGfa5EGuruv2KoG1zTheZaCK8RGB3M19i/gWyjIU0e6iejTK2PcPC+j4D3xXp\nT18x\r\n=mEpl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdLqqpUIklmhF7r3qp98zwhuLpna+rXKarQ00BSn5LNAiEA+EaJuFh0rJ/TtN8ybaE0Nwk1ZddlJ2LIGiC5Eu71+H0="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_0.0.1_1608555739742_0.8767754272604373"},"_hasShrinkwrap":false},"0.0.2":{"name":"react-nanny","version":"0.0.2","description":"Utils to manage your React Children","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@0.0.2","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-F1Sj24mdKZZ4E0nBxa1IDbjmeBnSPISRWDyXXnPjNqQUde3dlz9/tzZ+PIkHSZResyIYMq4BclnHwhxLXIcqgg==","shasum":"9e6f7ede9cef3cbbb2d85754812890fc6d6225cf","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-0.0.2.tgz","fileCount":39,"unpackedSize":79485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4J77CRA9TVsSAnZWagAAnFsP/0FrPRVbZU8RmgREgaCv\nN/64ADRlQ8jrmeAlujZZOFUP/x3cTwnJSXimaQcKTzFCbZkwq3c4t1uRWovd\njL9mYzfwFzJSL98hS2FIYMmlPzBi2+Z+BP8C6b2lv7uOriNy8/oWI9Fndg51\nDo+mY4RJDIlABSy0SUpkipLZt9f3K9zGTWqt7JPR6YEhM7CCjg/7hdOm/AIh\neA5mFGfuGXwrfFcHO8IaXQn5F9eSEjLFdD5Eg8KD8qkB+xhZ/hRynvrAql8g\n0yV31HHtnsQmrw73GSCXWZP8jJFzDojkoMuoS/jZgHiP8JAKwjSR1oYJbKSD\nLDF9WPGRbAoAjoSKqyPjwjb2KC+aZNt1AC5Wrf34UdMIM8KtAflhldGCSot5\nq4beXX8om8CVwQ3YxVf2Y8IG0TEimN83r8XV2ZeHBKbwFer5CuE4s4syuWCa\nxifEKdHJ0L14naJxhCMA+wTo/Mfyo0sscHQTyimG1qnP3qeWVO5cV5XX0wb9\n2r2EjnPlAvrD3psgzO4Sd7thWC/PToQKyNS3RA//QnbJemPKasddsW99XPji\nPydckTNFGoAHhZswasDE9fyjo9uVBvi2b8A/ZZLLBP8DvEEK18dQObz6XXvB\nZj2JxWbzYvtD7n9hmgbA+iOTmx3d3X2JsyBciYgocD6NsBLdBFFHHLG53AJ8\nEca9\r\n=sMbL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIET/4NX8xnXQhgMyo9PUtf3+meZaB0BjFyMy9IL828FpAiA/DfRBSgxmU31TqGnx3N7YfuSuMVe58ATUeDSWfJJW9w=="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_0.0.2_1608556282804_0.10327042209485615"},"_hasShrinkwrap":false},"0.0.3":{"name":"react-nanny","version":"0.0.3","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@0.0.3","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-vbZM04shnTheKcPijedlNLJELz/hwlZfXAgToCaRl3Q91Wla8o1iXsBT/OOENACmHYqoNg3N/DY21NldBcQChA==","shasum":"35f43ccd0f3a7e484981f15525ef87e3e7ea1cea","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-0.0.3.tgz","fileCount":39,"unpackedSize":79765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4LBRCRA9TVsSAnZWagAAu2IP/3C5Wk0BmDrsdRV8pI2R\n5QcbzG9AZQ9dm/ovv+mao72zSu7pnINsjWCwTwE5Qk+7xmHUVb8Bai6QldLS\nTb1yzPjrkqnVprv0kpWq2ZEHIk8I6594Dulw1P0LIcw4fsB0vOsp+2XxAR5q\n6YCkyOubJCI5adp2NppgUr1/Cf/k94ZJkvikLF6WRTi58gFqa1YJ2JqFwJFK\nom6kqBlqwFx6veiXT9H0gGUrdP5qlQ9keJDaM+FDuLN8tDuio3lJajgGSl6c\n01MzDr0+AE3kme+/kC/yFFf+kaSe2YzygoHnAOdtbQI1wJHisBO5G1KRzTGZ\n0h047jnaij1p9hhPmoJjyhs3lVB0LPmT08Gx9klefOclqCvxSjEnxLCpA6Ix\nSWu/Zk7I2TTX4FwCt6XGnSINS+pF2qu4xfkVem1WOpuWlTn1M1mh165xRn1F\nXeSAAv8UgBrnwRnsx+lLOnj9U5mNSgerwIpq9sMZ40kK1cjwI1x66w82QyIm\ntRT0FP7073SICoSwdkwKe3DnDbANDBl6Tp8x8liiJscqFf+ik8noNKJzo1CR\nOR0sLWKc+/Hd8XIgNQbIJesjM1MmdyFJdeMO2xNZZLtAP4rHKDEFFYoafDqF\nF83sASBhak/KsLrUZPD1TPo7SaNn1AhMSZJwhovRQzMjUwJ7mFXId2lPoEuO\nGYXW\r\n=MFKT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiOTecUYQBNZm5paIf+IeEHTOVLpk+sj2oIsNA6LuN5wIhAOt1RF7zaWhbSG/yklux+wxSx/irXzc2BCOGqhpUMRGU"}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_0.0.3_1608560720703_0.11433217376269034"},"_hasShrinkwrap":false},"1.0.0":{"name":"react-nanny","version":"1.0.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@1.0.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-s3tZmZJxRBGxVJvZc5YQyAPr7wZ/JsDLCgkMVk8RdIq7yuSYu0VkSijh+/79UF/lnAvWHFhHFprf39EhY0bcUw==","shasum":"fd54e7ac3fc3cf2a4c1e80ac7502e35ad0f4f423","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-1.0.0.tgz","fileCount":39,"unpackedSize":79779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4MTzCRA9TVsSAnZWagAAUtwP/3qPfH9T6DHuNQxbrjR/\n6t9+qFBsakFvrT5X9Kvnj6X7NhEiVQ55FX9D16vEuseMAKKpwpn6IbEQDA7Z\nZ/bWLxFBAb9yAet8zS4UXDyhy5/WqSjfxBKBNyXEACAnDxaqLx9AXWaKoyYz\ncFjFzQLhTrHLPqiDm//hvMoBfEUKJ4R0hslo/rpBI2khkBMZKpOTp8VW+8Uy\nYnvS4JZW5rozADJYNjl0MXgnHeEClZY3PJxLeFrvqEGfDprDXW75owBKKaXp\n+cQDC/PngFEek4eNITCKtfWr8i3oswGwgiaSXRHbe5WGx8F2Xu9JOJn/YJjw\nKfPRN3aMp/ku0/QAUbARFTwtDH+YTKQY2m/4bhWV4PaDDpd8BRYnTKTKQBDg\njTwe2vW6zuEdhZZe6vb+YaLAzn1jkkmomtcB68FrOzF7+aoRcuRUtT05sPD/\nE595ebbp2wPSM5jO9PDZL1FdjLcjFmTAd0gHqdM917DnzGQekftbPusw5Ega\nLfIhHr8H7y8zpqo6azTfsBZJnHLy64XnwmZht5yAelFesLBR5l62wNzf16a2\nblCJb+DBwtWBVWq8MA2s54mFgVX0ynvGU/NtzCXLEXqKMyTyUGE/kyG9S0Zi\nLMJDbls0jEnDPoi7sKIV9GnwXLTUJNqywDQZk+pQz1WNzmi7I+aoj7Occq5M\nu5gA\r\n=GfpL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIExNlVoh9KR1FZn60SbgZahU2U6UA1roMvXgivQ//t8AAiEAoQGH4ysQ2/SKmEH0zAx/v7W3bkqvu1qnDzh7wcPrf9g="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_1.0.0_1608566002781_0.6414380594079581"},"_hasShrinkwrap":false},"1.1.0":{"name":"react-nanny","version":"1.1.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@1.1.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-K71cPS2K1uYjezjkTcYs4MKiciLeRalbREFshfArSbQmhAAut0Hwq61rxhJlg+xwCIbRCzNFNbSXeXtTfqto1A==","shasum":"e8389925a5bb6d8b29a0b4f84c780d48523df6b1","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-1.1.0.tgz","fileCount":39,"unpackedSize":83656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4O8nCRA9TVsSAnZWagAALR4P/jj6oirvmgCi9VY2LJ1l\nOgyKcoi73BQ9RhrdFlOG8ZuNNnH9VxYo+GmVy7vV3PSdTgY7ABxA6ch8osNQ\nW1xHO+DRMUfNOUzN1PEdjOASGg8ryf0uU/AykI5l5v0PfC0C9IMiqxbayq4p\ncYY9iNdfYjGedxg9/72OPT3sh8xraS8x2Cz1eN3QtKN/nG6tZ0kYX/8gcWWF\nIyvd9uX1m03CypyVRB4ymuxevmgzfQGzO7fwetvjKGbVv37R3i/dCwlbzsB8\ntCGMFAXBKVKcB+NjBbXxULmQL/fc309sb/47DeXhzQa8K92t1c9d5yOdpWFw\ntcTy9FnqQ+8SJelFv07hXyuPnzOB81TFTHdoIZicJSzeJ7nMi4UHfB2oaRD4\nllCjrQTAQ9ah9fh11/8PdqynC3s20RGAGumIY7LtuJz5CaPbvSj9aSVs4evR\nebk0694AhgUN2LSw+xZ1rIct5N/Sxe81WehstV+8zM/xu7m7nRphZhxA3KbJ\nSwST+UjhhEaDB0d+WzjlDKSZIw12HrlyNYRGnCImPgT0Q7noSGTwtMAs6tEW\nd2PksG++itSwfFeU16VaNHROwlws2czrQE+cmoLfy0jvWQI2s0hvDxwkx8cO\ncqqkMVg7vylfekiJ8fzZKvmxFWIX/llcGBfhbxP4U6nHfsf2jV4UVRe5n9QW\n/9ko\r\n=632G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFZfl9OzLKUpGmFC7iBHR6CTwqBf+vPdbeqtOM7VC0G4AiEA3JYWTS5J3Tt7fzKHwy8F0naWsEGQrvzoPBkzcCPaW60="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_1.1.0_1608576806864_0.3441826825494858"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"react-nanny","version":"2.0.0-beta.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"readme":"# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Friend, have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.0.0</p>\r\n\r\n<h2>Installation</h2>\r\n\r\n```\r\n$ npm install react-nanny --save\r\n```\r\n\n\n<h2>Utils List</h2>\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td>getChild</td><td>Gets first child by specified predicate</td></tr><tr><td>getChildDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildByType</td><td>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</td></tr><tr><td>getChildByTypeDeep</td><td>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.  (deep search)</td></tr><tr><td>getChildren</td><td>Gets all children by specified predicate</td></tr><tr><td>getChildrenDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildrenByType</td><td>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</td></tr><tr><td>getChildrenByTypeDeep</td><td>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'. (deep search)</td></tr><tr><td>noEmptyChildrenDeep</td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td>removeChildren</td><td>Removes all children by specified predicate</td></tr><tr><td>removeChildrenDeep</td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td>removeChildrenByType</td><td>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'.</td></tr><tr><td>removeChildrenByTypeDeep</td><td>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'. (deep search)</td></tr><tr><td>typeOfComponent</td><td>Gets the string type of the component or core html (JSX) element. React Fragments will return type 'react.fragment'. Priority will be given to the prop '__TYPE'.</td></tr></tbody>\n  </table>\r\n\r\n\r\n\r\n  \n\n<h2>getChild&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChild } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChild(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChildDeep(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE', prioritized: boolean = false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td><td>{ customTypeKey: '__TYPE', prioritized: false }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\n getChildByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildByType(children, [MyComponent, 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\n getChildByType(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.  (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE', prioritized: boolean = false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td><td>{ customTypeKey: '__TYPE', prioritized: false }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\n getChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\n getChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildren } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all children that have an 'active' prop set to true\r\n getChildren(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChildrenDeep(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\n getChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'. (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\n getChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>noEmptyChildrenDeep</h2>\n<p>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>A component, array of components, or content of a component</td><td>any</td><td></td></tr><tr><td><p><b>config <span>(optional)</span></b></p>Configuration options for custom components</td><td>NoEmptyConfig</td><td>config</td></tr></tbody>\n    </table><p><b>Returns:</b> {boolean} - Whether or not there is content provided. true = content is provided as children at some depth; false = no content is provided as children at any depth</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { noEmptyChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Ensure that one of the following is true: there is markup with content, a 'CustomComponent', or a different custom component that has children\r\n noEmptyChildrenDeep(component, { ignore: ['CustomComponent'], rejectCustom: false, rejectEmptyCustom: true })\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildren } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all children that have an 'active' prop set to false\r\n removeChildren(children, child => !child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all children that have an 'active' prop set to false\r\n removeChildrenDeep(children, child => !child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\n removeChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n removeChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'. (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\n removeChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n removeChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>typeOfComponent</h2>\n<p>Gets the string type of the component or core html (JSX) element. React Fragments will return type 'react.fragment'. Priority will be given to the prop '__TYPE'.</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component to type check</td><td>any</td><td></td></tr><tr><td><p><b>customTypeKey='__TYPE' <span>(optional)</span></b></p>The custom component prop key to check the type</td><td>string</td><td>'__TYPE'</td></tr></tbody>\n    </table><p><b>Returns:</b> {string} - The string representation of the type</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { typeOfComponent } from 'react-nanny';\r\n```\r\n\r\n\r\n\r\n<hr />\r\n\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.78 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.15 KB\r\n      └───index.js - 4.93 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 2.16 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 2.29 KB\r\n      └───index.js - 3.92 KB\r\n      └───index.d.ts - 559 Bytes\r\n      └───index.js - 2.78 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1 KB\r\n      └───index.js - 2.67 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 3.01 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.32 KB\r\n      └───index.js - 4.78 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 503 Bytes\r\n      └───index.js - 1.43 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 408 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.6 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.15 KB\r\n      └───index.js - 4.64 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.96 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 2.29 KB\r\n      └───index.js - 3.63 KB\r\n      └───index.d.ts - 559 Bytes\r\n      └───index.js - 544 Bytes\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1 KB\r\n      └───index.js - 2.44 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 2.78 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.32 KB\r\n      └───index.js - 4.47 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 503 Bytes\r\n      └───index.js - 1.28 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 249 Bytes\r\n```\r\n\r\n<a href=\"#license\"></a>\r\n<h2>License</h2>\r\n\r\nISC\r\n\r\n\r\n<a href=\"#author\"></a>\r\n<h2>Author</h2>\r\nMichael Paravano\r\n\r\n\r\n\r\n\r\n<a href=\"#dependencies\"></a>\r\n<h2>Dependencies</h2>\r\n\r\n\r\n<table>\r\n\r\n</table>","readmeFilename":"README.md","_id":"react-nanny@2.0.0-beta.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-YbiocteJyj/MPeZQQodvyN1/PqXDEDFsYDq1EB0UinYbytwsdxWlWI7Vo7vfh6JuuP9EgZxYDVhXElxwIMnmXQ==","shasum":"b9447e7b97cf37c022e57f9f8abda58e60585752","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.0.0-beta.0.tgz","fileCount":43,"unpackedSize":101715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4fRJCRA9TVsSAnZWagAAiNYP/1H2xda7I2webfOJg/CX\nT7jl6OkX7b4X/F3x/Wiv+K1TFKOfDkTHdp13HvBf0f4Z87gmlhve9Lbq105R\nHs6w+gtK0M9ZsY6Aj/6xxyQUVDOVZwos1RkcRKq0N6AZiVV9G5/GVVPDCpkp\n4xU4fU7ZIGdDUaVPu50Hj+Px2mj2isz52OK6wm26o0AStt79XCCHtXSe6fu8\ngDLgCiowrHqoI6vMvwUt44Aa+30JeyobmeJoAoNE3qev6FooKcxQ03HfV53b\npwxJAApAIPvZ6C67BVShjaoguEr9VrLRRMHh6Bh0kWBch5foQ4eFHf9ybxv+\neIs/4Bb0B0Pvp37sK1m3dPclcF9n9uYNIkhU4nYEo12kwDEo8oLJZ94dej0D\nXvlgFtbJ9I58KD27gxLqvc0JI0faTA1RzAy56w199cMyHYbfO3l6t11Ad+DE\n2eRS4NgUeH7cKb033AYJeehy6JTDAvwPaHErbv0lPiGUp24oBnosDPYuwKyz\n/+DnVf8SA+y+8CWnKxz2z6SB/Y+WTh8/RxqpF3l/9mGMjy6I3HBARBMUuWFh\n2Vcap3bz6mL6F3P5Edq6mCqHOssLvncSS4QuWaOSi8cnFBvWshfFcd0d9Trc\nPvj7w1+2lOvphC43rSvMoCqYYHjK0uFhNOmV8PC2jds+GKGPJ8oEJEdEmQa3\nnHw2\r\n=MXXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAC5qF7KSzv7esXD7pc/Vh9oktlZepNzbDdPGnQ7IuzVAiEAr0jH4NFgdAEoYCFPPUPu/zyL4IhgyBUGAHAgRAQ4XlA="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.0.0-beta.0_1608643657138_0.30273073908178794"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"react-nanny","version":"2.0.0-beta.1","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"readme":"# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Friend, have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.0.0-beta.0</p>\r\n\r\n<h2>Installation</h2>\r\n\r\n```\r\n$ npm install react-nanny --save\r\n```\r\n\n\n<h2>Utils List</h2>\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td>getChild</td><td>Gets first child by specified predicate</td></tr><tr><td>getChildDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildByType</td><td>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</td></tr><tr><td>getChildByTypeDeep</td><td>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.  (deep search)</td></tr><tr><td>getChildren</td><td>Gets all children by specified predicate</td></tr><tr><td>getChildrenDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildrenByType</td><td>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</td></tr><tr><td>getChildrenByTypeDeep</td><td>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'. (deep search)</td></tr><tr><td>noEmptyChildrenDeep</td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td>removeChildren</td><td>Removes all children by specified predicate</td></tr><tr><td>removeChildrenDeep</td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td>removeChildrenByType</td><td>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'.</td></tr><tr><td>removeChildrenByTypeDeep</td><td>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'. (deep search)</td></tr><tr><td>typeOfComponent</td><td>Gets the string type of the component or core html (JSX) element. React Fragments will return type 'react.fragment'. Priority will be given to the prop '__TYPE'.</td></tr></tbody>\n  </table>\r\n\r\n\r\n\r\n  \n\n<h2>getChild&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChild } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChild(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChildDeep(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE', prioritized: boolean = false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td><td>{ customTypeKey: '__TYPE', prioritized: false }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\n getChildByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildByType(children, [MyComponent, 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\n getChildByType(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.  (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE', prioritized: boolean = false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td><td>{ customTypeKey: '__TYPE', prioritized: false }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\n getChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n \r\n // Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\n getChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildren } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all children that have an 'active' prop set to true\r\n getChildren(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\n getChildrenDeep(children, child => child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\n getChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To find a React Fragment, search for type 'react.fragment'. (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { getChildrenByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\n getChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n getChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>noEmptyChildrenDeep</h2>\n<p>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>A component, array of components, or content of a component</td><td>any</td><td></td></tr><tr><td><p><b>config <span>(optional)</span></b></p>Configuration options for custom components</td><td>NoEmptyConfig</td><td>config</td></tr></tbody>\n    </table><p><b>Returns:</b> {boolean} - Whether or not there is content provided. true = content is provided as children at some depth; false = no content is provided as children at any depth</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { noEmptyChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Ensure that one of the following is true: there is markup with content, a 'CustomComponent', or a different custom component that has children\r\n noEmptyChildrenDeep(component, { ignore: ['CustomComponent'], rejectCustom: false, rejectEmptyCustom: true })\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildren } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all children that have an 'active' prop set to false\r\n removeChildren(children, child => !child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) => boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all children that have an 'active' prop set to false\r\n removeChildrenDeep(children, child => !child.props.active);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'.</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenByType } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\n removeChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n removeChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type. This function will check the prop {customTypeKey} first and then the 'type' string to match core html elements. To remove a React Fragment, use type 'react.fragment'. (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td><td></td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td><td></td></tr><tr><td><p><b>{ customTypeKey: boolean = '__TYPE' } <span>(optional)</span></b></p>The configuration params; The custom component prop key to check the type</td><td>object</td><td>{ customTypeKey: '__TYPE' }</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { removeChildrenByTypeDeep } from 'react-nanny';\r\n```\r\n\r\n\r\n<h4>Examples</h4>\r\n\r\n```\r\n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\n removeChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n \r\n // Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\n import MyComponent from './MyComponent';\r\n removeChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n```\r\n\r\n\r\n<hr />\r\n\r\n  \n\n<h2>typeOfComponent</h2>\n<p>Gets the string type of the component or core html (JSX) element. React Fragments will return type 'react.fragment'. Priority will be given to the prop '__TYPE'.</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component to type check</td><td>any</td><td></td></tr><tr><td><p><b>customTypeKey='__TYPE' <span>(optional)</span></b></p>The custom component prop key to check the type</td><td>string</td><td>'__TYPE'</td></tr></tbody>\n    </table><p><b>Returns:</b> {string} - The string representation of the type</p>\r\n\r\n<h4>Import</h4>\r\n\r\n```\r\nimport { typeOfComponent } from 'react-nanny';\r\n```\r\n\r\n\r\n\r\n<hr />\r\n\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.78 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.15 KB\r\n      └───index.js - 4.93 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 2.16 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 2.29 KB\r\n      └───index.js - 3.92 KB\r\n      └───index.d.ts - 559 Bytes\r\n      └───index.js - 2.78 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1 KB\r\n      └───index.js - 2.67 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 3.01 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.32 KB\r\n      └───index.js - 4.78 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 503 Bytes\r\n      └───index.js - 1.43 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 408 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.6 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.15 KB\r\n      └───index.js - 4.64 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.96 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 2.29 KB\r\n      └───index.js - 3.63 KB\r\n      └───index.d.ts - 559 Bytes\r\n      └───index.js - 544 Bytes\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1 KB\r\n      └───index.js - 2.44 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 2.78 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.32 KB\r\n      └───index.js - 4.47 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 503 Bytes\r\n      └───index.js - 1.28 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 249 Bytes\r\n```\r\n\r\n<a href=\"#license\"></a>\r\n<h2>License</h2>\r\n\r\nISC\r\n\r\n\r\n<a href=\"#author\"></a>\r\n<h2>Author</h2>\r\nMichael Paravano\r\n\r\n\r\n\r\n\r\n<a href=\"#dependencies\"></a>\r\n<h2>Dependencies</h2>\r\n\r\n\r\n<table>\r\n\r\n</table>","readmeFilename":"README.md","_id":"react-nanny@2.0.0-beta.1","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-DFokEfvyJ/Ja1nY7NXcHARNqIU4ut6uAFOZADsTCarBTKzddXpNolR1054ntWTnhHMadrKGZ6RBBxchFp0Vu7Q==","shasum":"002cd0accc782608b6ebb90071123bc179b7adb4","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.0.0-beta.1.tgz","fileCount":43,"unpackedSize":101722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4gOsCRA9TVsSAnZWagAAg8EP/26Ni63AQqQZOrxMusP4\nRZJKabkpLJnKeXM+tsbeWtLExtXC2OvaNuOkxUtUgGTEldCJgpVBcQMNvX8I\nNCdiYeU0Cpv58lf1Qzd8Dr+XTt7CScZqdSebhDdC5HCIHImk7L1Ift8O3Uq1\nvtkRlC34jN1YVdZOflime1RhpvdToAERHM9sX8vSsnbJ12LTGwmdAGLTu5cJ\nkDKsIbFQV0CcWg/kuvMzq2yXoR3PN2vW0F8ReSdQLv2uS5gLDx04Sy0C88GL\nP9ToyEwCiNVnampXj82724VkhOrefbmfCvBfNQLDTv4+4foiDDSJJULi+Aof\nG15mFY7LPsY+OY4A71SM4uvrPklhER1Z/LEVmHXzqACBxLzZ+XQUCv1a5HqB\ndiarixIVbfx7s9OachhqZAVBHzfUZbR/jMvq//xYpVu33F2keaN1gBC2zBBj\naQV8iAweKTj2ATf8zryehUCtfVr8/xCbodH1/d0c17yiY/rcjPE/k1BlnMdp\nz9p8/u3euwv8CptZb4zSrQV2hLetwfefFMZnBFlDxMJZtaW7V/KpGjXN24Gu\nL7fjIYAhtwrSu8S0zQgVOi6ofEBVVvL0LOK5p0NcLspiA5EKW3ulvP/z4YDT\noDG9p9Nx7Ntcx5lFKvTvOhkby4NuKkauTwojokuqX98BLGkBq5Jb+phdAVol\ng4AW\r\n=uf0Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHc4ohA70vwvFvd3g2bJofyCzrThackNUsDpBJ1RSOHEAiA/5v32fEPejymO4nUhGulneiWdvEBR3QrYArtmpsb07Q=="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.0.0-beta.1_1608647596172_0.7010276386064231"},"_hasShrinkwrap":false},"2.0.0":{"name":"react-nanny","version":"2.0.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.0.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-anWX6yYvtnQwnqn0qDlY02hpUmNW0Tg8u42yRElUDaITjuOoVKfhtRsvjJ+KQl/ixj6JoZyZ4eqiqWxn2iMm2g==","shasum":"b046f6a8d71cdbca349cba3bc26acbdb920f9df1","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.0.0.tgz","fileCount":43,"unpackedSize":101715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4gQBCRA9TVsSAnZWagAAJocP/3HiQ6gtoajl41pdopIN\nET96vDrwpM0R11ykKgJMMV10CR777IazvQAAqXIHZX5l3KZaA17C6P4szG/q\nxvDbjPUApctQFThQztZV5wHptTzLInx9HeIgJPehAFVlO1SnkFejIb70o2Xg\nIv19qUbxKpZoW/KJX8TroJGSbV6V48+CDyqJl1X3vB8Yzzeq2Wnf+VkzYfzR\nnB4etpbV7hAvCZmjT66RpXwiqfRGN9WgaDHSPxg3Had+Mxm2Md+GA8abtBPh\nqS5aApYpjd6njwwrwOaG8A8pAogwn/5d0Q90N9BB8AUxQ8CPbf0cROLVmtd8\nuxHz+ZODUK0ShsfEEufX5F47MI14IZ5afgqhcGFvdfi9J2IYnVotKGcx/k16\nVv0F84fSchdHvVc85JmL67FgQ9RZlYT5QbadW2XP4+fGVRQnj7L3CKgVZqmd\nlyQgv56x+FDle0nZhkcMWCn6VXPGDKcqHl+/A793Z5Z55PU5eHEPExckqeyf\nLkx9+EtA4thxUOgqSsKyVr5SA7cVoqlaebpcZJ8Nu328O2GJgzuw7j7mlG+w\nb84Zm1TTX7cUUQ6mXPpwSf80z1gq1fYXrltlfEwPVaPMmqj0HKkbnW3VRqpR\nCU69gIVO1lFoWc909STE0FY4sddauTHHsXxSGBPG9boWKWgm0qOhHHugDOf5\nAaUj\r\n=f+WI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbcPrkbZGoPRNJ8W6I7/RChrDhKG6xWmMSCNxH0SxkBQIhAKOYy24hAWTjPqnSGSdFSP54Ybxj6+VkzVBdd87E1CAg"}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.0.0_1608647680886_0.18397298755441738"},"_hasShrinkwrap":false},"2.1.0":{"name":"react-nanny","version":"2.1.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"ISC","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.1.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-K3qW/pNk6Aq3BEdBNQVRG27o37XJeGxqJHuJGIgymzg8tickDO9PAHVW52ndNSR4y1J2I05dU1D2mFOz/LGbaQ==","shasum":"c916ebff511b1ad842a626a22d2386c23cf36d3e","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.1.0.tgz","fileCount":43,"unpackedSize":110410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf451qCRA9TVsSAnZWagAAqqUP/RZOIl+ePJE5v3ZQQVks\njxdOLqLED+U45X6uChPzI/un6HRyC9Ibkpr6GScCuOAek+zHLkoXVcBjbNxo\nJccl3QtX7niFT2549Y+U8YhOGO3+2zmPpKP6MQusItoZTqNYsFT3zefsYxvq\nz89VWQsdK8GHLv1yVO4cqlAxS3z1BCSG5pd+ogQjFd8m5KhufFqV6kMiFK1h\nfzKC/RMvaDdz/wzzv8/exTqOlDTOm8ICm/oW/UERTapcS8pf9Q8a0wHO5Wk0\n9WVOf0zRdlJ5TfLyv1tNORSCPCWVGefvMHWWIR/p+hvT/OXcABXYckkNoDgX\nOKoMWPcid7Sa+7+VVv12mKV2oANF8kVNRbVPQa4bp25QJyxp6eKEG9RQ5Ahb\n6h2yIk9vo74MoFKEfAUqoNVRljkpukeV4KbxmADhTMEdY8OEo9ONGefwgQDR\naEOX26PZFYdPbX2k/9VX7IJ9t21RMpAbyHIuRbB4dRto9XvnmA6TQUicgVez\nmhAL6d9oReLLo3QR+0eNNWPPBRfw3K0zfchZv1XzMEpTmaJFQMzRrhyLnASK\nOhuWVzW/KYxZ21pOvcQCKk+M4VUgztEVp+9UIFnzex5Z+mCqhFfOHuxihZAQ\n+5l2iapqh8QMkAhE6R7Rg6hImqtZSWR+4Q3JqR7iwhSSDdvukjYdcDJC2pGj\nM/JS\r\n=AD+b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjinFV74IOiVwNRAA4mlnbIH7kqnAQpvPG6gDJkpSqvAiEA08IpN17K9Q1FJuKRfdcywC0ZBKFZ6c3Amw/UwC9l7E4="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.1.0_1608752489516_0.14485550603211328"},"_hasShrinkwrap":false},"2.2.0-beta.0":{"name":"react-nanny","version":"2.2.0-beta.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"readme":"# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Hello friend. Have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.2.0-beta.0</p>\r\n\r\n<h2>Installation</h2>\r\n\r\n```\r\n$ npm install react-nanny --save\r\n```\r\n\n\n<h2>Summary of Utils</h2>\n<p>For detailed information on each util, see below this table.</p>\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td>getChild</td><td>Gets first child by specified predicate</td></tr><tr><td>getChildDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildByType</td><td>Gets first child by specified type</td></tr><tr><td>getChildByTypeDeep</td><td>Gets first child by specified type (deep search)</td></tr><tr><td>getChildren</td><td>Gets all children by specified predicate</td></tr><tr><td>getChildrenDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildrenByType</td><td>Gets all children by specified type</td></tr><tr><td>getChildrenByTypeDeep</td><td>Gets all children by specified type (deep search)</td></tr><tr><td>noEmptyChildrenDeep</td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td>removeChildren</td><td>Removes all children by specified predicate</td></tr><tr><td>removeChildrenDeep</td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td>removeChildrenByType</td><td>Removes all children by specified type</td></tr><tr><td>removeChildrenByTypeDeep</td><td>Removes all children by specified type (deep search)</td></tr><tr><td>typeOfComponent</td><td>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</td></tr></tbody>\n  </table><hr />\r\n\r\n\r\n  \n\n<h2>getChild&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChild } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChild(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\n\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByType, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\n\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByTypeDeep, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\n  <h4>Import</h4>\n\n```\nimport { getChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all children that have an 'active' prop set to true\r\ngetChildren(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildrenDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByType, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized <em>{customTypeKey}</em>\r\ngetChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByTypeDeep, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized <em>{customTypeKey}</em>\r\ngetChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>noEmptyChildrenDeep</h2>\n<p>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>A component, array of components, or content of a component</td><td>any</td><td></td></tr><tr><td><p><b>config <span>(optional)</span></b></p>Configuration options for custom components</td><td>NoEmptyConfig</td><td>config</td></tr></tbody>\n    </table><p><b>Returns:</b> {boolean} - Whether or not there is content provided. true = content is provided as children at some depth; false = no content is provided as children at any depth</p><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   ignore?: string[] = [] - A list of components to ignore; Components in this list will be considered as valid content\r\n//   rejectCustom?: boolean = true - Whether or not custom components should be rejected as content\r\n//   rejectEmptyCustom?: boolean = false - Whether or not custom components require children to be considered valid content; Note: {rejectCustom} must be set to false in order for this setting to be considered\r\n\r\nexport type NoEmptyConfig = { ignore?: string[], rejectCustom?: boolean, rejectEmptyCustom?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { noEmptyChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Ensure that one of the following is true at some level of depth for the children: \r\n//   * There is markup with content\r\n//   * A 'CustomComponent' is provided\r\n//   * A different custom component that has children\r\nnoEmptyChildrenDeep(component, { ignore: ['CustomComponent'], rejectCustom: false, rejectEmptyCustom: true })\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildren(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildrenDeep(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByType, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized <em>{customTypeKey}</em>\r\nremoveChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByTypeDeep, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized <em>{customTypeKey}</em>\r\nremoveChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>typeOfComponent</h2>\n<p>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component to type check</td><td>any</td><td></td></tr><tr><td><p><b>customTypeKey <span>(optional)</span></b></p>The custom component prop key to check the type</td><td>string</td><td>'__TYPE'</td></tr></tbody>\n    </table><p><b>Returns:</b> {string} - The string representation of the type</p><blockquote><p>React Fragments will return type 'react.fragment'. Priority will be given to the <em>{customTypeKey}</em> if one exists</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { typeOfComponent } from 'react-nanny';\n```\n\n  \r\n\r\n<hr />\r\n\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.78 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.83 KB\r\n      └───index.js - 5.71 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 2.16 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.29 KB\r\n      └───index.js - 4.85 KB\r\n      └───index.d.ts - 634 Bytes\r\n      └───index.js - 2.78 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.35 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 3.01 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.91 KB\r\n      └───index.js - 5.3 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.53 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 575 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.6 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.83 KB\r\n      └───index.js - 5.42 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.96 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.29 KB\r\n      └───index.js - 4.57 KB\r\n      └───index.d.ts - 634 Bytes\r\n      └───index.js - 544 Bytes\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.12 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 2.78 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 2.91 KB\r\n      └───index.js - 4.99 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.39 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 398 Bytes\r\n```\r\n\r\n<a href=\"#license\"></a>\r\n<h2>License</h2>\r\n\r\nMIT\r\n\r\n\r\n<a href=\"#author\"></a>\r\n<h2>Author</h2>\r\nMichael Paravano\r\n\r\n\r\n\r\n\r\n<a href=\"#dependencies\"></a>\r\n<h2>Dependencies</h2>\r\n\r\n\r\n\r\nNone\r\n","readmeFilename":"README.md","_id":"react-nanny@2.2.0-beta.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-8RrWK50USJJea9oQndAXu+vUVlnzqSLcTQD1QJ+cwN+uKg0aNaIuOwDoD99zzGkZjoC7n4zsKJsrAxdtPY5QSg==","shasum":"53573a00bae4d7cb551474dd2d1cbcf4f8cd4e18","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.2.0-beta.0.tgz","fileCount":44,"unpackedSize":110399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6zmICRA9TVsSAnZWagAAX84P/RYwNVATeeKPV4CO4MLd\nO8ALRPiGcURyC1jQ3WL0MnoFtCJqgOiDdP0nUT5pWRxtcDHbIXbMBEDzfiR8\n+RUdutkkY0hCt0xkoH15V2RGknDLK7qeXyREEKEQ2uyHtK9E04P0CJAMiOlg\nqDePZl2jNiIw4G90SbwyH0unApEfEecDm1iVLsuiVENrftqStVORMwir5B81\n6Zlrk4r12nAaeUpCoVoNsAAKuBk+tXrdo/ePJlvKf9prdz8vbYiHJlj+xRAH\nI6tSCFgyNS0OHpBbmlLkj/1HglL9OpsJbHEDP/nENi3tX+9/OKNBr2gHFtZM\nKcUU2xojDasrWvMtCNJ6VC1gpTdCEJMMnU2KiEAiSEWlcfOio/P5Q1crg63b\nvJvNpomm94VE0LIlwFUxUVWb8VqLP9WQ77d7nUASxuY2bI0N4QuOmehBsMSH\nzxA4yjR1j8w5rHxunodCAtXJtXI+VnoKJK79CIlbkV+vO9dhFkyDWEV5QdO8\naKHQKf9SmIRr08qLnUZMiW/UTj9UE/0iLauxV4ck2dZf/edzuGkCthCvzOrN\nN5gZut8QHcfHDgSuRYTsYcJpxqI/wA2/hTyI1Z8YWNAMl2cFfPR/vcoQzKiF\n7HPVI6nRTCSwGjSjUSk6nth/RK3zLmOXbcePO9IWa+Dler0guHu8zV1VFzTH\n0/jb\r\n=mcLg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHS/fkGm1LlwPTDm75X6bB1Ylpr7ZJjdn9GE8IoKjVSIAiEA3QV/d8gK5ohPHFvRSXD1yO6JzHEYbWYdKgbEmXYmvio="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.2.0-beta.0_1609251207923_0.15060712550498057"},"_hasShrinkwrap":false},"2.2.0":{"name":"react-nanny","version":"2.2.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.2.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-3d0gqNRIwdskZOca+Z/9LML7JsdUT6pc95aLQwKWQj912aIVbLrhrtvak0uXBzg2NrKQLL8ulNwjZqg9wD03pQ==","shasum":"38d466f1fdb283d9ca316c7600c8e0aa2185c43f","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.2.0.tgz","fileCount":44,"unpackedSize":115467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf60tNCRA9TVsSAnZWagAAF14P/3kURkLx5fpMcJziL96m\nlYYiFl0qxeXXUa+8A4+A6S8kZHxdIKe+1dOPBEwkMIbLA4WC33elwWlLhA9e\nVM1WZ4sJRNrKzj9zgXaeOm/fIKkPzr2hi9EIv/hxBUxRYRnNgveVYd2DOFiR\n1S1aOc4VJs51PDW/vEeng5KX9vBPEbLRyp3xzLX3bq7LJWnXwC6+hsvSYpjc\nwGf74HZTMNhqnBvWOwu9TOfk6jVgpe1/awlO0DwpGHuzYQ8jC9xRRYUNeDI2\nAGIK2zXHTmMzlyfLiVt2k9DfiBg6HxSnZZ0sfSOQUtFWYgeeAae/aq1Sgvtx\nVxv1y3YrRAM2/GewZMqBRcXOTIar0pAdjh2AxAnVa+sQRV8UMukZMwscQc8c\neE4rooSqnz6FAQCaFJNvLk+4giRruq+CbemeN7BJVfPmLOz6/Hbd1l3/HSwg\nFKwirubyGCmdVe/fvZeF4QjE9D4rMo9dE++0DQHW7qqR6CdtuYv+spXQ5ESj\nHf+zhUHiVS+Npx+a0L8iJckyYziUAznvJ9E8+PIMMbFbCXfrGbAuubOiKO48\n/Xrfim43ZpOuA2ZZDm6qSnumjKEJq9tUbQhnNXAH1nU1HkwbvCylnQVmXDMd\nyviYIFbANvwXMzzXj3VZWUSUNkFIGezxZkG2/2WL17X8zcqfx7Or6joKY6fG\n6kIb\r\n=xQBo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr4mB/fsEnCX/ahx1JO8igHFYYBM38xvvNKc4U/bi9ZQIgRACVtOIzUSgT1vGOesu6NJRr9WGDfdXfYCSueXyV1IA="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.2.0_1609255757124_0.26280232768439116"},"_hasShrinkwrap":false},"2.3.0-beta.0":{"name":"react-nanny","version":"2.3.0-beta.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"readme":"# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Hello friend. Have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.3.0-beta.0</p>\r\n\r\n<h2>Installation</h2>\r\n\r\n```\r\n$ npm install react-nanny --save\r\n```\r\n\n\n<h2>Summary of Utils</h2>\n<p>For detailed information on each util, see below this table.</p>\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td>getChild</td><td>Gets first child by specified predicate</td></tr><tr><td>getChildDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildByType</td><td>Gets first child by specified type</td></tr><tr><td>getChildByTypeDeep</td><td>Gets first child by specified type (deep search)</td></tr><tr><td>getChildren</td><td>Gets all children by specified predicate</td></tr><tr><td>getChildrenDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildrenByType</td><td>Gets all children by specified type</td></tr><tr><td>getChildrenByTypeDeep</td><td>Gets all children by specified type (deep search)</td></tr><tr><td>modifyChildProps</td><td>Immutably modifies props of the children of the component</td></tr><tr><td>noEmptyChildrenDeep</td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td>removeChildren</td><td>Removes all children by specified predicate</td></tr><tr><td>removeChildrenDeep</td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td>removeChildrenByType</td><td>Removes all children by specified type</td></tr><tr><td>removeChildrenByTypeDeep</td><td>Removes all children by specified type (deep search)</td></tr><tr><td>typeOfComponent</td><td>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</td></tr></tbody>\n  </table><hr />\r\n\r\n<h2>What can I use to derive types for a comparison?</h2>\r\n<p>You can use an imported type, a <code>React.ReactNode</code>, value from <code>typeOfComponent</code>, a string type for an HTML (JSX Intrinsic) element, or a string representation of the type by using the <code>customTypeKey</code> feature.</p>\r\n\r\n<h3>Imported Type</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\ngetChildByType(children, [MyComponent]);\r\n```\r\n\r\n<h3>React.ReactNode</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [child]);\r\n```\r\n\r\n<h3>typeOfComponent</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType, typeOfComponent } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [typeOfComponent(child)]);\r\n```\r\n\r\n<h3>String type for HTML (JSX Intrinsic) Elements</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['div']);\r\n```\r\n\r\n<h3>customTypeKey</h3>\r\n<h4>What the heck is a customTypeKey?</h4>\r\n<p>One simple way to be able to define and identify a type on a component and ensure that it is the same in development builds and production builds is to add a constant prop that contains the string type. Consider the following hypothetical component:</p>\r\n\r\n```\r\nimport React from 'react';\r\n\r\nconst Hello = ({ __TYPE }) => <div>Hello World!</div>;\r\n\r\nHello.defaultProps = {\r\n  __TYPE: 'Hello',\r\n};\r\n```\r\n\r\n<p>The <code>Hello</code> has a prop <code>__TYPE</code> that has a value of <code>'Hello'</code>. We can query against this value and know that it's reliable regardless of environment.</p>\r\n<p>The <code>customTypeKey</code> in <code>react-nanny</code> defines what the name of this prop is. In our example, <code>customTypeKey</code> would be <code>'__TYPE'</code> to query using this technique</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello']);\r\n```\r\n\r\n<p>Let's say you don't like <code>__TYPE</code> and what to use your own value such as: <code>CUSTOM</code>. You can accomplish this by providing the name for the <code>customTypeKey</code>:</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello'], { customTypeKey: 'CUSTOM' });\r\n```\r\n\r\nFor more information on how to enforce the integrity of the <code>customTypeKey</code>, check out my Medium article: <a href=\"https://mparavano.medium.com/find-filter-react-children-by-type-d9799fb78292\" target=\"_blank\">Find & Filter React Children By Type</a>\r\n\r\n<p><em>Now, without further ado, the utils...</em><hr /></p>\r\n\r\n\r\n  \n\n<h2>getChild&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChild } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChild(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByType, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\n\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByTypeDeep, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\n  <h4>Import</h4>\n\n```\nimport { getChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all children that have an 'active' prop set to true\r\ngetChildren(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildrenDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByType, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\ngetChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByTypeDeep, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\ngetChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>modifyChildProps</h2>\n<p>Immutably modifies props of the children of the component</p>\n<blockquote><p>This function is a handy shortcut for when you may need to override the props of your children components and is an alternative for writing your own looped <em>React.cloneElement</em> calls.</p></blockquote><p>Since v2.3.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component whose children you want to modify</td><td>React.ReactElement</td><td></td></tr><tr><td><p><b>callback</b></p>Types of children to match</td><td>&lt;T=any&gt;(child: T, index?: number) =&gt; Record&lt;string, unknown&gt;</td><td></td></tr><tr><td><p><b>selfProps <span>(optional)</span></b></p>Any other props to modify on the original component</td><td>object</td><td>selfProps</td></tr></tbody>\n    </table><p><b>Returns:</b> {React.ReactElement} The original component with the children with modified prop values</p>\n  <h4>Import</h4>\n\n```\nimport { modifyChildProps } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// This will set the active prop for each child component to {true}\r\nmodifyChildProps(component, () => ({ active: true }));\r\n\r\n// This will set the active prop for each child component to {true} where child has a title prop = 'Supervisor'\r\nmodifyChildProps(component, child => child.props.title === 'Supervisor' ? ({ active: true }) : {});\r\n\r\n// This will set the active prop for each child component to {true} and update the hello prop on the root component\r\nmodifyChildProps(component, () => ({ active: true }), { hello: 'Hola mundo' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>noEmptyChildrenDeep</h2>\n<p>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>A component, array of components, or content of a component</td><td>any</td><td></td></tr><tr><td><p><b>config <span>(optional)</span></b></p>Configuration options for custom components</td><td>NoEmptyConfig</td><td>config</td></tr></tbody>\n    </table><p><b>Returns:</b> {boolean} - Whether or not there is content provided. true = content is provided as children at some depth; false = no content is provided as children at any depth</p><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   ignore?: string[] = [] - A list of components to ignore; Components in this list will be considered as valid content\r\n//   rejectCustom?: boolean = true - Whether or not custom components should be rejected as content\r\n//   rejectEmptyCustom?: boolean = false - Whether or not custom components require children to be considered valid content; Note: {rejectCustom} must be set to false in order for this setting to be considered\r\n\r\nexport type NoEmptyConfig = { ignore?: string[], rejectCustom?: boolean, rejectEmptyCustom?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { noEmptyChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Ensure that one of the following is true at some level of depth for the children: \r\n//   * There is markup with content\r\n//   * A 'CustomComponent' is provided\r\n//   * A different custom component that has children\r\nnoEmptyChildrenDeep(component, { ignore: ['CustomComponent'], rejectCustom: false, rejectEmptyCustom: true })\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildren(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildrenDeep(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByType, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - from import), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - as React.ReactNode), a div, and React Fragment\r\nconst component = getChildByType(['MyComponent']);\r\nremoveChildrenByType(children, [component, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\nremoveChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByTypeDeep, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - as React.ReactNode), a div, and React Fragment\r\nconst component = getChildByType(['MyComponent']);\r\nremoveChildrenByTypeDeep(children, [component, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\nremoveChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>typeOfComponent</h2>\n<p>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component to type check</td><td>any</td><td></td></tr><tr><td><p><b>customTypeKey <span>(optional)</span></b></p>The custom component prop key to check the type</td><td>string</td><td>'__TYPE'</td></tr></tbody>\n    </table><p><b>Returns:</b> {string} - The string representation of the type</p><blockquote><p>React Fragments will return type 'react.fragment'. Priority will be given to the <em>{customTypeKey}</em> if one exists</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { typeOfComponent } from 'react-nanny';\n```\n\n  \r\n\r\n<hr />\r\n\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.78 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.82 KB\r\n      └───index.js - 5.71 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 2.16 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.27 KB\r\n      └───index.js - 4.83 KB\r\n      └───index.d.ts - 690 Bytes\r\n      └───index.js - 3 KB\r\n    └───/modifyChildProps\r\n      └───index.d.ts - 1.49 KB\r\n      └───index.js - 2.66 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.35 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 3.01 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.36 KB\r\n      └───index.js - 5.75 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.53 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 575 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.6 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 3.82 KB\r\n      └───index.js - 5.42 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.96 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.27 KB\r\n      └───index.js - 4.55 KB\r\n      └───index.d.ts - 690 Bytes\r\n      └───index.js - 600 Bytes\r\n    └───/modifyChildProps\r\n      └───index.d.ts - 1.49 KB\r\n      └───index.js - 2.51 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.12 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 2.78 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.36 KB\r\n      └───index.js - 5.44 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.39 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 398 Bytes\r\n```\r\n\r\n<a href=\"#license\"></a>\r\n<h2>License</h2>\r\n\r\nMIT\r\n\r\n\r\n<a href=\"#author\"></a>\r\n<h2>Author</h2>\r\nMichael Paravano\r\n\r\n\r\n\r\n\r\n<a href=\"#dependencies\"></a>\r\n<h2>Dependencies</h2>\r\n\r\n\r\n\r\nNone\r\n","readmeFilename":"README.md","_id":"react-nanny@2.3.0-beta.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-PwrBa1+4M6QrMuPVs4aRiZbNEYPfXIO/fwOIEMxpbB2dWmEMmLeaZqNmd+448r0eV1nFaRnzJqU1E5QKoRHaSg==","shasum":"dba9fb4ea2c99106060bdf04184dd8a800bde864","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.3.0-beta.0.tgz","fileCount":48,"unpackedSize":125795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7L9OCRA9TVsSAnZWagAAzQcP/3nkV8YUWsBeGks3vXow\nNeJsjkmvWijQ9wRy94ESmBuEnzlluDcS142TY7W5MLjNKuQ/Pl2iTSjsMUXI\n2bNiQQ8KtyIaKBEud3MYFzp9SftYWO0It/VVkdO8NDoFfHIF0Rq3NO4/FRbi\nriF4lAh7ydPdfRfANZSrFLpqjeI8BRspdkUJczu1Hb2iYUZxCIZk9XDKBdbC\nKff/MBNQY28wa74If+dGvd1UNQFkg67YU+Zpf565TKJlP/UuhmXLdeIEYdxy\nQmowhkfhg2jXC3AxsLc92nJc6LmUy2AAp7vWppnulUwOfsxopwmoUgiWMmph\n8uKR6i6YICjBfodh6LaMmroNq9WMmxH6NxTRQkFrnCRApnoJCcOHtZzLGaKB\n9vdXI/kNziDhIPTSf8cr3RFRci2y8Pt7GV7/wOtXaF0xLIqqfbQGqHWLcI9g\nT6RT7RU4tD44n3Wn3wFgNEZUBqHt+SgUlt17XGPSLXJicmCULPgaMQyc3OyB\nznmgddCXS2ub8cBCAB3XhSeNBiSlcQIpfABgojflTGfRuA2dtOZ4L5JoBbgq\nM5lRSAWBq3z9mI6wu/drH+P2uhq5UbNRWK/z03XnnQOWgPUNOeLvgFS92jOj\nol/zLwoqWFy7nwtmjiSen2OGDeqgBzXnYEGpgSpHzCSKfnYM5n9gB532ZYrs\noUn7\r\n=huYX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3oW3Iv+uHl58DV5kIyvF3tgAC8YGbXCc90TJpXgF0fwIhALhxCWf1uINdtAbS/T/z5GhmXjgitLUa6KijXJpt0iFg"}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.3.0-beta.0_1609350990396_0.995426249073087"},"_hasShrinkwrap":false},"2.3.0-beta.1":{"name":"react-nanny","version":"2.3.0-beta.1","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"readme":"# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Hello friend. Have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.3.0-beta.1</p>\r\n\r\n<h2>Installation</h2>\r\n\r\n```\r\n$ npm install react-nanny --save\r\n```\r\n\n\n<h2>Summary of Utils</h2>\n<p>For detailed information on each util, see below this table.</p>\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td>getChild</td><td>Gets first child by specified predicate</td></tr><tr><td>getChildDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildByType</td><td>Gets first child by specified type</td></tr><tr><td>getChildByTypeDeep</td><td>Gets first child by specified type (deep search)</td></tr><tr><td>getChildren</td><td>Gets all children by specified predicate</td></tr><tr><td>getChildrenDeep</td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td>getChildrenByType</td><td>Gets all children by specified type</td></tr><tr><td>getChildrenByTypeDeep</td><td>Gets all children by specified type (deep search)</td></tr><tr><td>noEmptyChildrenDeep</td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td>overrideProps</td><td>Immutably override props of the children of the original component and (optionally) the original component</td></tr><tr><td>removeChildren</td><td>Removes all children by specified predicate</td></tr><tr><td>removeChildrenDeep</td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td>removeChildrenByType</td><td>Removes all children by specified type</td></tr><tr><td>removeChildrenByTypeDeep</td><td>Removes all children by specified type (deep search)</td></tr><tr><td>typeOfComponent</td><td>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</td></tr></tbody>\n  </table><hr />\r\n\r\n<h2>What can I use to derive types for a comparison?</h2>\r\n<p>You can use an imported type, a <code>React.ReactNode</code>, value from <code>typeOfComponent</code>, a string type for an HTML (JSX Intrinsic) element, or a string representation of the type by using the <code>customTypeKey</code> feature.</p>\r\n\r\n<h3>Imported Type</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\ngetChildByType(children, [MyComponent]);\r\n```\r\n\r\n<h3>React.ReactNode</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [child]);\r\n```\r\n\r\n<h3>typeOfComponent</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType, typeOfComponent } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [typeOfComponent(child)]);\r\n```\r\n\r\n<h3>String type for HTML (JSX Intrinsic) Elements</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['div']);\r\n```\r\n\r\n<h3>customTypeKey</h3>\r\n<h4>What the heck is a customTypeKey?</h4>\r\n<p>One simple way to be able to define and identify a type on a component and ensure that it is the same in development builds and production builds is to add a constant prop that contains the string type. Consider the following hypothetical component:</p>\r\n\r\n```\r\nimport React from 'react';\r\n\r\nconst Hello = ({ __TYPE }) => <div>Hello World!</div>;\r\n\r\nHello.defaultProps = {\r\n  __TYPE: 'Hello',\r\n};\r\n```\r\n\r\n<p>The <code>Hello</code> has a prop <code>__TYPE</code> that has a value of <code>'Hello'</code>. We can query against this value and know that it's reliable regardless of environment.</p>\r\n<p>The <code>customTypeKey</code> in <code>react-nanny</code> defines what the name of this prop is. In our example, <code>customTypeKey</code> would be <code>'__TYPE'</code> to query using this technique</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello']);\r\n```\r\n\r\n<p>Let's say you don't like <code>__TYPE</code> and what to use your own value such as: <code>CUSTOM</code>. You can accomplish this by providing the name for the <code>customTypeKey</code>:</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello'], { customTypeKey: 'CUSTOM' });\r\n```\r\n\r\nFor more information on how to enforce the integrity of the <code>customTypeKey</code>, check out my Medium article: <a href=\"https://mparavano.medium.com/find-filter-react-children-by-type-d9799fb78292\" target=\"_blank\">Find & Filter React Children By Type</a>\r\n\r\n<p><em>Now, without further ado, the utils...</em><hr /></p>\r\n\r\n\r\n  \n\n<h2>getChild&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChild } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChild(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByType, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>GetChildByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByType(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE', prioritized: false } <span>(optional)</span></b></p>The configuration params</td><td>GetChildByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n//   prioritized?: boolean = false - Whether or not the order of types is prioritized\r\n\r\nexport type GetChildByTypeConfig = { customTypeKey?: string, prioritized?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildByTypeDeep, GetChildByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>GetChildByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of either a ToDo (custom component w/defined type as prop), a div, or a React Fragment\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a MyComponent (custom component - full component passed in), a div, or a React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds the first occurrence of either a ToDo, a div, or a React Fragment with a preference for that order. If ToDo exists, it will return that first. If not, then div, etc.\r\ngetChildByTypeDeep(children, ['ToDo', 'div', 'react.fragment'], { prioritized: true });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p>\n  <h4>Import</h4>\n\n```\nimport { getChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all children that have an 'active' prop set to true\r\ngetChildren(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets first child by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T} - The first matching child</p>\n  <h4>Import</h4>\n\n```\nimport { getChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds the first occurrence of a child that has a prop of 'active' set to true\r\ngetChildrenDeep(children, child => child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByType, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>GetChildrenByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\ngetChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>getChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Gets all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>GetChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - Array of matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To find a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   customTypeKey?: string = '__TYPE' - The custom component prop key to check the type\r\n\r\nexport type GetChildrenByTypeConfig = { customTypeKey?: string };\n```\n  <h4>Import</h4>\n\n```\nimport { getChildrenByTypeDeep, GetChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>GetChildrenByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Finds all occurrences of ToDo (custom component), div, and React Fragment\r\ngetChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\ngetChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Finds all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\ngetChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>noEmptyChildrenDeep</h2>\n<p>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>A component, array of components, or content of a component</td><td>any</td><td></td></tr><tr><td><p><b>config <span>(optional)</span></b></p>Configuration options for custom components</td><td>NoEmptyConfig</td><td>config</td></tr></tbody>\n    </table><p><b>Returns:</b> {boolean} - Whether or not there is content provided. true = content is provided as children at some depth; false = no content is provided as children at any depth</p><h4>Supporting Types</h4>\n\n```\n// The configuration type for the util:\r\n//   ignore?: string[] = [] - A list of components to ignore; Components in this list will be considered as valid content\r\n//   rejectCustom?: boolean = true - Whether or not custom components should be rejected as content\r\n//   rejectEmptyCustom?: boolean = false - Whether or not custom components require children to be considered valid content; Note: {rejectCustom} must be set to false in order for this setting to be considered\r\n\r\nexport type NoEmptyConfig = { ignore?: string[], rejectCustom?: boolean, rejectEmptyCustom?: boolean };\n```\n  <h4>Import</h4>\n\n```\nimport { noEmptyChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Ensure that one of the following is true at some level of depth for the children: \r\n//   * There is markup with content\r\n//   * A 'CustomComponent' is provided\r\n//   * A different custom component that has children\r\nnoEmptyChildrenDeep(component, { ignore: ['CustomComponent'], rejectCustom: false, rejectEmptyCustom: true })\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>overrideProps</h2>\n<p>Immutably override props of the children of the original component and (optionally) the original component</p>\n<blockquote><p>This function is a handy shortcut for when you may need to override the props of your children components and is an alternative for writing your own looped <em>React.cloneElement</em> calls.</p></blockquote><p>Since v2.3.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component whose children you want to modify</td><td>React.ReactElement</td><td></td></tr><tr><td><p><b>getChildOverrides</b></p>Callback function that returns an object containing the props you wish to override for each child</td><td>&lt;T=any&gt;(child: T, index?: number) =&gt; object</td><td></td></tr><tr><td><p><b>overrides <span>(optional)</span></b></p>Any other props to override on the original component</td><td>object</td><td>overrides</td></tr></tbody>\n    </table><p><b>Returns:</b> {React.ReactElement} The original component with the children with modified prop values</p>\n  <h4>Import</h4>\n\n```\nimport { overrideProps } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n* \r\n// This will override the active prop for each child component to {true}\r\noverrideProps(component, () => ({ active: true }));\r\n\r\n// This will override the active prop for each child component to {true} where child has a title prop = 'Supervisor'\r\noverrideProps(component, child => child.props.title === 'Supervisor' ? ({ active: true }) : {});\r\n\r\n// This will override the active prop for each child component to {true} and override the hello prop on the root component\r\noverrideProps(component, () => ({ active: true }), { hello: 'Hola mundo' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildren&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildren } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildren(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified predicate (deep search)</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>predicate</b></p>The predicate to determine if the given child is a match</td><td>(child: T) =&gt; boolean</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenDeep } from 'react-nanny';\n```\n\n  <h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all children that have an 'active' prop set to false\r\nremoveChildrenDeep(children, child => !child.props.active);\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByType&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByType, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>RemoveChildrenByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - from import), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByType(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - as React.ReactNode), a div, and React Fragment\r\nconst component = getChildByType(['MyComponent']);\r\nremoveChildrenByType(children, [component, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\nremoveChildrenByType(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>removeChildrenByTypeDeep&lt;T=React.ReactNode&gt;</h2>\n<p>Removes all children by specified type (deep search)</p>\n<p>Since v1.0.0 (modified v2.0.0)</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>children</b></p>JSX children</td><td>T</td></tr><tr><td><p><b>types</b></p>Types of children to match</td><td>any[]</td></tr><tr><td><p><b>{ customTypeKey: '__TYPE' } <span>(optional)</span></b></p>The configuration params</td><td>RemoveChildrenByTypeConfig</td></tr></tbody>\n    </table><p><b>Returns:</b> {T[]} - All non-matching children</p><blockquote><p>This function will check the prop <em>{customTypeKey}</em> first and then <em>component.type</em> to match core html (JSX intrinsic) elements or component functions. To remove a React Fragment, search for <em>'react.fragment'</em>.</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { removeChildrenByTypeDeep, RemoveChildrenByTypeConfig } from 'react-nanny';\n```\n\n  <blockquote><p><em>RemoveChildrenByTypeConfig</em> is a TypeScript type and is only for (optional) use with TypeScript projects</p></blockquote><h4>Examples</h4>\n\n\n\n\n\n```    \n// Removes all occurrences of ToDo (custom component), div, and React Fragment\r\nremoveChildrenByTypeDeep(children, ['ToDo', 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - full component passed in), a div, and React Fragment\r\nimport MyComponent from './MyComponent';\r\nremoveChildrenByTypeDeep(children, [MyComponent, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of MyComponent (custom component - as React.ReactNode), a div, and React Fragment\r\nconst component = getChildByType(['MyComponent']);\r\nremoveChildrenByTypeDeep(children, [component, 'div', 'react.fragment']);\r\n\r\n// Removes all occurrences of ToDo (custom component) with a customized {customTypeKey}\r\nremoveChildrenByTypeDeep(children, ['ToDo'], { customTypeKey: 'myTypeKey' });\n```\n\n    \r\n\r\n<hr />\r\n\r\n  \n\n<h2>typeOfComponent</h2>\n<p>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</p>\n<p>Since v1.0.0</p>\n<table>\n      <thead>\n      <tr>\n        <th>Param</th>\n        <th>Type</th><th>Default</th></tr>\n      </thead>\n      <tbody><tr><td><p><b>component</b></p>The component to type check</td><td>any</td><td></td></tr><tr><td><p><b>customTypeKey <span>(optional)</span></b></p>The custom component prop key to check the type</td><td>string</td><td>'__TYPE'</td></tr></tbody>\n    </table><p><b>Returns:</b> {string} - The string representation of the type</p><blockquote><p>React Fragments will return type 'react.fragment'. Priority will be given to the <em>{customTypeKey}</em> if one exists</p></blockquote>\n  <h4>Import</h4>\n\n```\nimport { typeOfComponent } from 'react-nanny';\n```\n\n  \r\n\r\n<hr />\r\n\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.78 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 4.07 KB\r\n      └───index.js - 5.96 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 2.16 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.53 KB\r\n      └───index.js - 5.09 KB\r\n      └───index.d.ts - 684 Bytes\r\n      └───index.js - 2.98 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.35 KB\r\n    └───/overrideProps\r\n      └───index.d.ts - 1.62 KB\r\n      └───index.js - 2.9 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 3.01 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.63 KB\r\n      └───index.js - 6.01 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.53 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 575 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.6 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 4.07 KB\r\n      └───index.js - 5.67 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 1.96 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.53 KB\r\n      └───index.js - 4.8 KB\r\n      └───index.d.ts - 684 Bytes\r\n      └───index.js - 594 Bytes\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.69 KB\r\n      └───index.js - 3.12 KB\r\n    └───/overrideProps\r\n      └───index.d.ts - 1.62 KB\r\n      └───index.js - 2.76 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.11 KB\r\n      └───index.js - 2.78 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.63 KB\r\n      └───index.js - 5.71 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.39 KB\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 398 Bytes\r\n```\r\n\r\n<a href=\"#license\"></a>\r\n<h2>License</h2>\r\n\r\nMIT\r\n\r\n\r\n<a href=\"#author\"></a>\r\n<h2>Author</h2>\r\nMichael Paravano\r\n\r\n\r\n\r\n\r\n<a href=\"#dependencies\"></a>\r\n<h2>Dependencies</h2>\r\n\r\n\r\n\r\nNone\r\n","readmeFilename":"README.md","_id":"react-nanny@2.3.0-beta.1","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-stWENZYOO1QXCByYX68nyXWyCfQ0LMoTgxnqskYGWRyC3IMYNOtPbfPkB94lvyTFVqpLp+ZKBWZr324ZlMDwow==","shasum":"5e6939a300028f5711cc65449e4273cea0433010","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.3.0-beta.1.tgz","fileCount":48,"unpackedSize":129150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7Mq/CRA9TVsSAnZWagAAHBgP/jJS+DELjBNEN/G5D+K8\nM35pVUGIXdm3CbzLj+bu2cOsXW+3+wydcAJdZpxwEUYCtkXUtp6a2JB3taaM\njkcIBRqOCIZMmovJySj23ggyhv9JYflsSHeNLPR7wdCY0UicV2flfvkV1uby\nD4nP+XT/xL69Sf/8vnX6JIShU5XNrcNEbXsqHUwIZYLSpiuNKWgeB76pfVqu\nECSMyqWuJEXuh+UQmawN3iZ/3FB3978IsTueXJDWen14xjJVxQJnnzvH5w2V\nTaT7jzGpFYNjFZAPU550A7vGVXIpMNCprFbhFkZF+GtnPfGsZYSmJwIvzKq/\nhy1s+VSsIwRjQXEuVABZjhnrffj6gngU5EuE8d4f/cVtDa82ldZtxOP/trJj\nkNk5fJi7bUFVDGGwzsH9WeWrXvjce4Lt23LSjd/sd2L+ciWRCTs7+hNraSDO\nKuuMRQvBVGcqNY+hNQsqSsjJc5in5Imv7rYKbzB/SEZYYMr8/mtUTXzCopoP\nQaX2R3pvkt2flPgzA7pf8FwM4ZdL0GNHOGwwzVNFC0fYH8ZreihHezaNpa19\na0ZgdotRHzCCmWeTFR7toX49z+qNZEi7q8LenJWl9878umrI+tvmf0jHNfsP\nyI7Q9aWszI5Ty46eNSz3+sqvKRVje6Ne/ZClPVFtEblCYFq3Ez7zFxLYqwoY\nP/nj\r\n=uslx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEyIBKx5e6Mehz0F+0tpwCJJPQgCAaGNbwP7w+yaMuHQIgbluEQpIGoXMDcItV2uG6Sh+ssy2T0T3xNIgakP0QuqQ="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.3.0-beta.1_1609353918813_0.8403575361666777"},"_hasShrinkwrap":false},"2.3.0":{"name":"react-nanny","version":"2.3.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.3.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-rJbBnyKfCznZ7g53oNqJkMLgdiOEKSrG28GB/EDEkAeLzEcFlMXUME9cioItx6Qr9/Ayyp4iVi2yutq/9Bpl8Q==","shasum":"dffde7a6c73d944d15ee89434c9a708bc91b47be","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.3.0.tgz","fileCount":48,"unpackedSize":129136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7M26CRA9TVsSAnZWagAAva0QAIsirqFHlqh3fg9Ixxy6\nk4h6AzrHdrOQE2Og2UFNd0CaMnN7J7Vce8nm/ZetPfYl8AozPz3+8kCNk0On\nLkBP+dl427Hdryv684DwqbpbnKX/Z3CU+tr/PH8OxTByxudjzGO0dlKjjzxx\nr25I77gFaVruXpfmuoTuENG1nKTZx6lkyV7QWWkxgadWbaXiUjV9hLztDN8a\npXfAqrUBb3BCreb4ItdMHU9gLpGNehqtqkg0XcFySp/ROq9cSDBjRAonW5KN\nqP0RiotaxiCA0PKfJ9wVdc1uRxCScVe3CqFLU3Ensre94JFkyhfXPBSoqtgp\n7qMNgmasbwGrd5mx5kos0PS5w9rqWvvLa15ZjhcAZ5ELNbPwLLSRZHePwC8m\nx2yrVVhDph67+MYksAUV5EXKyN9dZN3AycttDMCYWgDhfB+GjCF5cMGH1d4h\nJ6Xdsla9UYrBIRABoWjF02X77QdVYOY1erwcc0t/6wf8GllWIajPLHiGc17N\nNAimWmTjdIcyrXdlK2mJJRgNyBJcjBlTRJkgxj+iznHKpUAOOsjY9eCdrOi1\noC8SNNSZLmpkm7mzlP8sPULevyDvpzG4Bl/vZfU57RtSFpJeBqeUsPum95rX\nHqL4SwbOyJd+XQB5HLE0dOI5j7YDRjdhcTTTU6buMQLgTQoXYme1IiVWwkvO\n94T6\r\n=8nlc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKMZFsh57iJVCmfX/jxNz46E4mZ0mGyY0Iuob+nHHMKgIhAIyiRu4+bwCCM+yGpq3S7EKR+tTS6ml0yPpsZ5+cHgL4"}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.3.0_1609354681951_0.9328847355781344"},"_hasShrinkwrap":false},"2.3.1":{"name":"react-nanny","version":"2.3.1","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.3.1","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-KrNG2TaWGNDMOejnj3Xo4xwD/OYCY03Et/48Vxb4a+GAXiOkMcCfTAmiNX+UOtpttdXHAye12RfNonld4Cba1g==","shasum":"1e1a95d789f5e51865a47420687f1884c4010ee6","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.3.1.tgz","fileCount":48,"unpackedSize":129253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7NmcCRA9TVsSAnZWagAATtoP/jY42wdxyORbxh30uVVf\neAQ1U9d9PNWZSeOCHssza3WNa33Jg/pVKFYDsHXSUuphPRPLUx5n331X+izT\nVgtZegsEVwqtMC57i4gRnIbXTWCY1U7mtBH628hYbwkPiyAewcORF1xlTONv\nUvrTPhZBEVKFesPzFEMw3I1dDBhrTjckui0cY/LxYMNad4cTGiIn8/SKl6dD\nU06Z35wFJ8OahJWm4MvmEfkP4CPQ+eJfDcUEKRZl65gQKzi8g4jfsMFI3JpN\nLfcWI/Ru57yEQLeGlMv/fXUUBiRMCTyHMMek4zOgbmUMkPAvPIbEslRE17BI\nG72GULVlhoAy9ij8BH6FbQThSCohi9LOLGq8co5O2D2ESoDQvtqkgOlZ7QBy\nGptJqSLBaIISCkdkfwX6WkSnkCIY7HfPzcxt1tmS6G9kPbk6p4Z0s5LQinyN\nWck6/uL8qL4QgvkIdP1U+AyCHtGp4dNu7fQC9UkX97MRAxg1MFwuLdmm0dp3\nRJ5m/b1x6cRTxDzD7uPudt3HoZZztARqiFa2giU5eGb6pHIEWgn1Wn154vrk\nyDm0tVoIyaMkAwinkwjZgoZOluUbiyAPTKPhVOgBBbF7kejmBn7BRIz2QE3Q\nB4ZP0R0mOpp4efJ2zsRNprlKz4jzViQxFFhWYVDjJ90FIzQ9rtu+lcRnWQnO\n6Rtp\r\n=hAVR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIa7w+OU0/1iL8iVxhMC3XJasMgOKfTkBth5JrFJSkOAiBNswHDVNLxjOhaChhu7bUOsRS+pGL4/kF3MIWCyqHdhg=="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.3.1_1609357723886_0.9566284662012661"},"_hasShrinkwrap":false},"2.4.0":{"name":"react-nanny","version":"2.4.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.4.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-k8GAsLSHhE04lSNKzRVdARWC1ed3G+rJI8s/4wb6hksN4ZjPWFWx8ejc3NcVReTR5nqj5XXrSgO62Ljfr2zQfQ==","shasum":"c9ba4197ad99779d85052fd9db63509177cfcdf8","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.4.0.tgz","fileCount":48,"unpackedSize":127495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8PqECRA9TVsSAnZWagAA210P/2RQN9YZr2tGsIDHlZAo\nn1OTDQaABRCqZnArcUr/phjVpPfKsKVGxfIrW0L3A0vzJgsXv+8CQxrc4b6y\nEZxI8lVC7wk9pSKKnnpE+O5xLB6f/NyNLVBHUYxw4N1ET3T9yZLWSnp75T8M\nvrc+GWr7DM3ey0nfqsBmDfbClzwIi27VotD4FvXfrF/AxDr6QnBngKrOpWmf\n7xnLEYvGIlGCF7q2h7wVpJhmltjOjfqgc+7Njh6JVmKcCoXm2KlMMNkBTwgD\nW/RmgO6ZlVV50BsKR9w3uG3o3w1qxbpHL6TUQrDFWYMIn9MghqKvqVPoH4vZ\n8z3drsUth3yrzqAPuR50//D8wDWq1f1zO8mDgdFMD1ygvSnguGac7ivbx8p+\nCQvOqj4aix0UmT4pYwI92ji2WbH0apLRmU3KnsTbM7ZDmVzHJ7luXqYSlgae\n8cZxEjDpB4hsKNHVcbLQp0hXHCCaf/dIweHQ2IFcaVKfdU04Be9RtU+SlYGJ\nfO199P01YpXJzcs+VxBTB3aHh7wJi2to5WH1RlnNlpSqSENAW3W9L5f1LjoG\nCzuGaxwlFnAYL9Opvp3LnGD9RT7qZkprFZ2v1UEfxZAjWPyNiC9vKnbIlIvh\ncH7PLmNtHAWUmg79kqo+z90r5gtOdA051uyDm2ojZmJsy2mOYLUCiBoecgeg\nVG7Q\r\n=5OXY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpAd+yQlj6fvRcYFpojy/vIbWsRzX3m/TxyqJFXPCDSAiAP4by90sCjrUTQXx2J7Q6qPZXivvPSfUEVcAPa2zFAog=="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.4.0_1609628291608_0.19458001667339686"},"_hasShrinkwrap":false},"2.5.0":{"name":"react-nanny","version":"2.5.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.5.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-++Kj1eAQTGoraAxnMJ0oyOefhqCugWae9K2g0fd1XEV7nGTFGXpEPrpgFgjCwBvjJ+czUmStPPKi/g4K6/0vqw==","shasum":"c798ed71379022e13b025954017491e6fb67acad","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.5.0.tgz","fileCount":48,"unpackedSize":127503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8xscCRA9TVsSAnZWagAAJ9UP/3mDpe8lPkfOglQd5A5p\nKpMagQD3REcVLjlNb6Zcpl9mUabCeQ0GrA605dOFYnJX9yyRx+rm7gr+6C1P\nyGt8KekZ9hSnedSw9geFG/RWezo9CXUM324CpAK8wV3ZPEjFZzBz4nyaOes2\nGEgHVn2e/AqQC3onAAQ7xLoTzMfIEkJELuPaEp2jqnqM0YBTVScasrcOtv/I\natssV64zMhXPv62XQ1hdnQNPXidbPQ9VkJkEAAjp3XwX4O8MaDtZyJyB+gN5\ny6o5n3lG42JgUweCWa+I9CpXJvxK5JwLWHOMOQYMYdnArjIsVLako+HBIfLs\nYdNk1lZ64MKtw0i+f4NlBCiMN6wB9wE/DW6Y03Y0NJhLN5sJ84SydK24u634\ntrlR5OhrBJRBuM1UAaZ8WJczLBEoiJT3FRNatQfK//R+Zq21w8md9/8UxzQZ\nbg/644ntHsL7gl0vNyfy17suwHYmqUl2YeDhE3tdankJBNYSr1U0c1M7hf31\n0xbbxlHifERknJQQ+pm2aJLBXd4VTdNg96rX8mEiWIidK04aPbvWu544nR8j\nXs/OXLigZikAlSqAXdlqnZvWNkDTox2mmTfBhKqOkt6Oo5Ymwbw9lSqve9gv\n+lqpZcDP3J3IYk2aIZtjk+2cSEFAShRIvchOTTWarLCU32/dkSQrGw+EbFwU\nJLY5\r\n=UoG1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCafz8Tiirq4jd5ox0L0XRbRP4O9V5ax2xAyjBQLry6BQIgdkn0V8fvyuzNqyLEeJmpujiwYgbJfSHdvG2R6aN+OgQ="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.5.0_1609767707832_0.5952261602667959"},"_hasShrinkwrap":false},"2.6.0":{"name":"react-nanny","version":"2.6.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.6.0","_nodeVersion":"14.15.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-Tj0ySdGVYGT8i0XNP+31V8Nl8enDKJ9jKUZrKYwDIK2IZBJi4jX/4gtyHej37N/LNS3HHSDvBV18gCz6W7ip/Q==","shasum":"cf84d4913fc3068f1127795ebd19d4e47bd3ae14","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.6.0.tgz","fileCount":68,"unpackedSize":144337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB20QCRA9TVsSAnZWagAAQLoQAJDPJPT1H7GkWu9WJODi\nYoJQa794bjK9K428kkUmNUEYRreMrbd3YSXTeTBCSJbVsWbWb2w+diTLAKNo\nmb/j9DVIOYtHXD0CDUOe1H2YpR3f+iQq+8OEh36AWdiDOMlfJ6GNn9sFNgwW\nPHXKfY67nE0OaR+ttr9STJHbfPRlIEvEH0RYoii2FdJ2av+epI5uj4W0cX+6\nVksZN3Xoy/W036kURvJLHT8dG65MoVIWVzb7+f+W9CHnrFY8Dd7q7D88K6SQ\n+HTOpz2ENH8kaCHbFeTPQzz89TYqe3qY/Pl4npBeWWcEU1kTX3hGC9YP152x\nS5srWKonDFVERusScB4EDgyZPz1VZ3r7X+uO23uOUi8o4R3oGNIcihxVPsC5\n51xYWzObX5UDYn68Ig2nnS7vmLBXZk3pWU6qSRdhm6chGBKtnDGH5Ztm8SzP\njBDT4r1LO1TBA9sX6k8c5cuG7kzKGpiRjKX9aPJnxqWKil2FwtoeYSmK4bwU\nOFRQpt0+B+uRmcaNIhnRK0pf63k5VKhdKB+8QMVhcz2NrgC51ffwQ6NVmlbw\nGeTSyrpYxeZkDe55lG11dwMcyFBLEx/1uShXmvrts2UgVtwZovU+V49wp1rE\nYJ/kJ887kAAI0cBWS7R84Yrqzxlzxl/RYv4sbtMDQaHEP907Af1jA1G3OJlb\n5WHK\r\n=kG5p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC3czocRPNGvRCO6xJF/iVGbVazsZo7/ptax2vQLIrR5AiBLzDLLsmCg2WMeQb9ZgK+dE/N7wJWCmEVhXJPncehoyw=="}]},"_npmUser":{"name":"paravano","email":"mparavano@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.6.0_1611099407672_0.9547475312254234"},"_hasShrinkwrap":false},"2.7.0":{"name":"react-nanny","version":"2.7.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.7.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-W0zsnZsZjB85hwuw4iUlEMHuM0hnI1UhhECSbHK/HMTo/WpXCZwuLHMh+VsybzBNJogAY26OiNzJ5egTkRSz5A==","shasum":"0dbce436ed8531981b6dfac9eed5e7398b37bf8b","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.7.0.tgz","fileCount":68,"unpackedSize":143388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOvtLCRA9TVsSAnZWagAAbiMP/0vh5a/aId54td3Ni5vc\nDMfHcO3J/YM5OtN9E4OZkHUpOR0iYN5B9qbUP0QimMktCQngdDy1T/+jYneh\nqoCQbbfS8qfP+N/0aQTZNegiNP2n+KG7dxX5HUTtCqVe7RF1SM/+p1dVguPc\n+ILbBSQ4eltijVQm3CYQiWfn6X1/Muiwkeip8uCyrl0MtS8v4tUg94+4086E\n4dtArNB6q42volvwjBl1VdMlTZLfoU4HYMxsZedp3PCwmG2wPqfbbOsKCUtA\nryNisWakWRVC+WSIj1sdo6AHniY2npksmhS5RvL7wtQULoIF5zwVz4e1Ww0h\nWghzPhp7dws9WHDFa2z3bQYY4NpFeGSrdfMJF9Yw3rAVdbJLIxL8TD92aw9h\nefM0CcpPx1k94A4fBDx14ce5GDvjc+fi0wLs0+SeAl+WzEqZVK/6BZ06v62M\nv6w0M1WT5sEYayiWjvExrh6eaey+p8vJjLVcVJB18pCS5lZZIXh0bTY2aGvM\nYnr1A2MxWPrUTj4nEuFFZp6PAxUCEEtKiWgMW19FN4x7E1J+ssYPB2LwNkFR\nlRdVvcPhRJBx58zi+g4MUPq///oL+CRyciYNP4RIDBjq9PJMoe9GNGLU5FI2\nkJS4jD8R7ExF83DUqTEanqzB83iaYO6vm3nreH2nJ5Bd1hDjAUPd+saFr9hy\nZ5Sb\r\n=AWLB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0tlsoINejKbNPilv8KK9G93NGmNKAFsQnk2XdSms6KAiAegwoclF9FNbTJbQc9Sd1U2Gc/oMhueABE27TYSMB1oQ=="}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.7.0_1614478155130_0.4398830171100223"},"_hasShrinkwrap":false},"2.8.0":{"name":"react-nanny","version":"2.8.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.8.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-gBcDNeH3wCliKN1GW9rZ5BiNzjWqNbQlPj3+gs35kCOdbqrHLNjfG/cx32FG5yg0dCf1xggviIwnW3sPWCej/g==","shasum":"74d5bd6b4535a481d269a04489af604f8df94b1a","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.8.0.tgz","fileCount":68,"unpackedSize":144749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJge03SCRA9TVsSAnZWagAAq84P/2m1lbHPMuXTh1V6qfg7\nwbldtzFeTRSe5kHfX/2WDfMk7uBdY2hYo1Mg7Gaa9z6yh+rWQVdepHi3LZhT\nxL20vsW1pJLi5TexEKn4GEp9r1HooS16SgekxpzCTq114e+EPwcCXOv/f0jw\nUKtx23GJZUV6MaRYIf+bAcJdn4j7/pUqVku51fexg5sPfni4TDVSVSIi5QDB\n1eAlXVEBUixKbG2adZGNr7Eu6Juk9dwgJip9MhwW2aT/w0D4P3ZzJCkxhKHl\nJW1WzUhUZusa7wcqsT3TAIhBrVquWdPoaYAIDQPMDF6J20O8Ru7+euWtbsPg\n+63SZqe7ZezhAlTUpJKmRvs9/7ji8/IIk3C6JHehS/S8nrrT8tIBx+MlARaX\nghucSLtCX79S/4NnYG7RMHBcywSb/rG9rtKnL8l8AMHj2sc9xxuLt01X1xjs\nOX6XkV/kTzHe0OpzjD7g6hhHApLydFb7R0Gb3R9yj8OIPYxGg12N+cxlHcla\ns+W7BRa7HM2mHkXpEC5XsthmxM0IERWR3TQxLdgQbJPSUo/y6xSDKuZ7Bqn0\nXAPSmIzyEGkYRILqzJWbOCsculneVg9Og6jSya6oWPc/ffY/UDKGNJFDAkrE\nbvIU1rWXC6HyfU5DjJ2EBg251n0XG9TGS4e3iU3zFT4FdXwxIIZq1O8hvQhn\nvX2E\r\n=TppG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCueFXUOoMDiRooPzwsoLPhnfKydY9LFSlFVDEgObXoigIhAPrLqkBuUbqrIT/miJeVr/mTrI7CWgGWH33EvX9qX0sS"}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.8.0_1618693586298_0.38192377655626397"},"_hasShrinkwrap":false},"2.9.0":{"name":"react-nanny","version":"2.9.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.9.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-rPkmKdk+D+vxnBkyhzO790kOOjO7JdIszypRaadTnojvTb7tEqVv/6I0A0JqHbDcHkySo889pCEAsBUSX0mSKQ==","shasum":"d7d4007526edc6b4c8a68acd06ff987b6c377d95","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.9.0.tgz","fileCount":68,"unpackedSize":144636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgovQ5CRA9TVsSAnZWagAAtFAQAJAE9SgEjydu8fSTAplq\nBdHn9LCKMhrv52HZICFcATpHgpGDdnGMJ/ErOB41QLzhv3eMX5/NUeBv89An\nnuRzzk7ACOFOedtYo3AvjpgVxzIewKB4yyy8O1/YP/UzGzvwIwgGyPy1Bq7m\naWFMiwYNfHeJhveSbzOFfizWn7iB+dy585Tj7Xw0VcmbD176HpJI6J0LcbLW\n+6uUMONxzWmX8PQRcltm0dQbiEpIysa1VHgmfO8447ANwpQOGFmYHMRJK5cM\nWSzRiqqSp3x21UH4Sl94s8AJCsG8zutY77YWB3CWqBXvxwBELutvUN2g4qm8\n7rYhoLKePuRbjot7VxAMxQXDNpDpDI4InbvHR1EsmMpP6mWf5Bn5zagM+wHv\nFUCxVzAaQZsEtE/jCOVYgvsUVK/31hQG2bwQy2/ax/qcxqr0XIbAn7bcBiGD\nszhvGDO9jmixAUD3Wxyk5vvZzDvbKW2msmn597AygXWJBTtrGpoG8IfTcwOV\nC6ZF6wsCJcxKwGLz1CDlTTpCwhgRIh8z2TrhFvyRrkqaQXu42ntK7UyCbMLQ\noHjzvJxrIgl6DqUk6X5rxamYR/0yU92u0rQ9a3zhf/TeSyH0iyKWdmWTTzdI\nAaT93QNVeiSr+sRGHoWq16GQQKsYw80NR2a9cD7LRdLFvThVqDibsuPpCP5C\ntLIz\r\n=BTJ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXtcusvdO6wF/j8PHqMIhsm+wvvy/xr3iRVPQ028D9AwIgSQZy05+exEjs9QP/xjkeKyiTeFy7zhQQe4xZMPaB8pA="}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.9.0_1621292089205_0.592918587201474"},"_hasShrinkwrap":false},"2.10.0":{"name":"react-nanny","version":"2.10.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.10.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-MmrcxrVQT5cimC0ZUYy7ZRl+t9P5hWM7E2LkFWSrWPj0C5MOlXfz4Oeauu3hImIyvoa0SunpLh22Go0L71xAbA==","shasum":"50543fbbdd4daebb925b9603dae219da7ab7cd93","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.10.0.tgz","fileCount":68,"unpackedSize":151310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBVu7CRA9TVsSAnZWagAAQO4P/ioRevXrdp08r2TQSIW1\nUCeeXaj98Q4R6Rvdhx5oNMt0bBJRrDm+c0DzHKqX5vjjuhb9ZN7AIGxyXlkN\nsH8VFL/5Ezmjw7rVqYSxQTutpeWal3bfGF1Yv2IasSf5ZMXkMHM6QsVOIkC5\nJn5MG+d2ocIn5DqpFdAWlZsQPtc6Z8ArCh1nSZbYltEMpKij+6l5gIHvMnTK\nR7UCC2Gxw3JTMhlrOnjUxAeW5e/PVZ5TAln8xzlSCnIUxvhCuMnehEyMalnA\nLqVq17DwjExZiN57GzltK2PVMLCgN3zIl4aQA1DYi6OEjzY1LRn1akR0BYOd\nNT4D0oGLoo1HA5KYLhkih9ML1UgKchHfoc8y+1pz4C2gIWycan6AqFNH4Qg9\n/O5khd8hANxwm1tzYiv7U7ZJsDfvM7Nf1j5qIj9BGLLd25yomuvG+I2ShUIo\nkj1gsae39qCLu73bb1DGnBs/pi4fI+CfbIGm49w/V8Ih5J2Esm7G7H6nwwdJ\nN8nCMAmCCyeJlAFS47C6ah0w051bpRlFvVhyTZ9J7mk0r2brxJR0N58MVge5\nK4h1x/RwHOkNLVyqHvyKZ9FZTuueCWTLPFvtW8Cu1FU2Apw/M2j/iGHUoDuW\nqxjoB9gWi0TinGTtfPzi9uyd/CYDW/JwLiNM2btz28ERU60L3429sCRHoQuo\nXeMI\r\n=Tl6k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCB1/b3xf1BRjIl7WwfRW7WieRdqnZazSssnojqZ45b9gIgPucz+7PWa5tgdHseR4kTRNZaWWke+25pnuID7k/Ck/Y="}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.10.0_1627741115242_0.40422265331047935"},"_hasShrinkwrap":false},"2.11.0":{"name":"react-nanny","version":"2.11.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.11.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-raJ0m0Z2ZY7Vi+WvLMDQhXqi1wOWyxQBr2xd2mIlgTutSgmyj9tKxzU459xebLjm3G1Xy6PMfzqqBcRXRvZCIg==","shasum":"a88427d7d660d1bde70c998227aac52737008252","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.11.0.tgz","fileCount":68,"unpackedSize":152228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh24jgCRA9TVsSAnZWagAAD3YP/0RbEGTLrJj60ZBZv9sq\nRiMPe6EuVJzNjtH0nQY8WtN96ckx3Tjz1o96ljMYSurl3ROlOhA9B34GjX7u\n1P5rFkP5FVuFSDsNXbtbYwW4G2u5KAgj8Z+1TmzVvIsYs9idUQ3VqLs1XGyP\njJ0lByCAp0FlbsTHIySkdSIKI1U98Nxu9ypwjjWGDqncwfydVQ0CmwRaiKif\nlMU0bfKTPrTxoxVlUoPM+hqre+y/zeFIweTaFwNOnoJVDrhSaUK6r2XaP/n4\ncb7E5Dp+houDynPmrwe8t8U9VJHl7xTvnsLvX4IVEB8+jgD8sHZDl0jMxNtc\nBYwWmxAgAHnviNrY2XG+I4jKn2fF08MvVZSY4H0RNGogU+O1zzH+aoH79qfd\nHJvFcIV1mC5/AE7irr6aqdzSzG47qCs7N6qhziwU80yeqe8rZaN8zoQlL5aC\nQSu3TZoTKstG0ysV7EfWXp5j3PF+0FBOLRIQYVRVJaM0MYIe+vwMvaPsDzTC\n77fRN6q1pZLMVw2Mr7IaJdWSuGyKv7buaBHHu7PiIW/qHEZzYvDmO+xGDJjc\ndjZ45mt7bjFY2B6WJUfmIWykYmAAVeNk12Z5EtCctALL1rTs32S8QU2XBXQW\n6iBMEhANv81VDrKqwPPB/U+UWpip2Biu1Kwg3HgVS9rEQqoBljiyOwqhnEYK\nKzuQ\r\n=Heze\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjZ+Bqaqga1yzmkF/HWWcRI8Ge951jcRrlfPXxa0CB5QIhAOeZBevIWkV0oK8vV59uNOjHW9vQ4i5M7m8e7zxWw8vw"}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.11.0_1636381416379_0.16070222731958883"},"_hasShrinkwrap":false},"2.12.0":{"name":"react-nanny","version":"2.12.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.12.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-oQ3Mo2oBPVELl96IHc43zVsCJUt8BYoEXoeBtPJzTfTTVezQx3/CRZZ+4Ck6TITxawRTUiOcU8v7EPaGpDk01A==","shasum":"8ee7d20319f81131fc1be50ddf3197f286a81dde","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.12.0.tgz","fileCount":68,"unpackedSize":153606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3iIZCRA9TVsSAnZWagAAthMP/2d8nbO20zCt7V/+AF81\nLNHuuXLxGA2HYSB1JY1TFv35YlMTKmHOYa6lk2uq4xHrazBdgMoHcazoxC51\ndLY5K1RDakY0DjhWFDIqhZAP01OARq3aePGDCWIBHZ4cHnLDVzAGR0OeoeCU\nWM9USDasa0/NCN6YcAcWumA1F5O6OLqdXKTcY/z5xhjL3Y1rI/IO/rFxSXQV\n1R2qEt243cBvFPC1DNuTAXQUv1XjxMEE7x+v4ed2VIxy1HYmgb6C/iALl/Ot\nMz2wBvDjxSR98sNKF75tuHGsvsEyjYalofCcsUKskG0KuZCRX4HdVEuaXh/D\ncQs5+Rw1eRpR1rtAHVPSeotbMKtTNVzz1sEdxycjOLWv5X8MkjEvUFb5v8Ls\nh54P794h4HRT93gEBrqUaJ9J/zVo8WYjqm25CIuUqZd7SAWr2pQ1++lSAjdu\nax/Jva+Q6WmNdPcmQ//2tpMGMd/NxrlVJ22dp1y66CBQHf1uEQs2OhNKsupx\nwzddwJkoAWPU2v+Rn3By8lfZc4DS9dkA3X8uXxiqEWCGcx6uTkW4BIligUYb\nKPDVGu79bFhC4G8orNO3rYnlNQik/9TAw9Pyv7Q/3LxQmYLYZMu7qCpaL0ux\n52LApSKJ0DLM28vDx6YYqhCDvj6cHwwYDVuMrINxmVU/lJLi0MCO0b6k/3GZ\nI6Tc\r\n=skGu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHggqf2eL97XFb8wswo1z1P8Hz8RIMVCdeFUPMjDwlKnAiAiIeS09xWCtKya4LHrxVOsrNf3Jz5u6unbdhsbFrxLNQ=="}]},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.12.0_1641947673628_0.7171619159116083"},"_hasShrinkwrap":false},"2.13.0":{"name":"react-nanny","version":"2.13.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.13.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-y3A5Rbpd3ZZWFu0hZNbrAvpoW2aNIMmkZIETlNWEooyGU6FNlOOn+rmI/6ulOsLlTns3PcZTMhY7G5P6ntf/zw==","shasum":"9e7fb20a52c549049177da43354ff03028cb4dd8","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.13.0.tgz","fileCount":68,"unpackedSize":153796,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsuoa7Ju1rfOJnv8uF0EE9zEbLMT/OoD4mu6E02V2QEAiAkwWebsK00UWszJzFNoP4RePf18YcyBsMZNocEPjookA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUFUiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxGg/7BgsSwCTf4L8ftyKZnJ7MlN9yoYuJLH68AkZr46h+j9OLWw+D\r\nJ5XNznTIBhqFSBLqfX8SjBqMWV4HCQ4B8dg4zXwAOtvlG4cy3n3eYeRzqt4P\r\nGVETqnZeDS1ghu2P4u3yTR2ny9quGtNpttl9LLqg9rWcOMr2DC3aUYwlKRDS\r\nPISeGJ6pVSov6jjhpTstgCS9JLtrgA5HFa//1fWBED6zcTypnU2h1nYwqwwx\r\nWh4fAfrQY0lq7fX0RgbCMP2F5X/6ueN3aSYci6I5czX+w9zY+Eb8n241LKzd\r\nfVYsLPB24zs2t+lQX2/JgwMHZNTjbf1VY+X93r18gjmRmud8J3pf5VGIR3Ky\r\n99hxtaE/oWzhFhcHgsxx0V7MV+pgOaGMWHLAn/C/T4fdBSff3pj1VcBXU+Qy\r\ng/k6u0KHk8epe31VlqZbQVEi5UW9Ntgf1coO7QOSgAK41NBjhup29H6TGHeA\r\nyTcV/dmntgLsAjAMAW1ztqjEZGUy9FCMMi8rqvJaxvU7HMwb5PmIWAtDQ5MX\r\nDXod/FLMWvq7HOotwrS7FEwH+hSdAB2gWwB/6UDbXXgHvxi57iA+a+XDW6JP\r\n3miMqC1qzC5OnxX/GAorepCjHqXlfdSeVbBfr+Yu4grK+dB06iGY/AhMuzUD\r\nw/4TpVNfwUi/tOsGbqyA9yFTDcRctAOd5Ic=\r\n=y46Q\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.13.0_1649431842768_0.9225179486281807"},"_hasShrinkwrap":false},"2.14.0":{"name":"react-nanny","version":"2.14.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.14.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-lX+SNWlpbIhN4h3zJQAtRqr7AXwldmgKxJ8e+eChFvMQISsZmHaR2SJujb3u1S6fpC5pUnYKsdbtwZXUG/4Qjw==","shasum":"c53afa8cd9612ca0eee57a35e0d38b65f76445a4","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.14.0.tgz","fileCount":68,"unpackedSize":154841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuqEu4q0dIf5qSVFHadcRjBliHsp38Nu5055tgza4rmAiBsnLeYoYcMuElYC9//eJuay1r/jKd9+4wScjGKpy9QXA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUF2/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqjA//WEv0g8yon9QtZTCgCUqtEyucck1GS42325PIMoTAiEc4qnz9\r\ndCgbNpvh70bsujB7+BzGkd89TTJeQ7iBAd/30WRXboG65eF28F4hMaywO/WF\r\nOgNkqIG9gQi9lVik8WwxqGECtFoLRhPmG63IDX0QekbVFNp8LsftI+0eprB/\r\nSGiTUB/D/94yM2wisrNZF4OWfnzjdZVnFEtigV+cl6uCUCMEsT+cG+7UQLK4\r\nvU7iKE7TA2V6G765wKp4PazNGn19VQLZOQeYnFCnNDfHMOdR1lLMldqCYfWb\r\naEibaSrK0DXWTuRkQpK+xMz5JWDid5B6uX1RK+OX+tGf42R/XaP9DpinNH5A\r\nJ3uEcmp2osCHU9kjGXp5l5WZe1qYqlh6+47lSLjRbc6iKqXQpJsadnH4E0dH\r\nlxop8/n+EiUowKLbE4Q10nZLMLHDZOazbXlo4U1RJMDIZuAZae666fZ2n7za\r\n0MxaJKtMZ7KXtnywl0e8GLSe4Bs2ARLYEQw2rSOZ78ekGD0dQ+xIfrVhAsER\r\nWDK3S24ZEyhVaj56N0VZ1B4rYrXvWzVJKaoo323AYfOJrSMCx+VLox6dLPKO\r\nZe5YXsVzdRomMjqFJ8FFmmwVs6eJ1prZlZnnyJSLus1dShUVGmDvQ++jcNnZ\r\nuPNH/Hv+a4M2u5F9XsQUih8RVv0MVcjEPxg=\r\n=Syr5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.14.0_1649434047273_0.11468038883575415"},"_hasShrinkwrap":false},"2.14.1":{"name":"react-nanny","version":"2.14.1","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.14.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-P8u7JJrEeJDIkvBHLK6UEaTwK12M3Oc+jpT0EjAvi4mHu3QQhwZIjFy+Ix2Haqe+2JBkPNJbrsMlcRA4yz8OJw==","shasum":"e090ffd7e08ab0808ea9f2d8f3f6a27e84b737e2","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.14.1.tgz","fileCount":68,"unpackedSize":154001,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFqa6BQ0ns8xX53JHQrUyMlSLeLGogQe1hQOg4276PxAiEAqNzQ5PgP4om/WuVeDuiGlDlk795Vgezg3RWCmPKFI8c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRbAEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwzA/+M2jWQE4nmZOqH1dABqWD46BTgH8vAxNSeboKUqz2FC7+KiD2\r\nn0crGoGcZVvnPcU9hwaoJSTa2p34gFQVdk461X0NYbgKUw1gFBGi2vA8EPCU\r\nuYaGru+Ee2tCC6K7GiMAtTeGpm+NbUF79zaAfrlahxmFVKsKGL6qySjqNxH8\r\nz0sK6VrOC3dZWRBqrSAZPw/5jTLXgmFNIcH75sN1j7zuAx/UfKbVYkLUgPUR\r\ncoqqQ7z0Kj53QHZRgwriuua6DjOSyTg1TIGmWdwGdoYqjd8ecDLTk8x46nKU\r\n5ZYn5Q4naj3sPNi910hA8vWHrekQt+KvpCu8/FZybyl0jFqeKLdQNRWcA7GH\r\nG2fGFh4B2T8pDh3oBZXMEvemuHVCovfHwifAQw95HU1EI/qtUYX3PXLQ9b4R\r\ngUkUsMHJ2gjKYOu985BsQ/xDaNZUuxW9qh46Dhsee56nUmEXBDQSvdKTPiNi\r\nqBhUuDBHI+eliDcYj1MQtd1ZV4BgQXZXFy2WRfmHJPseYeIIaYZTgLPCp+2p\r\nK0VVpzZ5Ptg4ZH2NeFZCLObVyT68cLE5bbZE0GHofUelAiZNOf32I6cXWy8g\r\niF65RNenweBcGDUQxrgpIXXkzlfdmOWVfqZmw002vne4tph2gOJqrKkKOQDu\r\nWs1IdpKL+mm6/vw2dWNV6elHcducmVn8g1g=\r\n=tptX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.14.1_1665511427888_0.200255926400013"},"_hasShrinkwrap":false},"2.15.0":{"name":"react-nanny","version":"2.15.0","description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","main":"lib/es5/index.js","module":"lib/es6/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"keywords":["react","children","utils","utilities","type","find"],"author":{"name":"Michael Paravano"},"license":"MIT","bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","peerDependencies":{"react":">=16.0.0"},"_id":"react-nanny@2.15.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-fn6tAnJ+UEdD0pq5YytlZJb5XmjVcvXoxq3i2r1o/BavgipwRWsw7oOXNJ8bJd33iedlkNyAQMXVC6qTl0Hv4A==","shasum":"9472984af45761263b92b209f925e773fd761653","tarball":"https://registry.npmjs.org/react-nanny/-/react-nanny-2.15.0.tgz","fileCount":68,"unpackedSize":155042,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIwispvEKuwZpyRTD3lvrROU4S2mVBI4ZFyvAjOv2abAIgObjzOR0L2u+tRxeO2Q/3zlAM9RYGRiefFMuTk7MKTEo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRd1wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYww/+Lq3w4PDuTP7sfPz/wNjRGdcbzQcsj0fIHsCJLFd4BoIMsB7T\r\noswcA37fJVxkeoadGTbc94BipXSRsXzuVqTDCtHWL+IHKtC8/3UGy5rlI4Uo\r\nPDCzNmXl6PqpOGAJghR6ksBk6SAu9Ix9Eb0ZOs8qmaCsKj7f5O2Ru9Ehk5ui\r\nsP5vchLU9RWMAUQyN2Y580ObKAcbUwM8D0SSL4pPPrywmOSwAqDDjgfpbI89\r\nXu0XLK85llu5DWwuFiQe9WFQ4HRRVE5vcDtAKmEdtXM8rr4ohMfTMh07rknB\r\nR/2ccPP3o/Bn5UAWQhLUb87J/4MUbIV15oIeUrqJYAeiZOrKaddBqD+bS+GJ\r\n9qdFeBNxOcMVnKcbMMeBHOdhLB/ehSpKjpLRu6VbYKiVWBpMgDWO3cedlMb0\r\nSWghelvfyDtCW4s7VxJ+jkX+KVCuwtT3QCHHwIo8YuCAk1+7McMxLE/Hsq70\r\nm4GYZGmWTImFIUaQ2RvhuDkEsEu0+HCsPhgWcxx90SzFtx2Yd5ThitkG+1o8\r\nAeksiO7reBE3scwthrqCW5NR3tSKOEqzGzyZRYbDcxeKWyZ8aV6BpyGxyiTV\r\nu9BwYPuLZnLmdgAGZ73kW/51lCAMDd+W7UKcDkUnTFOP/VJCBWQMahzfYuaz\r\nvcii0+U54WKWySxX6SsrACMxtHwUcTchIKw=\r\n=YFxx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"paravano","email":"mparavano+npm@gmail.com"},"directories":{},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-nanny_2.15.0_1665523056486_0.2678832795819983"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-21T13:02:19.742Z","0.0.1":"2020-12-21T13:02:19.919Z","modified":"2022-10-11T21:17:36.762Z","0.0.2":"2020-12-21T13:11:22.949Z","0.0.3":"2020-12-21T14:25:20.843Z","1.0.0":"2020-12-21T15:53:22.925Z","1.1.0":"2020-12-21T18:53:27.049Z","2.0.0-beta.0":"2020-12-22T13:27:37.263Z","2.0.0-beta.1":"2020-12-22T14:33:16.339Z","2.0.0":"2020-12-22T14:34:41.042Z","2.1.0":"2020-12-23T19:41:29.669Z","2.2.0-beta.0":"2020-12-29T14:13:28.105Z","2.2.0":"2020-12-29T15:29:17.250Z","2.3.0-beta.0":"2020-12-30T17:56:30.505Z","2.3.0-beta.1":"2020-12-30T18:45:18.992Z","2.3.0":"2020-12-30T18:58:02.087Z","2.3.1":"2020-12-30T19:48:44.016Z","2.4.0":"2021-01-02T22:58:11.727Z","2.5.0":"2021-01-04T13:41:47.976Z","2.6.0":"2021-01-19T23:36:47.829Z","2.7.0":"2021-02-28T02:09:15.302Z","2.8.0":"2021-04-17T21:06:26.480Z","2.9.0":"2021-05-17T22:54:49.363Z","2.10.0":"2021-07-31T14:18:35.505Z","2.11.0":"2021-11-08T14:23:36.560Z","2.12.0":"2022-01-12T00:34:33.788Z","2.13.0":"2022-04-08T15:30:42.917Z","2.14.0":"2022-04-08T16:07:27.485Z","2.14.1":"2022-10-11T18:03:48.022Z","2.15.0":"2022-10-11T21:17:36.656Z"},"maintainers":[{"name":"paravano","email":"mparavano+npm@gmail.com"}],"description":"Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!","homepage":"https://github.com/TheSpicyMeatball/react-nanny#readme","keywords":["react","children","utils","utilities","type","find"],"repository":{"type":"git","url":"git+https://github.com/TheSpicyMeatball/react-nanny.git"},"author":{"name":"Michael Paravano"},"bugs":{"url":"https://github.com/TheSpicyMeatball/react-nanny/issues"},"license":"MIT","readme":"[![Build Status](https://travis-ci.com/TheSpicyMeatball/react-nanny.svg?branch=main)](https://travis-ci.com/TheSpicyMeatball/react-nanny)\r\n[![Coverage Status](https://coveralls.io/repos/github/TheSpicyMeatball/react-nanny/badge.svg?branch=main)](https://coveralls.io/github/TheSpicyMeatball/react-nanny?branch=main)\r\n\r\n# react-nanny\r\n\r\n> Utils to manage your React Children; find and filter children by type or custom function, enforce child content, and more!\r\n\r\n<p>Hello friend. Have you ever had the need to:</p>\r\n\r\n<ul>\r\n  <li>...query a set of React Children by type or otherwise?</li>\r\n  <li>...reject and remove some of your children for whatever [judgement free] reason?</li>\r\n  <li>...ensure that your children return content at some level?</li>\r\n</ul>\r\n\r\n<p>If you answered yes to any of those questions, then it sounds like your children could use a nanny to help bring order to the chaos...</p>\r\n\r\n<p><b>Version:</b> 2.15.0</p>\r\n\r\n<h3>Dependencies</h3>\r\n\r\n<code>react-nanny</code> doesn't have any dependencies. However, it does have a peer dependency of <code>\"react\": \">=16.0.0\"</code> which you most likely satisfy if you're the kind of person who's looking for utils for React children.\r\n\r\n<h2>Example</h2>\r\n<p>This is simple example of how you can program defensively (your consumer can't just throw anything unexpected in children and have it render) and it shows how you can manipulate your children to place them anywhere in the rendered output.</p>\r\n\r\n<p>Below, we have a <code>ToDo</code> list of <code>Items</code>. We first get all child <code>Items</code>—all other children will be ignored. We then find two lists of children that are completed and incomplete.</p>\r\n\r\n```\r\nimport React from 'react';\r\nimport { getChildrenByType, getChildren } from 'react-nanny';\r\nimport Item from './Item';\r\n\r\nexport const ToDoList ({ children }) => {\r\n  // Get all children of type Item\r\n  const items = getChildrenByType(children, [Item]);\r\n\r\n  // Find all incomplete and complete Items\r\n  const incomplete = getChildren(items, child => !child.props.completed);\r\n  const completed = getChildren(items, child => child.props.completed);\r\n\r\n  return (\r\n    <>\r\n      <div>\r\n        <h3>To Do</h3>\r\n        <ul>\r\n          {incomplete}\r\n        </ul>\r\n      </div>\r\n      <div>\r\n        <h3>Completed</h3>\r\n        <ul>\r\n          {completed}\r\n        </ul>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n```\r\n\r\n<h2>Summary of Utils</h2>\r\n\r\n> Click on each function name for details and examples\r\n\r\n<table>\n    <thead>\n    <tr>\n      <th>function</th>\n      <th>Description</th>\n    </tr>\n    </thead>\n    <tbody><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChild/README.md\">getChild</a></td><td>Gets first child by specified predicate</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChild/README-deep.md\">getChildDeep</a></td><td>Gets first child by specified predicate (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildByType/README.md\">getChildByType</a></td><td>Gets first child by specified type</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildByType/README-deep.md\">getChildByTypeDeep</a></td><td>Gets first child by specified type (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildren/README.md\">getChildren</a></td><td>Gets all children by specified predicate</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildren/README-deep.md\">getChildrenDeep</a></td><td>Gets all children by specified predicate (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildrenByType/README.md\">getChildrenByType</a></td><td>Gets all children by specified type</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildrenByType/README-deep.md\">getChildrenByTypeDeep</a></td><td>Gets all children by specified type (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildrenWithDescendant/README.md\">getChildrenWithDescendant</a></td><td>Gets all children by specified predicate or that have a descendant node in their lineage which matches the predicate</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getChildrenWithDescendantByType/README.md\">getChildrenWithDescendantByType</a></td><td>Gets all children by specified type or that have a descendant node in their lineage which match the specified type</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getDescendantDepth/README.md\">getDescendantDepth</a></td><td>Gets the depth to the first descendant (or self) of each root child that match the specified predicate</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/getDescendantDepthByType/README.md\">getDescendantDepthByType</a></td><td>Gets the depth to the first descendant (or self) of each root child that match the specified types</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/noEmptyChildren/README-deep.md\">noEmptyChildrenDeep</a></td><td>Ensure that there is some level of content and not just a bunch of empty divs, spans, etc (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/overrideProps/README.md\">overrideProps</a></td><td>Immutably override props of the children of the original component and (optionally) the original component</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/overrideProps/README-deep.md\">overridePropsDeep</a></td><td>Immutably override props of the children and all descendants (deep)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/removeChildren/README.md\">removeChildren</a></td><td>Removes all children by specified predicate</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/removeChildren/README-deep.md\">removeChildrenDeep</a></td><td>Removes all children by specified predicate (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/removeChildrenByType/README.md\">removeChildrenByType</a></td><td>Removes all children by specified type</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/removeChildrenByType/README-deep.md\">removeChildrenByTypeDeep</a></td><td>Removes all children by specified type (deep search)</td></tr><tr><td><a href=\"https://github.com/TheSpicyMeatball/react-nanny/tree/main/src/typeOfComponent/README.md\">typeOfComponent</a></td><td>Gets the string type of the component's {customTypeKey}, string type of the core html (JSX intrinsic) element, or the function type</td></tr></tbody>\n  </table><hr />\r\n\r\n<h2>What can I use to derive types for a comparison?</h2>\r\n<p>You can use an imported type, a <code>React.ReactNode</code>, value from <code>typeOfComponent</code>, a string type for an HTML (JSX Intrinsic) element, or a string representation of the type by using the <code>customTypeKey</code> feature.</p>\r\n\r\n<h3>Imported Type</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\ngetChildByType(children, [MyComponent]);\r\n```\r\n\r\n<h3>React.ReactNode</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [child]);\r\n```\r\n\r\n<h3>typeOfComponent</h3>\r\n\r\n```\r\nimport { getChildByType, removeChildrenByType, typeOfComponent } from 'react-nanny';\r\nimport MyComponent from './MyComponent';\r\n\r\nconst child = getChildByType(children, [MyComponent]);\r\n...\r\nremoveChildrenByType(children, [typeOfComponent(child)]);\r\n```\r\n\r\n<h3>String type for HTML (JSX Intrinsic) Elements</h3>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['div']);\r\n```\r\n\r\n<h3>customTypeKey</h3>\r\n<h4>What the heck is a customTypeKey?</h4>\r\n<p>One simple way to be able to define and identify a type on a component and ensure that it is the same in development builds and production builds is to add a constant prop that contains the string type. Consider the following hypothetical component:</p>\r\n\r\n```\r\nimport React from 'react';\r\n\r\nconst Hello = ({ __TYPE }) => <div>Hello World!</div>;\r\n\r\nHello.defaultProps = {\r\n  __TYPE: 'Hello',\r\n};\r\n```\r\n\r\n<p>The <code>Hello</code> has a prop <code>__TYPE</code> that has a value of <code>'Hello'</code>. We can query against this value and know that it's reliable regardless of environment.</p>\r\n<p>The <code>customTypeKey</code> in <code>react-nanny</code> defines what the name of this prop is. In our example, <code>customTypeKey</code> would be <code>'__TYPE'</code> to query using this technique</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello']);\r\n```\r\n\r\n<p>Let's say you don't like <code>__TYPE</code> and what to use your own value such as: <code>CUSTOM</code>. You can accomplish this by providing the name for the <code>customTypeKey</code>:</p>\r\n\r\n```\r\nimport { getChildByType } from 'react-nanny';\r\n\r\ngetChildByType(children, ['Hello'], { customTypeKey: 'CUSTOM' });\r\n```\r\n\r\nFor more information on how to enforce the integrity of the <code>customTypeKey</code>, check out my Medium article: <a href=\"https://mparavano.medium.com/find-filter-react-children-by-type-d9799fb78292\" target=\"_blank\">Find & Filter React Children By Type</a>\r\n\r\n<a href=\"#forwardRef\"></a>\r\n<h2>forwardRef</h2>\r\n\r\n<p>Because React.forwardRef components are higher order components, determining their type becomes tricky. The only way to reliably determine their type is to use the <code>customTypeKey</code> method outlined above.</p>\r\n\r\n<a href=\"#package-contents\"></a>\r\n<h2>Package Contents</h2>\r\n\r\nWithin the module you'll find the following directories and files:\r\n\r\n```html\r\npackage.json\r\nCHANGELOG.md -- history of changes to the module\r\nREADME.md -- this file\r\n/lib\r\n  └───/es5\r\n    └───/getChild\r\n      └───index.d.ts - 1.23 KB\r\n      └───index.js - 1.81 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 4.16 KB\r\n      └───index.js - 6.08 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.21 KB\r\n      └───index.js - 2.07 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.86 KB\r\n      └───index.js - 5.41 KB\r\n    └───/getChildrenWithDescendant\r\n      └───index.d.ts - 638 Bytes\r\n      └───index.js - 1.31 KB\r\n    └───/getChildrenWithDescendantByType\r\n      └───index.d.ts - 2.26 KB\r\n      └───index.js - 3.02 KB\r\n    └───/getDescendantDepth\r\n      └───index.d.ts - 1.14 KB\r\n      └───index.js - 2.46 KB\r\n    └───/getDescendantDepthByType\r\n      └───index.d.ts - 2.39 KB\r\n      └───index.js - 3.93 KB\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 4.23 KB\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.75 KB\r\n      └───index.js - 3.43 KB\r\n    └───/overrideProps\r\n      └───index.d.ts - 2.72 KB\r\n      └───index.js - 4.66 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.22 KB\r\n      └───index.js - 2.57 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.71 KB\r\n      └───index.js - 5.63 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.75 KB\r\n      └───types.d.ts - 249 Bytes\r\n      └───types.js - 79 Bytes\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 913 Bytes\r\n  └───/es6\r\n    └───/getChild\r\n      └───index.d.ts - 1.23 KB\r\n      └───index.js - 1.63 KB\r\n    └───/getChildByType\r\n      └───index.d.ts - 4.16 KB\r\n      └───index.js - 5.78 KB\r\n    └───/getChildren\r\n      └───index.d.ts - 1.21 KB\r\n      └───index.js - 1.87 KB\r\n    └───/getChildrenByType\r\n      └───index.d.ts - 3.86 KB\r\n      └───index.js - 5.12 KB\r\n    └───/getChildrenWithDescendant\r\n      └───index.d.ts - 638 Bytes\r\n      └───index.js - 1.13 KB\r\n    └───/getChildrenWithDescendantByType\r\n      └───index.d.ts - 2.26 KB\r\n      └───index.js - 2.81 KB\r\n    └───/getDescendantDepth\r\n      └───index.d.ts - 1.14 KB\r\n      └───index.js - 2.3 KB\r\n    └───/getDescendantDepthByType\r\n      └───index.d.ts - 2.39 KB\r\n      └───index.js - 3.74 KB\r\n      └───index.d.ts - 1.1 KB\r\n      └───index.js - 905 Bytes\r\n    └───/noEmptyChildren\r\n      └───index.d.ts - 1.75 KB\r\n      └───index.js - 3.2 KB\r\n    └───/overrideProps\r\n      └───index.d.ts - 2.72 KB\r\n      └───index.js - 4.44 KB\r\n    └───/removeChildren\r\n      └───index.d.ts - 1.22 KB\r\n      └───index.js - 2.34 KB\r\n    └───/removeChildrenByType\r\n      └───index.d.ts - 3.71 KB\r\n      └───index.js - 5.32 KB\r\n    └───/typeOfComponent\r\n      └───index.d.ts - 614 Bytes\r\n      └───index.js - 1.6 KB\r\n      └───types.d.ts - 249 Bytes\r\n      └───types.js - 12 Bytes\r\n    └───/_private\r\n      └───utils.d.ts - 61 Bytes\r\n      └───utils.js - 700 Bytes\r\n````","readmeFilename":"README.md"}