Changeset 3078539
- Timestamp:
- 04/29/2024 09:33:15 AM (2 years ago)
- Location:
- find-my-blocks
- Files:
-
- 25 added
- 5 edited
-
tags/4.0.1 (added)
-
tags/4.0.1/assets (added)
-
tags/4.0.1/assets/css (added)
-
tags/4.0.1/assets/css/find-my-blocks.css (added)
-
tags/4.0.1/assets/images (added)
-
tags/4.0.1/assets/images/find-my-blocks-logo-full.svg (added)
-
tags/4.0.1/assets/index.php (added)
-
tags/4.0.1/assets/js (added)
-
tags/4.0.1/assets/js/find-my-blocks.asset.php (added)
-
tags/4.0.1/assets/js/find-my-blocks.js (added)
-
tags/4.0.1/assets/js/find-my-blocks.js.map (added)
-
tags/4.0.1/assets/js/main.css (added)
-
tags/4.0.1/assets/js/main.css.map (added)
-
tags/4.0.1/find-my-blocks.php (added)
-
tags/4.0.1/inc (added)
-
tags/4.0.1/inc/enqueue.php (added)
-
tags/4.0.1/inc/functions.php (added)
-
tags/4.0.1/inc/index.php (added)
-
tags/4.0.1/inc/register-route.php (added)
-
tags/4.0.1/inc/settings-page.php (added)
-
tags/4.0.1/index.php (added)
-
tags/4.0.1/languages (added)
-
tags/4.0.1/languages/find-my-blocks.pot (added)
-
tags/4.0.1/languages/index.php (added)
-
tags/4.0.1/readme.txt (added)
-
trunk/assets/js/find-my-blocks.asset.php (modified) (1 diff)
-
trunk/assets/js/find-my-blocks.js (modified) (1 diff)
-
trunk/assets/js/find-my-blocks.js.map (modified) (1 diff)
-
trunk/find-my-blocks.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
find-my-blocks/trunk/assets/js/find-my-blocks.asset.php
r3078392 r3078539 1 <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => ' 26cd1b451aa10aa4a913');1 <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'e7b50b672b42da168d56'); -
find-my-blocks/trunk/assets/js/find-my-blocks.js
r3078392 r3078539 1 (()=>{"use strict";var M={46:(M,e,N)=>{N.d(e,{A:()=> D}),N(609);const D="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzk0IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDM5NCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMDQuNTA3IDYyQzEwNC4wMjkgNjIgMTAzLjY1NyA2MS44NzAyIDEwMy4zOTQgNjEuNjEwNkMxMDMuMTMxIDYxLjM1MSAxMDMgNjAuOTg1MyAxMDMgNjAuNTEzM1YzOS40ODczQzEwMyAzOS4wMTU0IDEwMy4xMzEgMzguNjQ5NiAxMDMuMzk0IDM4LjM5QzEwMy42NTcgMzguMTMwNCAxMDQuMDI3IDM4LjAwMDYgMTA0LjUwNSAzOC4wMDA2SDExNy42OTVDMTE4LjE3MiAzOC4wMDA2IDExOC41NDMgMzguMTMwNCAxMTguODA2IDM4LjM5QzExOS4wNjggMzguNjQ5NiAxMTkuMiAzOS4wMTU0IDExOS4yIDM5LjQ4NzNDMTE5LjIgMzkuOTU5MyAxMTkuMDY4IDQwLjMyNTEgMTE4LjgwNiA0MC41ODQ2QzExOC41NDMgNDAuODQ0MiAxMTguMTcyIDQwLjk3NCAxMTcuNjk1IDQwLjk3NEgxMDYuMDExVjQ4LjQwNzRIMTEzLjIxNUMxMTMuNjkyIDQ4LjQwNzQgMTE0LjA2MyA0OC41MzcyIDExNC4zMjYgNDguNzk2OEMxMTQuNTg4IDQ5LjA1NjQgMTE0LjcyIDQ5LjQyMjIgMTE0LjcyIDQ5Ljg5NDFDMTE0LjcyIDUwLjM2NjEgMTE0LjU4OCA1MC43MzE5IDExNC4zMjYgNTAuOTkxNEMxMTQuMDYzIDUxLjI1MSAxMTMuNjkyIDUxLjM4MDggMTEzLjIxNSA1MS4zODA4SDEwNi4wMTFWNjAuNTEzM0MxMDYuMDExIDYwLjk4NTMgMTA1Ljg3OSA2MS4zNTEgMTA1LjYxNiA2MS42MTA2QzEwNS4zNTQgNjEuODcwMiAxMDQuOTgzIDYyIDEwNC41MDUgNjJIMTA0LjUwN1pNMTI0LjQyMSA2MkMxMjMuODk1IDYyIDEyMy41MTMgNjEuODgyIDEyMy4yNzQgNjEuNjQ2QzEyMy4wMzUgNjEuNDEgMTIyLjkxNSA2MS4wMzI1IDEyMi45MTUgNjAuNTEzM1YzOS41MjI3QzEyMi45MTUgMzkuMDAzNiAxMjMuMDM1IDM4LjYyNiAxMjMuMjc0IDM4LjM5QzEyMy41MTMgMzguMTU0IDEyMy44OTUgMzguMDM2IDEyNC40MjEgMzguMDM2QzEyNC45NDYgMzguMDM2IDEyNS4zMjkgMzguMTU0IDEyNS41NjcgMzguMzlDMTI1LjgwNiAzOC42MjYgMTI1LjkyNiAzOS4wMDM2IDEyNS45MjYgMzkuNTIyN1Y2MC41MTMzQzEyNS45MjYgNjEuMDMyNSAxMjUuODA2IDYxLjQxIDEyNS41NjcgNjEuNjQ2QzEyNS4zMjkgNjEuODgyIDEyNC45NDYgNjIgMTI0LjQyMSA2MlpNMTUxLjU1MiAzOC4wMDA2QzE1Mi4wMyAzOC4wMDA2IDE1Mi40IDM4LjEzMDQgMTUyLjY2MyAzOC4zOUMxNTIuOTI2IDM4LjY0OTYgMTUzLjA1NyAzOS4wMTU0IDE1My4wNTcgMzkuNDg3M1Y2MC41MTMzQzE1My4wNTcgNjAuOTg1MyAxNTIuOTI2IDYxLjM1MSAxNTIuNjYzIDYxLjYxMDZDMTUyLjQgNjEuODcwMiAxNTIuMDMgNjIgMTUxLjU1MiA2MkMxNTEuMjY1IDYyIDE1MS4wMDIgNjEuOTI5MiAxNTAuNzYzIDYxLjc4NzZDMTUwLjQ4NCA2MS42MDkxIDE1MC4yNDEgNjEuMzgxMSAxNTAuMDQ2IDYxLjExNTFMMTM2LjM5MSA0My43MzVWNjAuNTEzM0MxMzYuMzkxIDYwLjk4NTMgMTM2LjI2IDYxLjM1MSAxMzUuOTk3IDYxLjYxMDZDMTM1LjczNCA2MS44NzAyIDEzNS4zNjQgNjIgMTM0Ljg4NiA2MkMxMzQuNDA4IDYyIDEzNC4wMzggNjEuODcwMiAxMzMuNzc1IDYxLjYxMDZDMTMzLjUxMiA2MS4zNTEgMTMzLjM4MSA2MC45ODUzIDEzMy4zODEgNjAuNTEzM1YzOS40ODczQzEzMy4zODEgMzkuMDE1NCAxMzMuNTEyIDM4LjY0OTYgMTMzLjc3NSAzOC4zOUMxMzQuMDM4IDM4LjEzMDQgMTM0LjQwOCAzOC4wMDA2IDEzNC44ODYgMzguMDAwNkMxMzUuMTczIDM4LjAwMDYgMTM1LjQyNCAzOC4wNzE0IDEzNS42MzkgMzguMjEzQzEzNS44NzggMzguMzU0NiAxMzYuMTI4IDM4LjU3ODggMTM2LjM5MSAzOC44ODU2TDE1MC4wNDYgNTYuMjY1NlYzOS40ODczQzE1MC4wNDYgMzkuMDE1NCAxNTAuMTc4IDM4LjY0OTYgMTUwLjQ0MSAzOC4zOUMxNTAuNzA0IDM4LjEzMDQgMTUxLjA3NCAzOC4wMDA2IDE1MS41NTIgMzguMDAwNlpNMTYyLjAxMSA2MkMxNjEuNTMzIDYyIDE2MS4xNjMgNjEuODcwMiAxNjAuOSA2MS42MTA2QzE2MC42MzcgNjEuMzUxIDE2MC41MDYgNjAuOTg1MyAxNjAuNTA2IDYwLjUxMzNWMzkuNDg3M0MxNjAuNTA2IDM5LjAxNTQgMTYwLjYzNyAzOC42NDk2IDE2MC45IDM4LjM5QzE2MS4xNjMgMzguMTMwNCAxNjEuNTMzIDM4LjAwMDYgMTYyLjAxMSAzOC4wMDA2SDE3MC42NDlDMTczLjc3OSAzOC4wMDA2IDE3Ni4wNzMgMzguNzMyMiAxNzcuNTMgNDAuMTk1M0MxNzkuMDExIDQxLjYzNDggMTc5Ljc1MiA0My45MDAyIDE3OS43NTIgNDYuOTkxNVY1My4wMDkxQzE3OS43NTIgNTYuMTAwNCAxNzkuMDExIDU4LjM3NzcgMTc3LjUzIDU5Ljg0MDhDMTc2LjA3MyA2MS4yODAyIDE3My43NzkgNjIgMTcwLjY0OSA2MkgxNjIuMDExWk0xNzAuNjQ5IDU5LjAyNjZDMTcyLjIwMiA1OS4wMjY2IDE3My40MDggNTguODM3OCAxNzQuMjY5IDU4LjQ2MDNDMTc1LjEyIDU4LjExNDEgMTc1LjgwMiA1Ny40NTM5IDE3Ni4xNjggNTYuNjE5NkMxNzYuNTUgNTUuNzQ2NSAxNzYuNzQyIDU0LjU0MyAxNzYuNzQyIDUzLjAwOTFWNDYuOTkxNUMxNzYuNzQyIDQ1LjQ1NzcgMTc2LjU1IDQ0LjI2NiAxNzYuMTY4IDQzLjQxNjRDMTc1LjgxMSA0Mi41Njc5IDE3NS4xMjggNDEuODkzNSAxNzQuMjY5IDQxLjU0MDRDMTczLjQwOCA0MS4xNjI4IDE3Mi4yMDIgNDAuOTc0IDE3MC42NDkgNDAuOTc0SDE2My41MTZWNTkuMDI2NkgxNzAuNjQ5Wk0yMTguOTMyIDM4LjAwMDZDMjE5Ljc0NCAzOC4wMDA2IDIyMC4xNSAzOC40OTYyIDIyMC4xNSAzOS40ODczVjYwLjUxMzNDMjIwLjE1IDYwLjk4NTMgMjIwLjAxOSA2MS4zNTEgMjE5Ljc1NiA2MS42MTA2QzIxOS40OTMgNjEuODcwMiAyMTkuMTIzIDYyIDIxOC42NDUgNjJDMjE4LjE2NyA2MiAyMTcuNzk3IDYxLjg3MDIgMjE3LjUzNCA2MS42MTA2QzIxNy4yNzEgNjEuMzUxIDIxNy4xNCA2MC45ODUzIDIxNy4xNCA2MC41MTMzVjQ0LjEyNDRMMjEwLjU0NSA1My43MTdDMjEwLjMwNiA1NC4wNDc0IDIxMC4wNDMgNTQuMjk1MiAyMDkuNzU3IDU0LjQ2MDRDMjA5LjQzMiA1NC42MTAxIDIwOS4wNzYgNTQuNjgyOCAyMDguNzE3IDU0LjY3MjhDMjA4LjQzIDU0LjY3MjggMjA4LjE2OCA1NC42MDIgMjA3LjkyOSA1NC40NjA0QzIwNy42NjcgNTQuMjQ1NSAyMDcuNDM4IDUzLjk5NTIgMjA3LjI0OCA1My43MTdMMjAwLjYxNyA0NC4wODlWNjAuNTEzM0MyMDAuNjE3IDYwLjk4NTMgMjAwLjQ4NiA2MS4zNTEgMjAwLjIyMyA2MS42MTA2QzE5OS45NiA2MS44NzAyIDE5OS41OSA2MiAxOTkuMTEyIDYyQzE5OC42MzQgNjIgMTk4LjI2NCA2MS44NzAyIDE5OC4wMDEgNjEuNjEwNkMxOTcuNzM4IDYxLjM1MSAxOTcuNjA3IDYwLjk4NTMgMTk3LjYwNyA2MC41MTMzVjM5LjQ4NzNDMTk3LjYwNyAzOS4wMTU0IDE5Ny43MzggMzguNjQ5NiAxOTguMDAxIDM4LjM5QzE5OC4yNjQgMzguMTMwNCAxOTguNjM0IDM4LjAwMDYgMTk5LjExMiAzOC4wMDA2QzE5OS43ODEgMzguMDAwNiAyMDAuMzMxIDM4LjMxOTIgMjAwLjc2MSAzOC45NTY0TDIwOC45MzIgNTEuMDk3NkwyMTcuMTA0IDM4Ljk1NjRDMjE3LjUxIDM4LjMxOTIgMjE4LjExOSAzOC4wMDA2IDIxOC45MzIgMzguMDAwNlpNMjQ0LjMwNCAzOC4zNTQ2QzI0NC44MjkgMzguNjg1IDI0NS4wOTIgMzkuMDc0NCAyNDUuMDkyIDM5LjUyMjdDMjQ1LjA5MiAzOS44MDU5IDI0NC45ODUgNDAuMDg5MSAyNDQuNzcgNDAuMzcyM0wyMzYuMjQgNTMuMjkyM1Y2MC41MTMzQzIzNi4yNCA2MC45ODUzIDIzNi4xMDggNjEuMzUxIDIzNS44NDUgNjEuNjEwNkMyMzUuNTgzIDYxLjg3MDIgMjM1LjIxMiA2MiAyMzQuNzM0IDYyQzIzNC4yNTYgNjIgMjMzLjg4NiA2MS44NzAyIDIzMy42MjMgNjEuNjEwNkMyMzMuMzYgNjEuMzUxIDIzMy4yMjkgNjAuOTg1MyAyMzMuMjI5IDYwLjUxMzNWNTMuMjkyM0wyMjUuMDIyIDQwLjM3MjNDMjI0LjgzIDQwLjA0MTkgMjI0LjczNSAzOS43NDY5IDIyNC43MzUgMzkuNDg3M0MyMjQuNzM1IDM4Ljk5MTggMjI0Ljk4NiAzOC41OTA2IDIyNS40ODggMzguMjgzOEMyMjUuODIyIDM4LjA5NSAyMjYuMTIxIDM4LjAwMDYgMjI2LjM4NCAzOC4wMDA2QzIyNi44MzcgMzguMDAwNiAyMjcuMjMyIDM4LjI0ODQgMjI3LjU2NiAzOC43NDRMMjM0LjczNCA1MC4xMDY1TDI0Mi4yNjEgMzguNzQ0QzI0Mi41NDggMzguMjcyIDI0Mi45MyAzOC4wMzYgMjQzLjQwOCAzOC4wMzZDMjQzLjY5NCAzOC4wMzYgMjQzLjk5MyAzOC4xNDIyIDI0NC4zMDQgMzguMzU0NlpNMjc2LjE5IDQ4LjM3MkMyNzguMDc3IDQ5LjQ1NzYgMjc5LjAyMSA1MS4zODA4IDI3OS4wMjEgNTQuMTQxOFY1NS4zNDUzQzI3OS4wMjEgNTcuNTE2NCAyNzguNDM2IDU5LjE2ODIgMjc3LjI2NSA2MC4zMDA5QzI3Ni4xMTggNjEuNDMzNyAyNzQuNDQ1IDYyIDI3Mi4yNDcgNjJIMjYyLjQyN0MyNjEuOTQ5IDYyIDI2MS41NzkgNjEuODcwMiAyNjEuMzE2IDYxLjYxMDZDMjYxLjA1MyA2MS4zNTEgMjYwLjkyMiA2MC45ODUzIDI2MC45MjIgNjAuNTEzM1YzOS40ODczQzI2MC45MjIgMzkuMDE1NCAyNjEuMDUzIDM4LjY0OTYgMjYxLjMxNiAzOC4zOUMyNjEuNTc5IDM4LjEzMDQgMjYxLjk0OSAzOC4wMDA2IDI2Mi40MjcgMzguMDAwNkgyNzEuNzgxQzI3My42NjkgMzguMDAwNiAyNzUuMTI2IDM4LjQ5NjIgMjc2LjE1NCAzOS40ODczQzI3Ny4xODEgNDAuNDc4NCAyNzcuNjk1IDQxLjg5NDMgMjc3LjY5NSA0My43MzVWNDQuNjkwN0MyNzcuNjk1IDQ1LjQ0NTkgMjc3LjU2NCA0Ni4xNDIgMjc3LjMwMSA0Ni43NzkyQzI3Ny4wNTggNDcuMzg3IDI3Ni42NzggNDcuOTMxOSAyNzYuMTkgNDguMzcyWk0yNjMuOTMyIDQ3LjUyMjVIMjcyLjg5MkMyNzMuNTE0IDQ3LjQ1MTcgMjczLjk2OCA0Ny4xNjg1IDI3NC4yNTQgNDYuNjczQzI3NC41NDEgNDYuMTUzOCAyNzQuNjg0IDQ1LjQ5MzEgMjc0LjY4NCA0NC42OTA3VjQzLjczNUMyNzQuNjg0IDQyLjcyMDMgMjc0LjQ2OSA0Mi4wMTIzIDI3NC4wMzkgNDEuNjExMkMyNzMuNjA5IDQxLjE4NjQgMjcyLjg1NyA0MC45NzQgMjcxLjc4MSA0MC45NzRIMjYzLjkzMlY0Ny41MjI1Wk0yNzYuMDEgNTQuMTQxOEMyNzYuMDEgNTIuODIwMyAyNzUuNzI0IDUxLjg4ODIgMjc1LjE1IDUxLjM0NTRDMjc0LjU3NyA1MC43NzkxIDI3My42MDkgNTAuNDk1OSAyNzIuMjQ3IDUwLjQ5NTlIMjYzLjkzMlY1OS4wMjY2SDI3Mi4yNDdDMjczLjU4NSA1OS4wMjY2IDI3NC41NDEgNTguNzQzNSAyNzUuMTE0IDU4LjE3NzFDMjc1LjcxMiA1Ny42MTA3IDI3Ni4wMSA1Ni42NjY4IDI3Ni4wMSA1NS4zNDUzVjU0LjE0MThaTTI4Ni41NDMgNjJDMjg1LjU0IDYyIDI4NS4wMzggNjEuNTA0NCAyODUuMDM4IDYwLjUxMzNWMzkuNDg3M0MyODUuMDM4IDM4LjQ5NjIgMjg1LjU0IDM4LjAwMDYgMjg2LjU0MyAzOC4wMDA2QzI4Ny41NDcgMzguMDAwNiAyODguMDQ4IDM4LjQ5NjIgMjg4LjA0OCAzOS40ODczVjU5LjAyNjZIMjk3Ljk3NkMyOTguOTggNTkuMDI2NiAyOTkuNDgxIDU5LjUyMjIgMjk5LjQ4MSA2MC41MTMzQzI5OS40ODEgNjEuNTA0NCAyOTguOTggNjIgMjk3Ljk3NiA2MkgyODYuNTQzWk0zMTAuODk3IDYyQzMwOC4xNDkgNjIgMzA2LjExOCA2MS4zNjI4IDMwNC44MDQgNjAuMDg4NUMzMDMuNTEzIDU4Ljc5MDYgMzAyLjg2NyA1Ni43ODQ4IDMwMi44NjcgNTQuMDcxVjQ1Ljg5NDJDMzAyLjg2NyA0My4xODA0IDMwMy41MjUgNDEuMTg2NCAzMDQuODQgMzkuOTEyMUMzMDYuMTU0IDM4LjYxNDIgMzA4LjE3MyAzNy45NzcgMzEwLjg5NyAzOC4wMDA2SDMxNS4xOTZDMzE3Ljk0NCAzOC4wMDA2IDMxOS45NjMgMzguNjQ5NiAzMjEuMjUzIDM5Ljk0NzVDMzIyLjU2OSA0MS4yMjE4IDMyMy4yMjYgNDMuMjE1OCAzMjMuMjI2IDQ1LjkyOTZWNTQuMDcxQzMyMy4yMjYgNTYuNzg0OCAzMjIuNTY5IDU4Ljc5MDYgMzIxLjI1MyA2MC4wODg1QzMxOS45NjMgNjEuMzYyOCAzMTcuOTQ0IDYyIDMxNS4xOTYgNjJIMzEwLjg5N1pNMzE1LjE5NiA1OS4wMjY2QzMxNi41MTIgNTkuMDI2NiAzMTcuNTE0IDU4Ljg3MzIgMzE4LjIwOCA1OC41NjY1QzMxOC44OTcgNTguMjg2MyAzMTkuNDQ5IDU3Ljc1MzQgMzE5Ljc0OCA1Ny4wNzk4QzMyMC4wNiA1Ni4zNzE4IDMyMC4yMTQgNTUuMzY4OSAzMjAuMjE0IDU0LjA3MVY0NS45Mjk2QzMyMC4yMTQgNDQuNjU1MyAzMjAuMDYgNDMuNjY0MiAzMTkuNzQ4IDQyLjk1NjNDMzE5LjQ1OCA0Mi4yNjgyIDMxOC45MDQgNDEuNzIxMiAzMTguMjA4IDQxLjQzNDJDMzE3LjQ5MSA0MS4xMjc0IDMxNi40ODYgNDAuOTc0IDMxNS4xOTYgNDAuOTc0SDMxMC44OTdDMzA5LjYwNiA0MC45NTA0IDMwOC42MDEgNDEuMDkyIDMwNy44ODUgNDEuMzk4OEMzMDcuMTg4IDQxLjY4NTggMzA2LjYzNSA0Mi4yMzI4IDMwNi4zNDUgNDIuOTIwOUMzMDYuMDM0IDQzLjYyODggMzA1Ljg3OSA0NC42MTk5IDMwNS44NzkgNDUuODk0MlY1NC4wNzFDMzA1Ljg3OSA1NS4zNjg5IDMwNi4wMzQgNTYuMzcxOCAzMDYuMzQ1IDU3LjA3OThDMzA2LjY1NCA1Ny43NjQxIDMwNy4xNTYgNTguMjU5NyAzMDcuODQ5IDU4LjU2NjVDMzA4LjU2NSA1OC44NzMyIDMwOS41ODIgNTkuMDI2NiAzMTAuODk3IDU5LjAyNjZIMzE1LjE5NlpNMzM2Ljk3IDYyQzMzNC4yMjMgNjIgMzMyLjE5MiA2MS4zNjI4IDMzMC44NzggNjAuMDg4NUMzMjkuNTg3IDU4Ljc5MDYgMzI4Ljk0MiA1Ni43ODQ4IDMyOC45NDIgNTQuMDcxVjQ1LjkyOTZDMzI4Ljk0MiA0My4yMTU4IDMyOS41ODcgNDEuMjEgMzMwLjg3OCAzOS45MTIxQzMzMi4xOTIgMzguNjE0MiAzMzQuMjExIDM3Ljk3NyAzMzYuOTM1IDM4LjAwMDZIMzQxLjI3MUMzNDMuNTE3IDM4LjAwMDYgMzQ1LjIyNiAzOC40NjA4IDM0Ni4zOTcgMzkuMzgxMUMzNDcuNTkxIDQwLjMwMTUgMzQ4LjI4NCA0MS43NDEgMzQ4LjQ3NSA0My42OTk2QzM0OC41NDcgNDQuMTk1MiAzNDguNDUxIDQ0LjU3MjcgMzQ4LjE4OSA0NC44MzIzQzM0Ny45MjYgNDUuMDkxOSAzNDcuNTQzIDQ1LjIyMTcgMzQ3LjA0MiA0NS4yMjE3QzM0Ni41NjQgNDUuMjIxNyAzNDYuMTkzIDQ1LjEwMzcgMzQ1LjkzMSA0NC44Njc3QzM0NS42OTIgNDQuNjA4MSAzNDUuNTM2IDQ0LjIzMDYgMzQ1LjQ2NSA0My43MzVDMzQ1LjM0NSA0Mi42NzMxIDM0NC45NzUgNDEuOTUzMyAzNDQuMzU0IDQxLjU3NThDMzQzLjczMiA0MS4xNzQ2IDM0Mi43MDUgNDAuOTc0IDM0MS4yNzEgNDAuOTc0SDMzNi45MzVDMzM1LjY0NCA0MC45NTA0IDMzNC42NDEgNDEuMDkyIDMzMy45MjQgNDEuMzk4OEMzMzMuMjA3IDQxLjcwNTUgMzMyLjY5NCA0Mi4yMTI5IDMzMi4zODMgNDIuOTIwOUMzMzIuMDk2IDQzLjYyODggMzMxLjk1MyA0NC42MzE3IDMzMS45NTMgNDUuOTI5NlY1NC4wNzFDMzMxLjk1MyA1NS4zNjg5IDMzMi4xMDggNTYuMzcxOCAzMzIuNDE5IDU3LjA3OThDMzMyLjcyOSA1Ny43NjQxIDMzMy4yMzEgNTguMjU5NyAzMzMuOTI0IDU4LjU2NjVDMzM0LjY0MSA1OC44NzMyIDMzNS42NTYgNTkuMDI2NiAzMzYuOTcgNTkuMDI2NkgzNDEuMjcxQzM0Mi43MDUgNTkuMDI2NiAzNDMuNzMyIDU4LjgzNzggMzQ0LjM1NCA1OC40NjAzQzM0NC45NzUgNTguMDU5MSAzNDUuMzQ1IDU3LjMyNzYgMzQ1LjQ2NSA1Ni4yNjU2QzM0NS41MzYgNTUuNzcwMSAzNDUuNjkyIDU1LjQwNDMgMzQ1LjkzMSA1NS4xNjgzQzM0Ni4xOTMgNTQuOTA4NyAzNDYuNTY0IDU0Ljc3OSAzNDcuMDQyIDU0Ljc3OUMzNDcuNTQzIDU0Ljc3OSAzNDcuOTI2IDU0LjkwODcgMzQ4LjE4OSA1NS4xNjgzQzM0OC40NTEgNTUuNDI3OSAzNDguNTQ3IDU1LjgwNTUgMzQ4LjQ3NSA1Ni4zMDFDMzQ4LjI4NCA1OC4yNTk3IDM0Ny41OTEgNTkuNjk5MiAzNDYuMzk3IDYwLjYxOTVDMzQ1LjIyNiA2MS41Mzk4IDM0My41MTcgNjIgMzQxLjI3MSA2MkgzMzYuOTdaTTM3MC40MiA1OS40MTZDMzcwLjY4MyA1OS43NDY0IDM3MC44MTQgNjAuMDc2NyAzNzAuODE0IDYwLjQwNzFDMzcwLjgxNCA2MC44MzE5IDM3MC42MTEgNjEuMTk3NyAzNzAuMjA1IDYxLjUwNDRDMzY5LjkzNCA2MS43NTc5IDM2OS41NzQgNjEuODk3NSAzNjkuMjAxIDYxLjg5MzhDMzY4Ljc3MSA2MS44OTM4IDM2OC40MDEgNjEuNjkzMiAzNjguMDkgNjEuMjkyMUwzNTkuMzEgNTAuNTY2N0wzNTcuNzY4IDUyLjE1OTZWNjAuNTEzM0MzNTcuNzY4IDYwLjk4NTMgMzU3LjYzNyA2MS4zNTEgMzU3LjM3NCA2MS42MTA2QzM1Ny4xMTEgNjEuODcwMiAzNTYuNzQxIDYyIDM1Ni4yNjMgNjJDMzU1Ljc4NSA2MiAzNTUuNDE1IDYxLjg3MDIgMzU1LjE1MiA2MS42MTA2QzM1NC44ODkgNjEuMzUxIDM1NC43NTggNjAuOTg1MyAzNTQuNzU4IDYwLjUxMzNWMzkuNDg3M0MzNTQuNzU4IDM5LjAxNTQgMzU0Ljg4OSAzOC42NDk2IDM1NS4xNTIgMzguMzlDMzU1LjQxNSAzOC4xMzA0IDM1NS43ODUgMzguMDAwNiAzNTYuMjYzIDM4LjAwMDZDMzU2Ljc0MSAzOC4wMDA2IDM1Ny4xMTEgMzguMTMwNCAzNTcuMzc0IDM4LjM5QzM1Ny42MzcgMzguNjQ5NiAzNTcuNzY4IDM5LjAxNTQgMzU3Ljc2OCAzOS40ODczVjQ3LjkxMTlMMzY2LjkwOCAzOC41NjdDMzY3LjI2NiAzOC4yMTMgMzY3LjYyNCAzOC4wMzYgMzY3Ljk4MyAzOC4wMzZDMzY4LjM0MSAzOC4wMzYgMzY4LjY4OCAzOC4yMDEyIDM2OS4wMjIgMzguNTMxNkMzNjkuMzgxIDM4Ljg4NTYgMzY5LjU2IDM5LjIzOTUgMzY5LjU2IDM5LjU5MzVDMzY5LjU2IDM5Ljk0NzUgMzY5LjM5MyA0MC4yODk3IDM2OS4wNTggNDAuNjJMMzYxLjQ2IDQ4LjQwNzRMMzcwLjQyIDU5LjQxNlpNMzgxLjg1IDYyQzM3OS43OTUgNjIgMzc4LjE5NCA2MS41OTg4IDM3Ny4wNDggNjAuNzk2NUMzNzUuOTI1IDU5Ljk3MDYgMzc1LjIyIDU4LjcwOCAzNzQuOTMzIDU3LjAwOUMzNzQuODg1IDU2LjUxMzQgMzc0Ljk5MyA1Ni4xMzU5IDM3NS4yNTUgNTUuODc2M0MzNzUuNTE4IDU1LjU5MzEgMzc1LjkwMSA1NS40NTE1IDM3Ni40MDIgNTUuNDUxNUMzNzYuODggNTUuNDUxNSAzNzcuMjM5IDU1LjU2OTUgMzc3LjQ3OCA1NS44MDU1QzM3Ny43MTcgNTYuMDE3OSAzNzcuODg0IDU2LjM4MzYgMzc3Ljk3OSA1Ni45MDI4QzM3OC4xNDcgNTcuNzA1MSAzNzguNTE3IDU4LjI1OTcgMzc5LjA5IDU4LjU2NjVDMzc5LjY4OCA1OC44NzMyIDM4MC42MDggNTkuMDI2NiAzODEuODUgNTkuMDI2NkgzODcuMDExQzM4OC4wNjIgNTkuMDI2NiAzODguODYzIDU4LjkwODYgMzg5LjQxMiA1OC42NzI3QzM4OS42ODQgNTguNTY3NiAzODkuOTMyIDU4LjQxMDIgMzkwLjE0MSA1OC4yMDk3QzM5MC4zNSA1OC4wMDkxIDM5MC41MTcgNTcuNzY5NCAzOTAuNjMxIDU3LjUwNDVDMzkwLjg3IDU2LjkzODIgMzkwLjk4OSA1Ni4xNDc2IDM5MC45ODkgNTUuMTMyOUMzOTAuOTg5IDUzLjYyMjYgMzkwLjcwMyA1Mi41ODQzIDM5MC4xMjkgNTIuMDE4QzM4OS41NTYgNTEuNDUxNiAzODguNTE2IDUxLjE2ODQgMzg3LjAxMSA1MS4xNjg0SDM4Mi41NjdDMzgwLjMyMSA1MS4xNjg0IDM3OC42NDggNTAuNjI1NyAzNzcuNTQ5IDQ5LjU0MDJDMzc2LjQ1IDQ4LjQ1NDYgMzc1LjkwMSA0Ni43OTEgMzc1LjkwMSA0NC41NDkxQzM3NS45MDEgNDIuMzMwOSAzNzYuNDM4IDQwLjY5MDggMzc3LjUxMyAzOS42Mjg5QzM3OC42MTMgMzguNTQzNCAzODAuMjg1IDM4LjAwMDYgMzgyLjUzMSAzOC4wMDA2SDM4Ni43OTZDMzkwLjU3MSAzOC4wMDA2IDM5Mi43NDYgMzkuNTU4MSAzOTMuMzE5IDQyLjY3MzFDMzkzLjM5MSA0My4xNjg2IDM5My4yOTUgNDMuNTU4IDM5My4wMzIgNDMuODQxMkMzOTIuNzcgNDQuMTAwOCAzOTIuMzc1IDQ0LjIzMDYgMzkxLjg1IDQ0LjIzMDZDMzkxLjM3MiA0NC4yMzA2IDM5MS4wMTMgNDQuMTEyNiAzOTAuNzc0IDQzLjg3NjZDMzkwLjUzNSA0My42NDA2IDM5MC4zOCA0My4yNzQ4IDM5MC4zMDggNDIuNzc5M0MzOTAuMTE3IDQyLjA5NDkgMzg5Ljc1OSA0MS42MjMgMzg5LjIzMyA0MS4zNjM0QzM4OC43MDggNDEuMTAzOCAzODcuODk1IDQwLjk3NCAzODYuNzk2IDQwLjk3NEgzODIuNTMxQzM4MS41NTEgNDAuOTc0IDM4MC43OTkgNDEuMDgwMiAzODAuMjczIDQxLjI5MjZDMzgwLjAyOCA0MS4zOTQzIDM3OS44MDcgNDEuNTQzOSAzNzkuNjIyIDQxLjczMjVDMzc5LjQzNyA0MS45MjExIDM3OS4yOTMgNDIuMTQ0NyAzNzkuMTk4IDQyLjM4OTlDMzc5LjAwNyA0Mi44ODU1IDM3OC45MTEgNDMuNjA1MiAzNzguOTExIDQ0LjU0OTFDMzc4LjkxMSA0NS41MTY3IDM3OS4wMTkgNDYuMjYgMzc5LjIzNCA0Ni43NzkyQzM3OS40NDkgNDcuMjc0NyAzNzkuODA3IDQ3LjY0MDUgMzgwLjMwOSA0Ny44NzY1QzM4MC44MzUgNDguMDg4OSAzODEuNTg3IDQ4LjE5NTEgMzgyLjU2NyA0OC4xOTUxSDM4Ny4wMTFDMzg5LjM3NyA0OC4xOTUxIDM5MS4xMzMgNDguNzYxNCAzOTIuMjggNDkuODk0MUMzOTMuNDI3IDUxLjAyNjggMzk0IDUyLjc3MzEgMzk0IDU1LjEzMjlDMzk0IDU3LjQ2OTEgMzkzLjQyNyA1OS4yMDM2IDM5Mi4yOCA2MC4zMzYzQzM5MS4xMzMgNjEuNDQ1NCAzODkuMzc3IDYyIDM4Ny4wMTEgNjJIMzgxLjg1WiIgZmlsbD0iI0UyMkYyMiIvPgo8cGF0aCBkPSJNMzYuNzM2IDBMMCAxOS4yNThMMC40NzA5OTMgNjMuNTczTDIyLjg0MSA3Ni4zMzRMMzYuOTcyIDEwMEw1MC42MyA3Ni4zMzRMNzMgNjMuNjlWMTkuNDlMMzYuNzM2IDBaTTI5LjY3IDY0LjI3TDE0LjM2NCA1NS42ODVWMzUuNDk4TDI5LjY3IDQ0LjU0N1Y2NC4yNjhWNjQuMjdaTTIxLjkgMjMuNDMzTDM2LjczNSAxNS43NzZMNTEuMzM1IDIzLjQzM0wzNi43MzUgMzIuMDE4TDIxLjkgMjMuNDMzWk01OC44NzEgNTUuNjgzTDQzLjggNjQuMjdWNDQuNTQ4TDU4Ljg3MSAzNS43MzFWNTUuNjgzWiIgZmlsbD0iI0UyMkYyMiIvPgo8L3N2Zz4K"},9:(M,e,N)=>{N.d(e,{A:()=>D});const D={navigation:"kiMVxg7uvmObzH9y5Nf7",subtitle:"lh6Gp5uMZoFjdsD0piCQ",active:"IHgUS1orY8DkWO_fbRhQ"}},299:(M,e,N)=>{N.d(e,{A:()=>D});const D={wrapper:"Ub1Qwzm7eiO9i1pfS4JA",header:"MHfJiF9ZtWnpmRSznlsA",container:"bDqx83XSEFfGnp0RCn6r",logo:"s2jFJ3kbxHqVjcXOAa_e",headerNavigation:"O0TgIPrk1w9xxx2FS7rI"}},613:(M,e,N)=>{N.d(e,{A:()=>D});const D={tag:"BBrTfwaRpiXTsfXQotgf",help:"eiQPya4NGNSbJXhlQrFG",default:"Qrwn2ZFHSg4CzQ5B2Hju",info:"dK0gZ8H42AMHDmiT90gt",warning:"Iq2GVHFXIvyadiMTJhPA",error:"IAqnveipCAc7HoEDOSlg",label:"g0nlWBX7OmQcFqR6UoAB",icon:"wLv8qHa44_fOcOtj0hCA"}},609:M=>{M.exports=window.React},455:M=>{M.exports=window.wp.apiFetch},427:M=>{M.exports=window.wp.components},87:M=>{M.exports=window.wp.element},723:M=>{M.exports=window.wp.i18n},129:(M,e,N)=>{N.d(e,{A:()=>n});var D=N(609),t=N(87),z=N(818),j=N(9),c=N(723);const n=({})=>{const{finder:M,preferences:e}=(0,z.h)(),{setSelectedBlock:N}=e,{foundBlocks:n,withFilters:g}=M,[l,u]=(0,t.useState)(null),o=g(n);return(0,D.createElement)("nav",{className:j.A.navigation},(0,D.createElement)("ul",null,o.map((M=>(0,D.createElement)("li",{key:M.name,className:l===M.name?j.A.active:"",onClick:()=>{return e=M.name,N(e),void u(e);var e}},M.name," ",(0,D.createElement)("span",{className:j.A.subtitle},(0,c.__)("Found in","find-my-blocks")," ",M.posts.length," ",M.posts.length>1?(0,c.__)("locations","find-my-blocks"):(0,c.__)("location","find-my-blocks")))))))}},136:(M,e,N)=>{N.d(e,{A:()=>g});var D=N(609),t=N(427),z=N(299),j=N(723),c=N(46),n=N(818);const g=({children:M})=>{const{finder:e}=(0,n.h)(),{isLoading:N,reset:g,startSearch:l,foundBlocks:u}=e;return(0,D.createElement)("div",{className:z.A.wrapper},(0,D.createElement)("div",{className:z.A.header},(0,D.createElement)("div",{className:z.A.container},(0,D.createElement)("img",{className:z.A.logo,src:c.A,alt:"Find My Blocks Logo",onClick:()=>u.length>0&&g()}),(0,D.createElement)("div",{className:z.A.headerNavigation},(0,D.createElement)(t.Button,{onClick:()=>u.length>0?g():l(),icon:u.length>0?"update-alt":null,isPrimary:!0,disabled:N},u.length>0?(0,j.__)("Re-scan","find-my-blocks"):(0,j.__)("Search","find-my-blocks")),(0,D.createElement)(t.DropdownMenu,{icon:"menu",label:"Select a direction"},(({onClose:M})=>(0,D.createElement)(D.Fragment,null,(0,D.createElement)(t.MenuGroup,{label:(0,j.__)("Quick Links","find-my-blocks")},(0,D.createElement)(t.MenuItem,{href:fmbGlobal.admin_url+"/edit.php?post_type=wp_block"},(0,j.__)("Reusable Patterns","find-my-blocks"))),(0,D.createElement)(t.MenuGroup,{label:(0,j.__)("Support","find-my-blocks")},(0,D.createElement)(t.MenuItem,{icon:"star-filled",href:"https://wordpress.org/support/plugin/find-my-blocks/reviews/",target:"_blank"},(0,j.__)("Review on wp.org","find-my-blocks")),(0,D.createElement)(t.MenuItem,{icon:"sos",href:"https://wordpress.org/support/plugin/find-my-blocks/",target:"_blank"},(0,j.__)("Support forum","find-my-blocks")),(0,D.createElement)(t.MenuItem,{icon:"external",href:"https://findmyblocks.com/?utm_source=wordpress_site&utm_medium=navigation&utm_campaign=find_my_blocks_active_install",target:"_blank"},"findmyblocks.com")))))))),M)}},774:(M,e,N)=>{N.d(e,{p:()=>n});var D=N(609),t=N(427),z=N(723),j=N(78);const c=({post:M,blockName:e})=>{const N=function(M){const N=[];return M.hasConditionalBlocks&&N.push({label:(0,z.__)("Conditional","find-my-blocks"),help:(0,D.createElement)("span",null,(0,z.__)("via","find-my-blocks")," ",(0,D.createElement)(t.ExternalLink,{target:"_blank",href:"https://conditionalblocks.com/"},"Conditional Blocks")),icon:"randomize",variation:"info"}),M.isSyncedPattern&&N.push({label:(0,z.__)("Synced Pattern","find-my-blocks"),icon:"networking",variation:"warning"}),M.count>1&&N.push({label:`${M.count}x `+e,icon:"list-view",variation:"info"}),M.isNested&&N.push({label:(0,z.__)("Nested in: ","find-my-blocks")+M.nestedBlockType,icon:"align-center",variation:"info"}),N}(M);return(0,D.createElement)(t.Card,{size:"small",className:"fmb-card"},(0,D.createElement)(t.CardHeader,{isBorderless:!0},(0,D.createElement)("div",null,(0,D.createElement)("span",{className:"fmb-card-title"},M.title),(0,D.createElement)("span",{className:"fmb-card-meta"},(0,D.createElement)("code",null,M?.postType)," ",M?.isThirdPartyTemplate&&(0,D.createElement)("code",null,M?.templateProvider)," ")),(0,D.createElement)("div",null,(0,D.createElement)(t.Button,{target:"_blank",isTertiary:!0,href:M.post_url,size:"small"},(0,z.__)("Preview","find-my-blocks")),(0,D.createElement)(t.Button,{target:"_blank",isTertiary:!0,href:M.edit_url,size:"small"},(0,z.__)("Edit","find-my-blocks")))),N.length>0&&(0,D.createElement)(D.Fragment,null,(0,D.createElement)(t.CardDivider,null),(0,D.createElement)(t.CardBody,null,N.map((M=>(0,D.createElement)(j.v,{key:M.label,...M}))))))};function n({posts:M,blockName:e=""}){return!M||M.length<1?(0,D.createElement)("div",null,(0,D.createElement)("h2",null,(0,z.__)("No locations found","find-my-blocks")),(0,z.__)("Please select a block from the menu, or check the filters.","find-my-blocks")):(0,D.createElement)("div",{className:"fmb-card-grid"},M.map(((M,N)=>(0,D.createElement)(c,{key:e+M?.id,post:M,blockName:e}))))}},78:(M,e,N)=>{N.d(e,{v:()=>j});var D=N(609),t=N(613),z=N(427);const j=({variation:M="default",icon:e,label:N,help:j})=>{const c=((...M)=>M.filter(Boolean).join(" "))(t.A.tag,t.A[M]);return(0,D.createElement)("div",{className:c},e&&(0,D.createElement)(z.Icon,{icon:e,className:t.A.Icon}),(0,D.createElement)("div",{className:t.A.label},N),j&&(0,D.createElement)("div",{className:t.A.help}," ",j))}},818:(M,e,N)=>{N.d(e,{h:()=>g,z:()=>n});var D=N(609),t=N(87),z=N(352),j=N(216);const c=(0,t.createContext)(),n=({children:M})=>{var e;const N=(0,z.g)(),t={posts_per_page:N.postsPerRun},n={preferences:N,finder:(0,j.g)({searchArgs:t,cachedFoundBlocks:null!==(e=N?.cachedFoundBlocks)&&void 0!==e?e:[],setCachedFoundBlocks:N.setCachedFoundBlocks})};return(0,D.createElement)(c.Provider,{value:n},M)},g=()=>{const M=(0,t.useContext)(c);if(!M)throw new Error("useFindMyBlocks must be used within an FindMyBlocksProvider");return M}},216:(M,e,N)=>{N.d(e,{g:()=>j});var D=N(87),t=N(723),z=N(455);const j=({searchArgs:M={},cachedFoundBlocks:e=[],setCachedFoundBlocks:N})=>{const j={name:!1,blockProvider:!1,hasConditionalBlocks:!1},[n,g]=(0,D.useState)([]),[l,u]=(0,D.useState)(j),[o,a]=(0,D.useState)(!1),[r,I]=(0,D.useState)(null),[i,s]=(0,D.useState)({currentPage:0,totalPages:0,percentage:0,totalPosts:0,totalBlocks:0,totalScannedPosts:0}),[A,y]=(0,D.useState)("asc"),T=(0,D.useRef)(null),L=()=>{T.current&&T.current.abort(),g([]),N([]),a(!1),I(null),s({currentPage:0,totalPages:0,percentage:0,totalPosts:0,totalBlocks:0,totalScannedPosts:0}),y("asc")};let E=!0;(0,D.useEffect)((()=>{E&&e&&e.length>0&&(E=!1,g(O(A,e)))}),[e]);const O=(M,e)=>{const N=[...e].sort(((e,N)=>"asc"===M?e.name.localeCompare(N.name):N.name.localeCompare(e.name)));return N.forEach((e=>{e.posts&&Array.isArray(e.posts)&&e.posts.sort(((e,N)=>"asc"===M?e.title.localeCompare(N.title):N.title.localeCompare(e.title)))})),N},k=M=>(l.name&&(M=M.filter((M=>M.name.toLowerCase().includes(l.name.toLowerCase())))),l.blockProvider&&(M=M.filter((M=>M.name.split("/")[0].toLowerCase().includes(l.blockProvider.toLowerCase())))),l.hasConditionalBlocks&&(M=M.map((M=>{const e=M.posts.filter((M=>M.hasConditionalBlocks));return e.length>0?{...M,posts:e}:null})).filter((M=>null!==M))),M);return{reset:L,foundBlocks:n,withFilters:k,setFilters:u,isLoading:o,error:r,startSearch:async()=>{L(),a(!0);const e=new AbortController;T.current=e;let D=1,n=0,l=0,o=[],i=0;try{for(;(l<n||1===D)&&!T.current.signal.aborted;){const N=setTimeout((()=>e.abort()),15e3),j=new URLSearchParams({...M,paged:D}).toString();try{const M=await z({path:`find-my-blocks/v1/search?${j}`,signal:e.signal});if(clearTimeout(N),await new Promise((M=>setTimeout(M,1e3))),!M?.data)break;{const{blocks:e,scanned_posts:N,total_posts:t,total_pages:z}=M.data;if(1===D&&(n=t),i+=e.reduce(((M,e)=>M+e.posts.length),0),l+=N,s({currentPage:D,totalPages:z,percentage:Math.round(D/z*100),totalBlocks:i,totalPosts:n,totalScannedPosts:l}),o=o.concat(e),D++,D>z)break}}catch(M){clearTimeout(N),"AbortError"===M.name?(console.error((0,t.__)("Search aborted or timeout reached - Please try lower the amount of posts to search per request.","find-my-blocks"),M),I(new Error((0,t.__)("Abort/timeout error. Try choosing a lower amount of posts to search per request.","find-my-blocks")))):(console.error("Error fetching blocks:",M),I(M));break}}}finally{if(T.current=null,!r)if(o.length>0){const M=c(o),e=O(A,M);u(j),g(e),N(e)}else console.log(r),L();a(!1)}},abortSearch:()=>{T.current&&(T.current.abort(),console.log("Search aborted by user."),I(new Error((0,t.__)("Search aborted by user","find-my-blocks"))))},progress:i,postsWithBlock:M=>{const e=k(n).find((e=>e.name===M));return e?e.posts:[]}}},c=M=>{const e=new Map;return M.forEach((M=>{if(e.has(M.name)){const N=e.get(M.name);M.posts.forEach((M=>{const e=N.posts.findIndex((e=>e.id===M.id));-1!==e?N.posts[e].count+=M.count:N.posts.push(M)}))}else e.set(M.name,{...M,posts:[...M.posts]})})),Array.from(e.values())}},864:(M,e,N)=>{N.d(e,{M:()=>z});var D=N(87);const t=new Map,z=(M,e)=>{const[N,z]=(0,D.useState)(e),[j,c]=(0,D.useState)(!0);return(0,D.useEffect)((()=>{if(j){c(!1);const N=JSON.parse(localStorage.getItem(M));z(null!=N?N:e)}}),[j,M,e]),(0,D.useEffect)((()=>{const e=M=>{z(M)};return((M,e)=>{t.has(M)||t.set(M,[]),t.get(M).push(e)})(M,e),()=>{((M,e)=>{const N=t.get(M)||[],D=N.indexOf(e);D>-1&&N.splice(D,1)})(M,e)}}),[M]),[N,(0,D.useCallback)((e=>{localStorage.setItem(M,JSON.stringify(e)),((M,e)=>{(t.get(M)||[]).forEach((M=>M(e)))})(M,e)}),[M])]}},352:(M,e,N)=>{N.d(e,{g:()=>t});var D=N(864);const t=()=>{const[M,e]=(0,D.M)("fmb_selected_block",""),[N,t]=(0,D.M)("fmb_posts_per_run",10),[z,j]=(0,D.M)("fmb_found_blocks",!1),[c,n]=(0,D.M)("fmb_selected_provider",!1),[g,l]=(0,D.M)("fmb_version_cache",!1),[u,o]=(0,D.M)("fmb_conditional_blocks",!1);return{cachedFoundBlocks:fmbGlobal.version===g&&z,setCachedFoundBlocks:M=>{l(fmbGlobal.version),n(!1),e(!1),o(!1),j(M)},selectedBlock:M,setSelectedBlock:e,selectedProvider:c,setSelectedProvider:n,postsPerRun:parseInt(N),setPostsPerRun:t,conditionalBlocks:u,setConditionalBlocks:o}}},948:(M,e,N)=>{N.d(e,{A:()=>I});var D=N(609),t=N(87),z=N(723),j=N(774),c=N(129),n=N(818),g=N(431),l=N(427);const u=({error:M})=>M?(0,D.createElement)(l.Notice,{status:"error"},M.message):null;function o({className:M}){const{finder:e,preferences:N}=(0,n.h)(),[z,j]=(0,t.useState)("");return(0,D.createElement)(l.SearchControl,{value:z,onChange:M=>{j(M),e.setFilters((e=>({...e,name:!!M.length&&M})))}})}function a(){var M;const{finder:e,preferences:N}=(0,n.h)(),[z,j]=(0,t.useState)(null!==(M=N?.selectedProvider)&&void 0!==M&&M),c=(0,g.g)(e.foundBlocks);return(0,D.createElement)(l.ComboboxControl,{allowReset:!0,label:"Block Provider",help:"Core or third-party block providers",value:z,onChange:M=>{j(M),N?.setSelectedProvider(M),e.setFilters((e=>({...e,blockProvider:null!=M&&M})))},options:c,onFilterValueChange:M=>j(c.filter((e=>e.label.toLowerCase().startsWith(M.toLowerCase()))))})}const r=()=>{const{finder:M,preferences:e}=(0,n.h)(),[N,j]=(0,t.useState)(!!e?.conditionalBlocks);return(0,D.createElement)(l.CheckboxControl,{label:"Conditional Blocks",help:(0,z.__)("Only blocks with visibility changed by the Conditional Blocks plugin","find-my-blocks"),checked:N,onChange:N=>{j(!!N),e?.setConditionalBlocks(!!N),M.setFilters((M=>({...M,hasConditionalBlocks:!!N})))}})},I=function(){const{finder:M,preferences:e}=(0,n.h)(),{foundBlocks:N,startSearch:g,abortSearch:I,progress:i,isLoading:s,error:A,postsWithBlock:y}=M,{selectedBlock:T,postsPerRun:L,setPostsPerRun:E}=e;if(s)return(0,D.createElement)("div",{className:"fmb-bento-container"},(0,D.createElement)("div",{className:"fmb-bento-grid"},(0,D.createElement)("div",{className:"fmb-box fmb-box-full"},(0,D.createElement)("h2",null,(0,z.__)("Searching for your blocks...","find-my-blocks")),(0,D.createElement)("p",null,(0,z.__)("Progress:","find-my-blocks")," ",i.percentage,"%"),(0,D.createElement)("p",null,(0,z.__)("Scanning batch","find-my-blocks")," ",i.currentPage," ",(0,z.__)("out of","find-my-blocks")," ",i.totalPages),(0,D.createElement)("p",null,(0,z.__)("Total block instances detected:","find-my-blocks")," ",i.totalBlocks," "+(0,z.__)("in","find-my-blocks")," ",i.totalScannedPosts," "+(0,z.__)("locations.","find-my-blocks")),(0,D.createElement)(l.Button,{onClick:()=>I(),isDestructive:!0,isPrimary:!0,disabled:!s},(0,z.__)("Abort Search","find-my-blocks")))));const O=y(T);var k;return!A&&N.length>0?(0,D.createElement)(t.Fragment,null,(0,D.createElement)("div",{className:"fmb-container"},(0,D.createElement)("div",{className:"fmb-grid-results-page"},(0,D.createElement)("div",{className:"fmb-box"},(0,D.createElement)("h2",null,(0,z.__)("Filters","find-my-blocks")),(0,D.createElement)("div",{className:"fmb-search-filters"},(0,D.createElement)(o,null),(0,D.createElement)(a,null),fmbGlobal?.conditional_blocks_installed&&(0,D.createElement)(r,null)),(0,D.createElement)("h2",null,(0,z.__)("Found Blocks","find-my-blocks")),(0,D.createElement)("p",null,(0,z.__)("The below blocks have been detected during the scan.","find-my-blocks")),(0,D.createElement)("nav",{className:"fmb-side-navigation"},(0,D.createElement)(c.A,null))),(0,D.createElement)("div",null,T&&(0,D.createElement)(t.Fragment,null,(0,D.createElement)("h2",null,(0,D.createElement)("span",{className:"fmb-badge"},T)),O?.length>0&&(0,D.createElement)("p",null,(0,z.__)("Instances of the","find-my-blocks")," ",(0,D.createElement)("b",null,T)," ",(0,z.__)("block has been found in these","find-my-blocks")," ",null!==(k=O.length)&&void 0!==k?k:0," ",(0,z.__)("locations.","find-my-blocks"))),(0,D.createElement)(j.p,{blockName:T,posts:O}))))):(0,D.createElement)(t.Fragment,null,(0,D.createElement)(u,{error:A}),(0,D.createElement)("div",{className:"fmb-bento-container"},(0,D.createElement)("div",{className:"fmb-bento-grid"},(0,D.createElement)("div",{className:"fmb-box fmb-box-full"},(0,D.createElement)("h2",null,(0,z.__)("Get Started","find-my-blocks")),(0,D.createElement)("p",null,(0,z.__)("Find My Blocks will search through all your templates, posts and pages to find the WordPress blocks.","find-my-blocks")),(0,D.createElement)(l.RadioControl,{className:"fmb-performance-control",label:"Performance",help:(0,z.__)("Warning! Choose the performance level that matches your server. Fetching too may posts at once may temporarily crash your site.","find-my-blocks"),onChange:M=>{E(M)},options:[{label:(0,z.__)("Low (Recommended for most sites, 10 post per run)","find-my-blocks"),value:10},{label:(0,z.__)("Standard (100 posts per run)","find-my-blocks"),value:100},{label:(0,z.__)("Ultra (500 posts per run)","find-my-blocks"),value:500}],selected:null!=L?L:10}),(0,D.createElement)(l.Button,{onClick:()=>g(),isPrimary:!0,disabled:s},(0,z.__)("Start Search","find-my-blocks"))),(0,D.createElement)("div",{className:"fmb-box"},(0,D.createElement)("h2",null,(0,z.__)("Block Tools & Resources","find-my-blocks")),(0,D.createElement)("p",null,(0,z.__)("Create faster & better WordPress sites with block tutorials from experts.","find-my-blocks")),(0,D.createElement)("ul",null,(0,D.createElement)("li",null,(0,D.createElement)(l.ExternalLink,{href:"https://findmyblocks.com?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"findmyblocks.com")),(0,D.createElement)("li",null,(0,D.createElement)(l.ExternalLink,{href:"https://conditionalblocks.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"Conditional Blocks plugin")),(0,D.createElement)("li",null,(0,D.createElement)(l.ExternalLink,{href:"https://morganhvidt.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"@MorganHvidt"),(0,z.__)("(Developer) ","find-my-blocks")))),(0,D.createElement)("div",{className:"fmb-box"},(0,D.createElement)("h2",null,(0,z.__)("Support Development","find-my-blocks")),(0,D.createElement)("p",null,(0,z.__)("I'm building Find My Blocks in my free time. If you find it useful, please consider donating, or contributing to the project.","find-my-blocks")," ",(0,D.createElement)("em",null,"- Morgan Hvidt")),(0,D.createElement)("div",{style:{marginTop:"30px"}},(0,D.createElement)(l.Button,{isSecondary:!0,target:"_blank",href:"https://github.com/morganhvidt/find-my-blocks/"},(0,z.__)("Contribute on Github","find-my-blocks"))," ",(0,D.createElement)(l.Button,{style:{marginLeft:"10px"},isSecondary:!0,target:"_blank",href:"https://morganhvidt.com/donate/"},(0,z.__)("Donate to development","find-my-blocks")))))))}},431:(M,e,N)=>{function D(M){return M.reduce(((M,e)=>{var N;const D=null!==(N=e.name.split("/")[0])&&void 0!==N&&N;return M.some((M=>M.value===D))||M.push({value:D,label:D}),M}),[])}N.d(e,{g:()=>D})}},e={};function N(D){var t=e[D];if(void 0!==t)return t.exports;var z=e[D]={exports:{}};return M[D](z,z.exports,N),z.exports}N.n=M=>{var e=M&&M.__esModule?()=>M.default:()=>M;return N.d(e,{a:e}),e},N.d=(M,e)=>{for(var D in e)N.o(e,D)&&!N.o(M,D)&&Object.defineProperty(M,D,{enumerable:!0,get:e[D]})},N.o=(M,e)=>Object.prototype.hasOwnProperty.call(M,e),(()=>{var M=N(609),e=N(87),D=(N(723),N(948)),t=N(818),z=N(136);function j(){return(0,M.createElement)(e.Fragment,null,(0,M.createElement)(t.z,null,(0,M.createElement)(z.A,null),(0,M.createElement)(D.A,null)))}document.addEventListener("DOMContentLoaded",(()=>{const N=document.getElementById("find-my-blocks-app");N&&(e.createRoot?(0,e.createRoot)(N).render((0,M.createElement)(j,null)):(0,e.render)((0,M.createElement)(j,null),N))}))})()})();1 (()=>{"use strict";var M={46:(M,e,N)=>{N.d(e,{A:()=>t}),N(609);const t="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzk0IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDM5NCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMDQuNTA3IDYyQzEwNC4wMjkgNjIgMTAzLjY1NyA2MS44NzAyIDEwMy4zOTQgNjEuNjEwNkMxMDMuMTMxIDYxLjM1MSAxMDMgNjAuOTg1MyAxMDMgNjAuNTEzM1YzOS40ODczQzEwMyAzOS4wMTU0IDEwMy4xMzEgMzguNjQ5NiAxMDMuMzk0IDM4LjM5QzEwMy42NTcgMzguMTMwNCAxMDQuMDI3IDM4LjAwMDYgMTA0LjUwNSAzOC4wMDA2SDExNy42OTVDMTE4LjE3MiAzOC4wMDA2IDExOC41NDMgMzguMTMwNCAxMTguODA2IDM4LjM5QzExOS4wNjggMzguNjQ5NiAxMTkuMiAzOS4wMTU0IDExOS4yIDM5LjQ4NzNDMTE5LjIgMzkuOTU5MyAxMTkuMDY4IDQwLjMyNTEgMTE4LjgwNiA0MC41ODQ2QzExOC41NDMgNDAuODQ0MiAxMTguMTcyIDQwLjk3NCAxMTcuNjk1IDQwLjk3NEgxMDYuMDExVjQ4LjQwNzRIMTEzLjIxNUMxMTMuNjkyIDQ4LjQwNzQgMTE0LjA2MyA0OC41MzcyIDExNC4zMjYgNDguNzk2OEMxMTQuNTg4IDQ5LjA1NjQgMTE0LjcyIDQ5LjQyMjIgMTE0LjcyIDQ5Ljg5NDFDMTE0LjcyIDUwLjM2NjEgMTE0LjU4OCA1MC43MzE5IDExNC4zMjYgNTAuOTkxNEMxMTQuMDYzIDUxLjI1MSAxMTMuNjkyIDUxLjM4MDggMTEzLjIxNSA1MS4zODA4SDEwNi4wMTFWNjAuNTEzM0MxMDYuMDExIDYwLjk4NTMgMTA1Ljg3OSA2MS4zNTEgMTA1LjYxNiA2MS42MTA2QzEwNS4zNTQgNjEuODcwMiAxMDQuOTgzIDYyIDEwNC41MDUgNjJIMTA0LjUwN1pNMTI0LjQyMSA2MkMxMjMuODk1IDYyIDEyMy41MTMgNjEuODgyIDEyMy4yNzQgNjEuNjQ2QzEyMy4wMzUgNjEuNDEgMTIyLjkxNSA2MS4wMzI1IDEyMi45MTUgNjAuNTEzM1YzOS41MjI3QzEyMi45MTUgMzkuMDAzNiAxMjMuMDM1IDM4LjYyNiAxMjMuMjc0IDM4LjM5QzEyMy41MTMgMzguMTU0IDEyMy44OTUgMzguMDM2IDEyNC40MjEgMzguMDM2QzEyNC45NDYgMzguMDM2IDEyNS4zMjkgMzguMTU0IDEyNS41NjcgMzguMzlDMTI1LjgwNiAzOC42MjYgMTI1LjkyNiAzOS4wMDM2IDEyNS45MjYgMzkuNTIyN1Y2MC41MTMzQzEyNS45MjYgNjEuMDMyNSAxMjUuODA2IDYxLjQxIDEyNS41NjcgNjEuNjQ2QzEyNS4zMjkgNjEuODgyIDEyNC45NDYgNjIgMTI0LjQyMSA2MlpNMTUxLjU1MiAzOC4wMDA2QzE1Mi4wMyAzOC4wMDA2IDE1Mi40IDM4LjEzMDQgMTUyLjY2MyAzOC4zOUMxNTIuOTI2IDM4LjY0OTYgMTUzLjA1NyAzOS4wMTU0IDE1My4wNTcgMzkuNDg3M1Y2MC41MTMzQzE1My4wNTcgNjAuOTg1MyAxNTIuOTI2IDYxLjM1MSAxNTIuNjYzIDYxLjYxMDZDMTUyLjQgNjEuODcwMiAxNTIuMDMgNjIgMTUxLjU1MiA2MkMxNTEuMjY1IDYyIDE1MS4wMDIgNjEuOTI5MiAxNTAuNzYzIDYxLjc4NzZDMTUwLjQ4NCA2MS42MDkxIDE1MC4yNDEgNjEuMzgxMSAxNTAuMDQ2IDYxLjExNTFMMTM2LjM5MSA0My43MzVWNjAuNTEzM0MxMzYuMzkxIDYwLjk4NTMgMTM2LjI2IDYxLjM1MSAxMzUuOTk3IDYxLjYxMDZDMTM1LjczNCA2MS44NzAyIDEzNS4zNjQgNjIgMTM0Ljg4NiA2MkMxMzQuNDA4IDYyIDEzNC4wMzggNjEuODcwMiAxMzMuNzc1IDYxLjYxMDZDMTMzLjUxMiA2MS4zNTEgMTMzLjM4MSA2MC45ODUzIDEzMy4zODEgNjAuNTEzM1YzOS40ODczQzEzMy4zODEgMzkuMDE1NCAxMzMuNTEyIDM4LjY0OTYgMTMzLjc3NSAzOC4zOUMxMzQuMDM4IDM4LjEzMDQgMTM0LjQwOCAzOC4wMDA2IDEzNC44ODYgMzguMDAwNkMxMzUuMTczIDM4LjAwMDYgMTM1LjQyNCAzOC4wNzE0IDEzNS42MzkgMzguMjEzQzEzNS44NzggMzguMzU0NiAxMzYuMTI4IDM4LjU3ODggMTM2LjM5MSAzOC44ODU2TDE1MC4wNDYgNTYuMjY1NlYzOS40ODczQzE1MC4wNDYgMzkuMDE1NCAxNTAuMTc4IDM4LjY0OTYgMTUwLjQ0MSAzOC4zOUMxNTAuNzA0IDM4LjEzMDQgMTUxLjA3NCAzOC4wMDA2IDE1MS41NTIgMzguMDAwNlpNMTYyLjAxMSA2MkMxNjEuNTMzIDYyIDE2MS4xNjMgNjEuODcwMiAxNjAuOSA2MS42MTA2QzE2MC42MzcgNjEuMzUxIDE2MC41MDYgNjAuOTg1MyAxNjAuNTA2IDYwLjUxMzNWMzkuNDg3M0MxNjAuNTA2IDM5LjAxNTQgMTYwLjYzNyAzOC42NDk2IDE2MC45IDM4LjM5QzE2MS4xNjMgMzguMTMwNCAxNjEuNTMzIDM4LjAwMDYgMTYyLjAxMSAzOC4wMDA2SDE3MC42NDlDMTczLjc3OSAzOC4wMDA2IDE3Ni4wNzMgMzguNzMyMiAxNzcuNTMgNDAuMTk1M0MxNzkuMDExIDQxLjYzNDggMTc5Ljc1MiA0My45MDAyIDE3OS43NTIgNDYuOTkxNVY1My4wMDkxQzE3OS43NTIgNTYuMTAwNCAxNzkuMDExIDU4LjM3NzcgMTc3LjUzIDU5Ljg0MDhDMTc2LjA3MyA2MS4yODAyIDE3My43NzkgNjIgMTcwLjY0OSA2MkgxNjIuMDExWk0xNzAuNjQ5IDU5LjAyNjZDMTcyLjIwMiA1OS4wMjY2IDE3My40MDggNTguODM3OCAxNzQuMjY5IDU4LjQ2MDNDMTc1LjEyIDU4LjExNDEgMTc1LjgwMiA1Ny40NTM5IDE3Ni4xNjggNTYuNjE5NkMxNzYuNTUgNTUuNzQ2NSAxNzYuNzQyIDU0LjU0MyAxNzYuNzQyIDUzLjAwOTFWNDYuOTkxNUMxNzYuNzQyIDQ1LjQ1NzcgMTc2LjU1IDQ0LjI2NiAxNzYuMTY4IDQzLjQxNjRDMTc1LjgxMSA0Mi41Njc5IDE3NS4xMjggNDEuODkzNSAxNzQuMjY5IDQxLjU0MDRDMTczLjQwOCA0MS4xNjI4IDE3Mi4yMDIgNDAuOTc0IDE3MC42NDkgNDAuOTc0SDE2My41MTZWNTkuMDI2NkgxNzAuNjQ5Wk0yMTguOTMyIDM4LjAwMDZDMjE5Ljc0NCAzOC4wMDA2IDIyMC4xNSAzOC40OTYyIDIyMC4xNSAzOS40ODczVjYwLjUxMzNDMjIwLjE1IDYwLjk4NTMgMjIwLjAxOSA2MS4zNTEgMjE5Ljc1NiA2MS42MTA2QzIxOS40OTMgNjEuODcwMiAyMTkuMTIzIDYyIDIxOC42NDUgNjJDMjE4LjE2NyA2MiAyMTcuNzk3IDYxLjg3MDIgMjE3LjUzNCA2MS42MTA2QzIxNy4yNzEgNjEuMzUxIDIxNy4xNCA2MC45ODUzIDIxNy4xNCA2MC41MTMzVjQ0LjEyNDRMMjEwLjU0NSA1My43MTdDMjEwLjMwNiA1NC4wNDc0IDIxMC4wNDMgNTQuMjk1MiAyMDkuNzU3IDU0LjQ2MDRDMjA5LjQzMiA1NC42MTAxIDIwOS4wNzYgNTQuNjgyOCAyMDguNzE3IDU0LjY3MjhDMjA4LjQzIDU0LjY3MjggMjA4LjE2OCA1NC42MDIgMjA3LjkyOSA1NC40NjA0QzIwNy42NjcgNTQuMjQ1NSAyMDcuNDM4IDUzLjk5NTIgMjA3LjI0OCA1My43MTdMMjAwLjYxNyA0NC4wODlWNjAuNTEzM0MyMDAuNjE3IDYwLjk4NTMgMjAwLjQ4NiA2MS4zNTEgMjAwLjIyMyA2MS42MTA2QzE5OS45NiA2MS44NzAyIDE5OS41OSA2MiAxOTkuMTEyIDYyQzE5OC42MzQgNjIgMTk4LjI2NCA2MS44NzAyIDE5OC4wMDEgNjEuNjEwNkMxOTcuNzM4IDYxLjM1MSAxOTcuNjA3IDYwLjk4NTMgMTk3LjYwNyA2MC41MTMzVjM5LjQ4NzNDMTk3LjYwNyAzOS4wMTU0IDE5Ny43MzggMzguNjQ5NiAxOTguMDAxIDM4LjM5QzE5OC4yNjQgMzguMTMwNCAxOTguNjM0IDM4LjAwMDYgMTk5LjExMiAzOC4wMDA2QzE5OS43ODEgMzguMDAwNiAyMDAuMzMxIDM4LjMxOTIgMjAwLjc2MSAzOC45NTY0TDIwOC45MzIgNTEuMDk3NkwyMTcuMTA0IDM4Ljk1NjRDMjE3LjUxIDM4LjMxOTIgMjE4LjExOSAzOC4wMDA2IDIxOC45MzIgMzguMDAwNlpNMjQ0LjMwNCAzOC4zNTQ2QzI0NC44MjkgMzguNjg1IDI0NS4wOTIgMzkuMDc0NCAyNDUuMDkyIDM5LjUyMjdDMjQ1LjA5MiAzOS44MDU5IDI0NC45ODUgNDAuMDg5MSAyNDQuNzcgNDAuMzcyM0wyMzYuMjQgNTMuMjkyM1Y2MC41MTMzQzIzNi4yNCA2MC45ODUzIDIzNi4xMDggNjEuMzUxIDIzNS44NDUgNjEuNjEwNkMyMzUuNTgzIDYxLjg3MDIgMjM1LjIxMiA2MiAyMzQuNzM0IDYyQzIzNC4yNTYgNjIgMjMzLjg4NiA2MS44NzAyIDIzMy42MjMgNjEuNjEwNkMyMzMuMzYgNjEuMzUxIDIzMy4yMjkgNjAuOTg1MyAyMzMuMjI5IDYwLjUxMzNWNTMuMjkyM0wyMjUuMDIyIDQwLjM3MjNDMjI0LjgzIDQwLjA0MTkgMjI0LjczNSAzOS43NDY5IDIyNC43MzUgMzkuNDg3M0MyMjQuNzM1IDM4Ljk5MTggMjI0Ljk4NiAzOC41OTA2IDIyNS40ODggMzguMjgzOEMyMjUuODIyIDM4LjA5NSAyMjYuMTIxIDM4LjAwMDYgMjI2LjM4NCAzOC4wMDA2QzIyNi44MzcgMzguMDAwNiAyMjcuMjMyIDM4LjI0ODQgMjI3LjU2NiAzOC43NDRMMjM0LjczNCA1MC4xMDY1TDI0Mi4yNjEgMzguNzQ0QzI0Mi41NDggMzguMjcyIDI0Mi45MyAzOC4wMzYgMjQzLjQwOCAzOC4wMzZDMjQzLjY5NCAzOC4wMzYgMjQzLjk5MyAzOC4xNDIyIDI0NC4zMDQgMzguMzU0NlpNMjc2LjE5IDQ4LjM3MkMyNzguMDc3IDQ5LjQ1NzYgMjc5LjAyMSA1MS4zODA4IDI3OS4wMjEgNTQuMTQxOFY1NS4zNDUzQzI3OS4wMjEgNTcuNTE2NCAyNzguNDM2IDU5LjE2ODIgMjc3LjI2NSA2MC4zMDA5QzI3Ni4xMTggNjEuNDMzNyAyNzQuNDQ1IDYyIDI3Mi4yNDcgNjJIMjYyLjQyN0MyNjEuOTQ5IDYyIDI2MS41NzkgNjEuODcwMiAyNjEuMzE2IDYxLjYxMDZDMjYxLjA1MyA2MS4zNTEgMjYwLjkyMiA2MC45ODUzIDI2MC45MjIgNjAuNTEzM1YzOS40ODczQzI2MC45MjIgMzkuMDE1NCAyNjEuMDUzIDM4LjY0OTYgMjYxLjMxNiAzOC4zOUMyNjEuNTc5IDM4LjEzMDQgMjYxLjk0OSAzOC4wMDA2IDI2Mi40MjcgMzguMDAwNkgyNzEuNzgxQzI3My42NjkgMzguMDAwNiAyNzUuMTI2IDM4LjQ5NjIgMjc2LjE1NCAzOS40ODczQzI3Ny4xODEgNDAuNDc4NCAyNzcuNjk1IDQxLjg5NDMgMjc3LjY5NSA0My43MzVWNDQuNjkwN0MyNzcuNjk1IDQ1LjQ0NTkgMjc3LjU2NCA0Ni4xNDIgMjc3LjMwMSA0Ni43NzkyQzI3Ny4wNTggNDcuMzg3IDI3Ni42NzggNDcuOTMxOSAyNzYuMTkgNDguMzcyWk0yNjMuOTMyIDQ3LjUyMjVIMjcyLjg5MkMyNzMuNTE0IDQ3LjQ1MTcgMjczLjk2OCA0Ny4xNjg1IDI3NC4yNTQgNDYuNjczQzI3NC41NDEgNDYuMTUzOCAyNzQuNjg0IDQ1LjQ5MzEgMjc0LjY4NCA0NC42OTA3VjQzLjczNUMyNzQuNjg0IDQyLjcyMDMgMjc0LjQ2OSA0Mi4wMTIzIDI3NC4wMzkgNDEuNjExMkMyNzMuNjA5IDQxLjE4NjQgMjcyLjg1NyA0MC45NzQgMjcxLjc4MSA0MC45NzRIMjYzLjkzMlY0Ny41MjI1Wk0yNzYuMDEgNTQuMTQxOEMyNzYuMDEgNTIuODIwMyAyNzUuNzI0IDUxLjg4ODIgMjc1LjE1IDUxLjM0NTRDMjc0LjU3NyA1MC43NzkxIDI3My42MDkgNTAuNDk1OSAyNzIuMjQ3IDUwLjQ5NTlIMjYzLjkzMlY1OS4wMjY2SDI3Mi4yNDdDMjczLjU4NSA1OS4wMjY2IDI3NC41NDEgNTguNzQzNSAyNzUuMTE0IDU4LjE3NzFDMjc1LjcxMiA1Ny42MTA3IDI3Ni4wMSA1Ni42NjY4IDI3Ni4wMSA1NS4zNDUzVjU0LjE0MThaTTI4Ni41NDMgNjJDMjg1LjU0IDYyIDI4NS4wMzggNjEuNTA0NCAyODUuMDM4IDYwLjUxMzNWMzkuNDg3M0MyODUuMDM4IDM4LjQ5NjIgMjg1LjU0IDM4LjAwMDYgMjg2LjU0MyAzOC4wMDA2QzI4Ny41NDcgMzguMDAwNiAyODguMDQ4IDM4LjQ5NjIgMjg4LjA0OCAzOS40ODczVjU5LjAyNjZIMjk3Ljk3NkMyOTguOTggNTkuMDI2NiAyOTkuNDgxIDU5LjUyMjIgMjk5LjQ4MSA2MC41MTMzQzI5OS40ODEgNjEuNTA0NCAyOTguOTggNjIgMjk3Ljk3NiA2MkgyODYuNTQzWk0zMTAuODk3IDYyQzMwOC4xNDkgNjIgMzA2LjExOCA2MS4zNjI4IDMwNC44MDQgNjAuMDg4NUMzMDMuNTEzIDU4Ljc5MDYgMzAyLjg2NyA1Ni43ODQ4IDMwMi44NjcgNTQuMDcxVjQ1Ljg5NDJDMzAyLjg2NyA0My4xODA0IDMwMy41MjUgNDEuMTg2NCAzMDQuODQgMzkuOTEyMUMzMDYuMTU0IDM4LjYxNDIgMzA4LjE3MyAzNy45NzcgMzEwLjg5NyAzOC4wMDA2SDMxNS4xOTZDMzE3Ljk0NCAzOC4wMDA2IDMxOS45NjMgMzguNjQ5NiAzMjEuMjUzIDM5Ljk0NzVDMzIyLjU2OSA0MS4yMjE4IDMyMy4yMjYgNDMuMjE1OCAzMjMuMjI2IDQ1LjkyOTZWNTQuMDcxQzMyMy4yMjYgNTYuNzg0OCAzMjIuNTY5IDU4Ljc5MDYgMzIxLjI1MyA2MC4wODg1QzMxOS45NjMgNjEuMzYyOCAzMTcuOTQ0IDYyIDMxNS4xOTYgNjJIMzEwLjg5N1pNMzE1LjE5NiA1OS4wMjY2QzMxNi41MTIgNTkuMDI2NiAzMTcuNTE0IDU4Ljg3MzIgMzE4LjIwOCA1OC41NjY1QzMxOC44OTcgNTguMjg2MyAzMTkuNDQ5IDU3Ljc1MzQgMzE5Ljc0OCA1Ny4wNzk4QzMyMC4wNiA1Ni4zNzE4IDMyMC4yMTQgNTUuMzY4OSAzMjAuMjE0IDU0LjA3MVY0NS45Mjk2QzMyMC4yMTQgNDQuNjU1MyAzMjAuMDYgNDMuNjY0MiAzMTkuNzQ4IDQyLjk1NjNDMzE5LjQ1OCA0Mi4yNjgyIDMxOC45MDQgNDEuNzIxMiAzMTguMjA4IDQxLjQzNDJDMzE3LjQ5MSA0MS4xMjc0IDMxNi40ODYgNDAuOTc0IDMxNS4xOTYgNDAuOTc0SDMxMC44OTdDMzA5LjYwNiA0MC45NTA0IDMwOC42MDEgNDEuMDkyIDMwNy44ODUgNDEuMzk4OEMzMDcuMTg4IDQxLjY4NTggMzA2LjYzNSA0Mi4yMzI4IDMwNi4zNDUgNDIuOTIwOUMzMDYuMDM0IDQzLjYyODggMzA1Ljg3OSA0NC42MTk5IDMwNS44NzkgNDUuODk0MlY1NC4wNzFDMzA1Ljg3OSA1NS4zNjg5IDMwNi4wMzQgNTYuMzcxOCAzMDYuMzQ1IDU3LjA3OThDMzA2LjY1NCA1Ny43NjQxIDMwNy4xNTYgNTguMjU5NyAzMDcuODQ5IDU4LjU2NjVDMzA4LjU2NSA1OC44NzMyIDMwOS41ODIgNTkuMDI2NiAzMTAuODk3IDU5LjAyNjZIMzE1LjE5NlpNMzM2Ljk3IDYyQzMzNC4yMjMgNjIgMzMyLjE5MiA2MS4zNjI4IDMzMC44NzggNjAuMDg4NUMzMjkuNTg3IDU4Ljc5MDYgMzI4Ljk0MiA1Ni43ODQ4IDMyOC45NDIgNTQuMDcxVjQ1LjkyOTZDMzI4Ljk0MiA0My4yMTU4IDMyOS41ODcgNDEuMjEgMzMwLjg3OCAzOS45MTIxQzMzMi4xOTIgMzguNjE0MiAzMzQuMjExIDM3Ljk3NyAzMzYuOTM1IDM4LjAwMDZIMzQxLjI3MUMzNDMuNTE3IDM4LjAwMDYgMzQ1LjIyNiAzOC40NjA4IDM0Ni4zOTcgMzkuMzgxMUMzNDcuNTkxIDQwLjMwMTUgMzQ4LjI4NCA0MS43NDEgMzQ4LjQ3NSA0My42OTk2QzM0OC41NDcgNDQuMTk1MiAzNDguNDUxIDQ0LjU3MjcgMzQ4LjE4OSA0NC44MzIzQzM0Ny45MjYgNDUuMDkxOSAzNDcuNTQzIDQ1LjIyMTcgMzQ3LjA0MiA0NS4yMjE3QzM0Ni41NjQgNDUuMjIxNyAzNDYuMTkzIDQ1LjEwMzcgMzQ1LjkzMSA0NC44Njc3QzM0NS42OTIgNDQuNjA4MSAzNDUuNTM2IDQ0LjIzMDYgMzQ1LjQ2NSA0My43MzVDMzQ1LjM0NSA0Mi42NzMxIDM0NC45NzUgNDEuOTUzMyAzNDQuMzU0IDQxLjU3NThDMzQzLjczMiA0MS4xNzQ2IDM0Mi43MDUgNDAuOTc0IDM0MS4yNzEgNDAuOTc0SDMzNi45MzVDMzM1LjY0NCA0MC45NTA0IDMzNC42NDEgNDEuMDkyIDMzMy45MjQgNDEuMzk4OEMzMzMuMjA3IDQxLjcwNTUgMzMyLjY5NCA0Mi4yMTI5IDMzMi4zODMgNDIuOTIwOUMzMzIuMDk2IDQzLjYyODggMzMxLjk1MyA0NC42MzE3IDMzMS45NTMgNDUuOTI5NlY1NC4wNzFDMzMxLjk1MyA1NS4zNjg5IDMzMi4xMDggNTYuMzcxOCAzMzIuNDE5IDU3LjA3OThDMzMyLjcyOSA1Ny43NjQxIDMzMy4yMzEgNTguMjU5NyAzMzMuOTI0IDU4LjU2NjVDMzM0LjY0MSA1OC44NzMyIDMzNS42NTYgNTkuMDI2NiAzMzYuOTcgNTkuMDI2NkgzNDEuMjcxQzM0Mi43MDUgNTkuMDI2NiAzNDMuNzMyIDU4LjgzNzggMzQ0LjM1NCA1OC40NjAzQzM0NC45NzUgNTguMDU5MSAzNDUuMzQ1IDU3LjMyNzYgMzQ1LjQ2NSA1Ni4yNjU2QzM0NS41MzYgNTUuNzcwMSAzNDUuNjkyIDU1LjQwNDMgMzQ1LjkzMSA1NS4xNjgzQzM0Ni4xOTMgNTQuOTA4NyAzNDYuNTY0IDU0Ljc3OSAzNDcuMDQyIDU0Ljc3OUMzNDcuNTQzIDU0Ljc3OSAzNDcuOTI2IDU0LjkwODcgMzQ4LjE4OSA1NS4xNjgzQzM0OC40NTEgNTUuNDI3OSAzNDguNTQ3IDU1LjgwNTUgMzQ4LjQ3NSA1Ni4zMDFDMzQ4LjI4NCA1OC4yNTk3IDM0Ny41OTEgNTkuNjk5MiAzNDYuMzk3IDYwLjYxOTVDMzQ1LjIyNiA2MS41Mzk4IDM0My41MTcgNjIgMzQxLjI3MSA2MkgzMzYuOTdaTTM3MC40MiA1OS40MTZDMzcwLjY4MyA1OS43NDY0IDM3MC44MTQgNjAuMDc2NyAzNzAuODE0IDYwLjQwNzFDMzcwLjgxNCA2MC44MzE5IDM3MC42MTEgNjEuMTk3NyAzNzAuMjA1IDYxLjUwNDRDMzY5LjkzNCA2MS43NTc5IDM2OS41NzQgNjEuODk3NSAzNjkuMjAxIDYxLjg5MzhDMzY4Ljc3MSA2MS44OTM4IDM2OC40MDEgNjEuNjkzMiAzNjguMDkgNjEuMjkyMUwzNTkuMzEgNTAuNTY2N0wzNTcuNzY4IDUyLjE1OTZWNjAuNTEzM0MzNTcuNzY4IDYwLjk4NTMgMzU3LjYzNyA2MS4zNTEgMzU3LjM3NCA2MS42MTA2QzM1Ny4xMTEgNjEuODcwMiAzNTYuNzQxIDYyIDM1Ni4yNjMgNjJDMzU1Ljc4NSA2MiAzNTUuNDE1IDYxLjg3MDIgMzU1LjE1MiA2MS42MTA2QzM1NC44ODkgNjEuMzUxIDM1NC43NTggNjAuOTg1MyAzNTQuNzU4IDYwLjUxMzNWMzkuNDg3M0MzNTQuNzU4IDM5LjAxNTQgMzU0Ljg4OSAzOC42NDk2IDM1NS4xNTIgMzguMzlDMzU1LjQxNSAzOC4xMzA0IDM1NS43ODUgMzguMDAwNiAzNTYuMjYzIDM4LjAwMDZDMzU2Ljc0MSAzOC4wMDA2IDM1Ny4xMTEgMzguMTMwNCAzNTcuMzc0IDM4LjM5QzM1Ny42MzcgMzguNjQ5NiAzNTcuNzY4IDM5LjAxNTQgMzU3Ljc2OCAzOS40ODczVjQ3LjkxMTlMMzY2LjkwOCAzOC41NjdDMzY3LjI2NiAzOC4yMTMgMzY3LjYyNCAzOC4wMzYgMzY3Ljk4MyAzOC4wMzZDMzY4LjM0MSAzOC4wMzYgMzY4LjY4OCAzOC4yMDEyIDM2OS4wMjIgMzguNTMxNkMzNjkuMzgxIDM4Ljg4NTYgMzY5LjU2IDM5LjIzOTUgMzY5LjU2IDM5LjU5MzVDMzY5LjU2IDM5Ljk0NzUgMzY5LjM5MyA0MC4yODk3IDM2OS4wNTggNDAuNjJMMzYxLjQ2IDQ4LjQwNzRMMzcwLjQyIDU5LjQxNlpNMzgxLjg1IDYyQzM3OS43OTUgNjIgMzc4LjE5NCA2MS41OTg4IDM3Ny4wNDggNjAuNzk2NUMzNzUuOTI1IDU5Ljk3MDYgMzc1LjIyIDU4LjcwOCAzNzQuOTMzIDU3LjAwOUMzNzQuODg1IDU2LjUxMzQgMzc0Ljk5MyA1Ni4xMzU5IDM3NS4yNTUgNTUuODc2M0MzNzUuNTE4IDU1LjU5MzEgMzc1LjkwMSA1NS40NTE1IDM3Ni40MDIgNTUuNDUxNUMzNzYuODggNTUuNDUxNSAzNzcuMjM5IDU1LjU2OTUgMzc3LjQ3OCA1NS44MDU1QzM3Ny43MTcgNTYuMDE3OSAzNzcuODg0IDU2LjM4MzYgMzc3Ljk3OSA1Ni45MDI4QzM3OC4xNDcgNTcuNzA1MSAzNzguNTE3IDU4LjI1OTcgMzc5LjA5IDU4LjU2NjVDMzc5LjY4OCA1OC44NzMyIDM4MC42MDggNTkuMDI2NiAzODEuODUgNTkuMDI2NkgzODcuMDExQzM4OC4wNjIgNTkuMDI2NiAzODguODYzIDU4LjkwODYgMzg5LjQxMiA1OC42NzI3QzM4OS42ODQgNTguNTY3NiAzODkuOTMyIDU4LjQxMDIgMzkwLjE0MSA1OC4yMDk3QzM5MC4zNSA1OC4wMDkxIDM5MC41MTcgNTcuNzY5NCAzOTAuNjMxIDU3LjUwNDVDMzkwLjg3IDU2LjkzODIgMzkwLjk4OSA1Ni4xNDc2IDM5MC45ODkgNTUuMTMyOUMzOTAuOTg5IDUzLjYyMjYgMzkwLjcwMyA1Mi41ODQzIDM5MC4xMjkgNTIuMDE4QzM4OS41NTYgNTEuNDUxNiAzODguNTE2IDUxLjE2ODQgMzg3LjAxMSA1MS4xNjg0SDM4Mi41NjdDMzgwLjMyMSA1MS4xNjg0IDM3OC42NDggNTAuNjI1NyAzNzcuNTQ5IDQ5LjU0MDJDMzc2LjQ1IDQ4LjQ1NDYgMzc1LjkwMSA0Ni43OTEgMzc1LjkwMSA0NC41NDkxQzM3NS45MDEgNDIuMzMwOSAzNzYuNDM4IDQwLjY5MDggMzc3LjUxMyAzOS42Mjg5QzM3OC42MTMgMzguNTQzNCAzODAuMjg1IDM4LjAwMDYgMzgyLjUzMSAzOC4wMDA2SDM4Ni43OTZDMzkwLjU3MSAzOC4wMDA2IDM5Mi43NDYgMzkuNTU4MSAzOTMuMzE5IDQyLjY3MzFDMzkzLjM5MSA0My4xNjg2IDM5My4yOTUgNDMuNTU4IDM5My4wMzIgNDMuODQxMkMzOTIuNzcgNDQuMTAwOCAzOTIuMzc1IDQ0LjIzMDYgMzkxLjg1IDQ0LjIzMDZDMzkxLjM3MiA0NC4yMzA2IDM5MS4wMTMgNDQuMTEyNiAzOTAuNzc0IDQzLjg3NjZDMzkwLjUzNSA0My42NDA2IDM5MC4zOCA0My4yNzQ4IDM5MC4zMDggNDIuNzc5M0MzOTAuMTE3IDQyLjA5NDkgMzg5Ljc1OSA0MS42MjMgMzg5LjIzMyA0MS4zNjM0QzM4OC43MDggNDEuMTAzOCAzODcuODk1IDQwLjk3NCAzODYuNzk2IDQwLjk3NEgzODIuNTMxQzM4MS41NTEgNDAuOTc0IDM4MC43OTkgNDEuMDgwMiAzODAuMjczIDQxLjI5MjZDMzgwLjAyOCA0MS4zOTQzIDM3OS44MDcgNDEuNTQzOSAzNzkuNjIyIDQxLjczMjVDMzc5LjQzNyA0MS45MjExIDM3OS4yOTMgNDIuMTQ0NyAzNzkuMTk4IDQyLjM4OTlDMzc5LjAwNyA0Mi44ODU1IDM3OC45MTEgNDMuNjA1MiAzNzguOTExIDQ0LjU0OTFDMzc4LjkxMSA0NS41MTY3IDM3OS4wMTkgNDYuMjYgMzc5LjIzNCA0Ni43NzkyQzM3OS40NDkgNDcuMjc0NyAzNzkuODA3IDQ3LjY0MDUgMzgwLjMwOSA0Ny44NzY1QzM4MC44MzUgNDguMDg4OSAzODEuNTg3IDQ4LjE5NTEgMzgyLjU2NyA0OC4xOTUxSDM4Ny4wMTFDMzg5LjM3NyA0OC4xOTUxIDM5MS4xMzMgNDguNzYxNCAzOTIuMjggNDkuODk0MUMzOTMuNDI3IDUxLjAyNjggMzk0IDUyLjc3MzEgMzk0IDU1LjEzMjlDMzk0IDU3LjQ2OTEgMzkzLjQyNyA1OS4yMDM2IDM5Mi4yOCA2MC4zMzYzQzM5MS4xMzMgNjEuNDQ1NCAzODkuMzc3IDYyIDM4Ny4wMTEgNjJIMzgxLjg1WiIgZmlsbD0iI0UyMkYyMiIvPgo8cGF0aCBkPSJNMzYuNzM2IDBMMCAxOS4yNThMMC40NzA5OTMgNjMuNTczTDIyLjg0MSA3Ni4zMzRMMzYuOTcyIDEwMEw1MC42MyA3Ni4zMzRMNzMgNjMuNjlWMTkuNDlMMzYuNzM2IDBaTTI5LjY3IDY0LjI3TDE0LjM2NCA1NS42ODVWMzUuNDk4TDI5LjY3IDQ0LjU0N1Y2NC4yNjhWNjQuMjdaTTIxLjkgMjMuNDMzTDM2LjczNSAxNS43NzZMNTEuMzM1IDIzLjQzM0wzNi43MzUgMzIuMDE4TDIxLjkgMjMuNDMzWk01OC44NzEgNTUuNjgzTDQzLjggNjQuMjdWNDQuNTQ4TDU4Ljg3MSAzNS43MzFWNTUuNjgzWiIgZmlsbD0iI0UyMkYyMiIvPgo8L3N2Zz4K"},9:(M,e,N)=>{N.d(e,{A:()=>t});const t={navigation:"kiMVxg7uvmObzH9y5Nf7",subtitle:"lh6Gp5uMZoFjdsD0piCQ",active:"IHgUS1orY8DkWO_fbRhQ"}},299:(M,e,N)=>{N.d(e,{A:()=>t});const t={wrapper:"Ub1Qwzm7eiO9i1pfS4JA",header:"MHfJiF9ZtWnpmRSznlsA",container:"bDqx83XSEFfGnp0RCn6r",logo:"s2jFJ3kbxHqVjcXOAa_e",headerNavigation:"O0TgIPrk1w9xxx2FS7rI"}},613:(M,e,N)=>{N.d(e,{A:()=>t});const t={tag:"BBrTfwaRpiXTsfXQotgf",help:"eiQPya4NGNSbJXhlQrFG",default:"Qrwn2ZFHSg4CzQ5B2Hju",info:"dK0gZ8H42AMHDmiT90gt",warning:"Iq2GVHFXIvyadiMTJhPA",error:"IAqnveipCAc7HoEDOSlg",label:"g0nlWBX7OmQcFqR6UoAB",icon:"wLv8qHa44_fOcOtj0hCA"}},609:M=>{M.exports=window.React},455:M=>{M.exports=window.wp.apiFetch},427:M=>{M.exports=window.wp.components},87:M=>{M.exports=window.wp.element},723:M=>{M.exports=window.wp.i18n},129:(M,e,N)=>{N.d(e,{A:()=>n});var t=N(609),D=N(87),z=N(818),j=N(9),c=N(723);const n=({})=>{const{finder:M,preferences:e}=(0,z.h)(),{setSelectedBlock:N}=e,{foundBlocks:n,withFilters:g}=M,[l,u]=(0,D.useState)(null),o=g(n);return(0,t.createElement)("nav",{className:j.A.navigation},(0,t.createElement)("ul",null,o.map((M=>(0,t.createElement)("li",{key:M.name,className:l===M.name?j.A.active:"",onClick:()=>{return e=M.name,N(e),void u(e);var e}},M.name," ",(0,t.createElement)("span",{className:j.A.subtitle},(0,c.__)("Found in","find-my-blocks")," ",M.posts.length," ",M.posts.length>1?(0,c.__)("locations","find-my-blocks"):(0,c.__)("location","find-my-blocks")))))))}},136:(M,e,N)=>{N.d(e,{A:()=>g});var t=N(609),D=N(427),z=N(299),j=N(723),c=N(46),n=N(818);const g=({children:M})=>{const{finder:e}=(0,n.h)(),{isLoading:N,reset:g,startSearch:l,foundBlocks:u}=e;return(0,t.createElement)("div",{className:z.A.wrapper},(0,t.createElement)("div",{className:z.A.header},(0,t.createElement)("div",{className:z.A.container},(0,t.createElement)("img",{className:z.A.logo,src:c.A,alt:"Find My Blocks Logo",onClick:()=>u.length>0&&g()}),(0,t.createElement)("div",{className:z.A.headerNavigation},(0,t.createElement)(D.Button,{onClick:()=>u.length>0?g():l(),icon:u.length>0?"update-alt":null,isPrimary:!0,disabled:N},u.length>0?(0,j.__)("Re-scan","find-my-blocks"):(0,j.__)("Search","find-my-blocks")),(0,t.createElement)(D.DropdownMenu,{icon:"menu",label:"Select a direction"},(({onClose:M})=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(D.MenuGroup,{label:(0,j.__)("Quick Links","find-my-blocks")},(0,t.createElement)(D.MenuItem,{href:fmbGlobal.admin_url+"/edit.php?post_type=wp_block"},(0,j.__)("Reusable Patterns","find-my-blocks"))),(0,t.createElement)(D.MenuGroup,{label:(0,j.__)("Support","find-my-blocks")},(0,t.createElement)(D.MenuItem,{icon:"star-filled",href:"https://wordpress.org/support/plugin/find-my-blocks/reviews/",target:"_blank"},(0,j.__)("Review on wp.org","find-my-blocks")),(0,t.createElement)(D.MenuItem,{icon:"sos",href:"https://wordpress.org/support/plugin/find-my-blocks/",target:"_blank"},(0,j.__)("Support forum","find-my-blocks")),(0,t.createElement)(D.MenuItem,{icon:"external",href:"https://findmyblocks.com/?utm_source=wordpress_site&utm_medium=navigation&utm_campaign=find_my_blocks_active_install",target:"_blank"},"findmyblocks.com")))))))),M)}},774:(M,e,N)=>{N.d(e,{p:()=>n});var t=N(609),D=N(427),z=N(723),j=N(78);const c=({post:M,blockName:e})=>{const N=function(M){const N=[];return M.hasConditionalBlocks&&N.push({label:(0,z.__)("Conditional","find-my-blocks"),help:(0,t.createElement)("span",null,(0,z.__)("via","find-my-blocks")," ",(0,t.createElement)(D.ExternalLink,{target:"_blank",href:"https://conditionalblocks.com/"},"Conditional Blocks")),icon:"randomize",variation:"info"}),M.isSyncedPattern&&N.push({label:(0,z.__)("Synced Pattern","find-my-blocks"),icon:"networking",variation:"warning"}),M.count>1&&N.push({label:`${M.count}x `+e,icon:"list-view",variation:"info"}),M.isNested&&N.push({label:(0,z.__)("Nested in: ","find-my-blocks")+M.nestedBlockType,icon:"align-center",variation:"info"}),N}(M);return(0,t.createElement)(D.Card,{size:"small",className:"fmb-card"},(0,t.createElement)(D.CardHeader,{isBorderless:!0},(0,t.createElement)("div",null,(0,t.createElement)("span",{className:"fmb-card-title"},M.title),(0,t.createElement)("span",{className:"fmb-card-meta"},(0,t.createElement)("code",null,M?.postType)," ",M?.isThirdPartyTemplate&&(0,t.createElement)("code",null,M?.templateProvider)," ")),(0,t.createElement)("div",null,(0,t.createElement)(D.Button,{target:"_blank",isTertiary:!0,href:M.post_url,size:"small"},(0,z.__)("Preview","find-my-blocks")),(0,t.createElement)(D.Button,{target:"_blank",isTertiary:!0,href:M.edit_url,size:"small"},(0,z.__)("Edit","find-my-blocks")))),N.length>0&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(D.CardDivider,null),(0,t.createElement)(D.CardBody,null,N.map((M=>(0,t.createElement)(j.v,{key:M.label,...M}))))))};function n({posts:M,blockName:e=""}){return!M||M.length<1?(0,t.createElement)("div",null,(0,t.createElement)("h2",null,(0,z.__)("No locations found","find-my-blocks")),(0,z.__)("Please select a block from the menu, or check the filters.","find-my-blocks")):(0,t.createElement)("div",{className:"fmb-card-grid"},M.map(((M,N)=>(0,t.createElement)(c,{key:e+M?.id,post:M,blockName:e}))))}},78:(M,e,N)=>{N.d(e,{v:()=>j});var t=N(609),D=N(613),z=N(427);const j=({variation:M="default",icon:e,label:N,help:j})=>{const c=((...M)=>M.filter(Boolean).join(" "))(D.A.tag,D.A[M]);return(0,t.createElement)("div",{className:c},e&&(0,t.createElement)(z.Icon,{icon:e,className:D.A.Icon}),(0,t.createElement)("div",{className:D.A.label},N),j&&(0,t.createElement)("div",{className:D.A.help}," ",j))}},818:(M,e,N)=>{N.d(e,{h:()=>g,z:()=>n});var t=N(609),D=N(87),z=N(352),j=N(216);const c=(0,D.createContext)(),n=({children:M})=>{var e;const N=(0,z.g)(),D={posts_per_page:N.postsPerRun},n={preferences:N,finder:(0,j.g)({searchArgs:D,cachedFoundBlocks:null!==(e=N?.cachedFoundBlocks)&&void 0!==e?e:[],setCachedFoundBlocks:N.setCachedFoundBlocks})};return(0,t.createElement)(c.Provider,{value:n},M)},g=()=>{const M=(0,D.useContext)(c);if(!M)throw new Error("useFindMyBlocks must be used within an FindMyBlocksProvider");return M}},216:(M,e,N)=>{N.d(e,{g:()=>j});var t=N(87),D=N(723),z=N(455);const j=({searchArgs:M={},cachedFoundBlocks:e=[],setCachedFoundBlocks:N})=>{const j={name:!1,blockProvider:!1,hasConditionalBlocks:!1},[n,g]=(0,t.useState)([]),[l,u]=(0,t.useState)(j),[o,r]=(0,t.useState)(!1),[a,i]=(0,t.useState)(null),[I,s]=(0,t.useState)({currentPage:0,totalPages:0,percentage:0,totalPosts:0,totalBlocks:0,totalScannedPosts:0}),[A,y]=(0,t.useState)("asc"),T=(0,t.useRef)(null),L=()=>{T.current&&T.current.abort(),g([]),N([]),r(!1),i(null),s({currentPage:0,totalPages:0,percentage:0,totalPosts:0,totalBlocks:0,totalScannedPosts:0}),y("asc")};let E=!0;(0,t.useEffect)((()=>{E&&e&&e.length>0&&(E=!1,g(O(A,e)))}),[e]);const O=(M,e)=>{const N=[...e].sort(((e,N)=>"asc"===M?e.name.localeCompare(N.name):N.name.localeCompare(e.name)));return N.forEach((e=>{e.posts&&Array.isArray(e.posts)&&e.posts.sort(((e,N)=>"asc"===M?e.title.localeCompare(N.title):N.title.localeCompare(e.title)))})),N},k=M=>(l.name&&(M=M.filter((M=>M.name.toLowerCase().includes(l.name.toLowerCase())))),l.blockProvider&&(M=M.filter((M=>M.name.split("/")[0].toLowerCase().includes(l.blockProvider.toLowerCase())))),l.hasConditionalBlocks&&(M=M.map((M=>{const e=M.posts.filter((M=>M.hasConditionalBlocks));return e.length>0?{...M,posts:e}:null})).filter((M=>null!==M))),M);return{reset:L,foundBlocks:n,withFilters:k,setFilters:u,isLoading:o,error:a,startSearch:async()=>{L(),r(!0);const e=new AbortController;T.current=e;let t=1,D=0,n=0,l=0,o=[],a=0,I="in_process";try{for(;(t<=D||1===t)&&!T.current.signal.aborted&&"in_process"===I;){const N=setTimeout((()=>e.abort()),15e3),j=new URLSearchParams({...M,paged:t}).toString();try{const M=await z({path:`find-my-blocks/v1/search?${j}`,signal:e.signal});if(clearTimeout(N),await new Promise((M=>setTimeout(M,1e3))),!M?.data)throw new Error("No data returned from the server.");const{blocks:c,scanned_posts:g,total_posts:u,total_pages:r}=M.data;if(1===t&&(D=r,n=u),a+=c.reduce(((M,e)=>M+e.posts.length),0),l+=g,s({currentPage:t,totalPages:D,percentage:Math.round(t/D*100),totalBlocks:a,totalPosts:n,totalScannedPosts:l}),o=o.concat(c),t++,t>r){I="completed";break}}catch(M){clearTimeout(N),"AbortError"===M.name?(console.error("Search aborted or timeout reached - Please try lower the amount of posts to search per request.",M),i(new Error("Abort/timeout error. Try choosing a lower amount of posts to search per request."))):(console.error("Error fetching blocks:",M),i(M)),I="failed";break}}}finally{if(T.current=null,"completed"===I&&o.length>0){const M=c(o),e=O(A,M);u(j),g(e),N(e)}else i(new Error("Search completed with no results or an error occurred.")),L();await new Promise((M=>setTimeout(M,1e3))),r(!1)}},abortSearch:()=>{T.current&&(T.current.abort(),console.log("Search aborted by user."),i(new Error((0,D.__)("Search aborted by user","find-my-blocks"))))},progress:I,postsWithBlock:M=>{const e=k(n).find((e=>e.name===M));return e?e.posts:[]}}},c=M=>{const e=new Map;return M.forEach((M=>{if(e.has(M.name)){const N=e.get(M.name);M.posts.forEach((M=>{const e=N.posts.findIndex((e=>e.id===M.id));-1!==e?N.posts[e].count+=M.count:N.posts.push(M)}))}else e.set(M.name,{...M,posts:[...M.posts]})})),Array.from(e.values())}},864:(M,e,N)=>{N.d(e,{M:()=>z});var t=N(87);const D=new Map,z=(M,e)=>{const[N,z]=(0,t.useState)(e),[j,c]=(0,t.useState)(!0);return(0,t.useEffect)((()=>{if(j){c(!1);const N=JSON.parse(localStorage.getItem(M));z(null!=N?N:e)}}),[j,M,e]),(0,t.useEffect)((()=>{const e=M=>{z(M)};return((M,e)=>{D.has(M)||D.set(M,[]),D.get(M).push(e)})(M,e),()=>{((M,e)=>{const N=D.get(M)||[],t=N.indexOf(e);t>-1&&N.splice(t,1)})(M,e)}}),[M]),[N,(0,t.useCallback)((e=>{localStorage.setItem(M,JSON.stringify(e)),((M,e)=>{(D.get(M)||[]).forEach((M=>M(e)))})(M,e)}),[M])]}},352:(M,e,N)=>{N.d(e,{g:()=>D});var t=N(864);const D=()=>{const[M,e]=(0,t.M)("fmb_selected_block",""),[N,D]=(0,t.M)("fmb_posts_per_run",10),[z,j]=(0,t.M)("fmb_found_blocks",!1),[c,n]=(0,t.M)("fmb_selected_provider",!1),[g,l]=(0,t.M)("fmb_version_cache",!1),[u,o]=(0,t.M)("fmb_conditional_blocks",!1);return{cachedFoundBlocks:fmbGlobal.version===g&&z,setCachedFoundBlocks:M=>{l(fmbGlobal.version),n(!1),e(!1),o(!1),j(M)},selectedBlock:M,setSelectedBlock:e,selectedProvider:c,setSelectedProvider:n,postsPerRun:parseInt(N),setPostsPerRun:D,conditionalBlocks:u,setConditionalBlocks:o}}},948:(M,e,N)=>{N.d(e,{A:()=>i});var t=N(609),D=N(87),z=N(723),j=N(774),c=N(129),n=N(818),g=N(431),l=N(427);const u=({error:M})=>M?(0,t.createElement)(l.Notice,{status:"error"},M.message):null;function o({className:M}){const{finder:e,preferences:N}=(0,n.h)(),[z,j]=(0,D.useState)("");return(0,t.createElement)(l.SearchControl,{value:z,onChange:M=>{j(M),e.setFilters((e=>({...e,name:!!M.length&&M})))}})}function r(){var M;const{finder:e,preferences:N}=(0,n.h)(),[z,j]=(0,D.useState)(null!==(M=N?.selectedProvider)&&void 0!==M&&M),c=(0,g.g)(e.foundBlocks);return(0,t.createElement)(l.ComboboxControl,{allowReset:!0,label:"Block Provider",help:"Core or third-party block providers",value:z,onChange:M=>{j(M),N?.setSelectedProvider(M),e.setFilters((e=>({...e,blockProvider:null!=M&&M})))},options:c,onFilterValueChange:M=>j(c.filter((e=>e.label.toLowerCase().startsWith(M.toLowerCase()))))})}const a=()=>{const{finder:M,preferences:e}=(0,n.h)(),[N,j]=(0,D.useState)(!!e?.conditionalBlocks);return(0,t.createElement)(l.CheckboxControl,{label:"Conditional Blocks",help:(0,z.__)("Only blocks with visibility changed by the Conditional Blocks plugin","find-my-blocks"),checked:N,onChange:N=>{j(!!N),e?.setConditionalBlocks(!!N),M.setFilters((M=>({...M,hasConditionalBlocks:!!N})))}})},i=function(){const{finder:M,preferences:e}=(0,n.h)(),{foundBlocks:N,startSearch:g,abortSearch:i,progress:I,isLoading:s,error:A,postsWithBlock:y}=M,{selectedBlock:T,postsPerRun:L,setPostsPerRun:E}=e;if(s)return(0,t.createElement)("div",{className:"fmb-bento-container"},(0,t.createElement)("div",{className:"fmb-bento-grid"},(0,t.createElement)("div",{className:"fmb-box fmb-box-full"},(0,t.createElement)("h2",null,(0,z.__)("Searching for your blocks...","find-my-blocks")),(0,t.createElement)("p",null,(0,z.__)("Progress:","find-my-blocks")," ",I.percentage,"%"),(0,t.createElement)("p",null,(0,z.__)("Scanning batch","find-my-blocks")," ",I.currentPage," ",(0,z.__)("out of","find-my-blocks")," ",I.totalPages),(0,t.createElement)("p",null,(0,z.__)("Total block instances detected:","find-my-blocks")," ",I.totalBlocks," "+(0,z.__)("in","find-my-blocks")," ",I.totalScannedPosts," "+(0,z.__)("locations.","find-my-blocks")),(0,t.createElement)(l.Button,{onClick:()=>i(),isDestructive:!0,isPrimary:!0,disabled:!s},(0,z.__)("Abort Search","find-my-blocks")))));const O=y(T);var k;return!A&&N.length>0?(0,t.createElement)(D.Fragment,null,(0,t.createElement)("div",{className:"fmb-container"},(0,t.createElement)("div",{className:"fmb-grid-results-page"},(0,t.createElement)("div",{className:"fmb-box"},(0,t.createElement)("h2",null,(0,z.__)("Filters","find-my-blocks")),(0,t.createElement)("div",{className:"fmb-search-filters"},(0,t.createElement)(o,null),(0,t.createElement)(r,null),fmbGlobal?.conditional_blocks_installed&&(0,t.createElement)(a,null)),(0,t.createElement)("h2",null,(0,z.__)("Found Blocks","find-my-blocks")),(0,t.createElement)("p",null,(0,z.__)("The below blocks have been detected during the scan.","find-my-blocks")),(0,t.createElement)("nav",{className:"fmb-side-navigation"},(0,t.createElement)(c.A,null))),(0,t.createElement)("div",null,T&&(0,t.createElement)(D.Fragment,null,(0,t.createElement)("h2",null,(0,t.createElement)("span",{className:"fmb-badge"},T)),O?.length>0&&(0,t.createElement)("p",null,(0,z.__)("Instances of the","find-my-blocks")," ",(0,t.createElement)("b",null,T)," ",(0,z.__)("block has been found in these","find-my-blocks")," ",null!==(k=O.length)&&void 0!==k?k:0," ",(0,z.__)("locations.","find-my-blocks"))),(0,t.createElement)(j.p,{blockName:T,posts:O}))))):(0,t.createElement)(D.Fragment,null,(0,t.createElement)(u,{error:A}),(0,t.createElement)("div",{className:"fmb-bento-container"},(0,t.createElement)("div",{className:"fmb-bento-grid"},(0,t.createElement)("div",{className:"fmb-box fmb-box-full"},(0,t.createElement)("h2",null,(0,z.__)("Get Started","find-my-blocks")),(0,t.createElement)("p",null,(0,z.__)("Find My Blocks will search through all your templates, posts and pages to find the WordPress blocks.","find-my-blocks")),(0,t.createElement)(l.RadioControl,{className:"fmb-performance-control",label:"Performance",help:(0,z.__)("Warning! Choose the performance level that matches your server. Fetching too may posts at once may temporarily crash your site.","find-my-blocks"),onChange:M=>{E(M)},options:[{label:(0,z.__)("Low (Recommended for most sites, 10 post per run)","find-my-blocks"),value:10},{label:(0,z.__)("Standard (100 posts per run)","find-my-blocks"),value:100},{label:(0,z.__)("Ultra (500 posts per run)","find-my-blocks"),value:500}],selected:null!=L?L:10}),(0,t.createElement)(l.Button,{onClick:()=>g(),isPrimary:!0,disabled:s},(0,z.__)("Start Search","find-my-blocks"))),(0,t.createElement)("div",{className:"fmb-box"},(0,t.createElement)("h2",null,(0,z.__)("Block Tools & Resources","find-my-blocks")),(0,t.createElement)("p",null,(0,z.__)("Create faster & better WordPress sites with block tutorials from experts.","find-my-blocks")),(0,t.createElement)("ul",null,(0,t.createElement)("li",null,(0,t.createElement)(l.ExternalLink,{href:"https://findmyblocks.com?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"findmyblocks.com")),(0,t.createElement)("li",null,(0,t.createElement)(l.ExternalLink,{href:"https://conditionalblocks.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"Conditional Blocks plugin")),(0,t.createElement)("li",null,(0,t.createElement)(l.ExternalLink,{href:"https://morganhvidt.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install",target:"_blank"},"@MorganHvidt"),(0,z.__)("(Developer) ","find-my-blocks")))),(0,t.createElement)("div",{className:"fmb-box"},(0,t.createElement)("h2",null,(0,z.__)("Support Development","find-my-blocks")),(0,t.createElement)("p",null,(0,z.__)("I'm building Find My Blocks in my free time. If you find it useful, please consider donating, or contributing to the project.","find-my-blocks")," ",(0,t.createElement)("em",null,"- Morgan Hvidt")),(0,t.createElement)("div",{style:{marginTop:"30px"}},(0,t.createElement)(l.Button,{isSecondary:!0,target:"_blank",href:"https://github.com/morganhvidt/find-my-blocks/"},(0,z.__)("Contribute on Github","find-my-blocks"))," ",(0,t.createElement)(l.Button,{style:{marginLeft:"10px"},isSecondary:!0,target:"_blank",href:"https://morganhvidt.com/donate/"},(0,z.__)("Donate to development","find-my-blocks")))))))}},431:(M,e,N)=>{function t(M){return M.reduce(((M,e)=>{var N;const t=null!==(N=e.name.split("/")[0])&&void 0!==N&&N;return M.some((M=>M.value===t))||M.push({value:t,label:t}),M}),[])}N.d(e,{g:()=>t})}},e={};function N(t){var D=e[t];if(void 0!==D)return D.exports;var z=e[t]={exports:{}};return M[t](z,z.exports,N),z.exports}N.n=M=>{var e=M&&M.__esModule?()=>M.default:()=>M;return N.d(e,{a:e}),e},N.d=(M,e)=>{for(var t in e)N.o(e,t)&&!N.o(M,t)&&Object.defineProperty(M,t,{enumerable:!0,get:e[t]})},N.o=(M,e)=>Object.prototype.hasOwnProperty.call(M,e),(()=>{var M=N(609),e=N(87),t=(N(723),N(948)),D=N(818),z=N(136);function j(){return(0,M.createElement)(e.Fragment,null,(0,M.createElement)(D.z,null,(0,M.createElement)(z.A,null),(0,M.createElement)(t.A,null)))}document.addEventListener("DOMContentLoaded",(()=>{const N=document.getElementById("find-my-blocks-app");N&&(e.createRoot?(0,e.createRoot)(N).render((0,M.createElement)(j,null)):(0,e.render)((0,M.createElement)(j,null),N))}))})()})(); 2 2 //# sourceMappingURL=find-my-blocks.js.map -
find-my-blocks/trunk/assets/js/find-my-blocks.js.map
r3078392 r3078539 1 {"version":3,"file":"find-my-blocks.js","mappings":"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","sources":["webpack://find-my-blocks/./src/assets/images/find-my-blocks-logo-full.svg","webpack://find-my-blocks/./src/assets/js/components/BlockNavigation/BlockNavigation.module.css?5aa6","webpack://find-my-blocks/./src/assets/js/components/PageHeader/PageHeader.module.css?b4c4","webpack://find-my-blocks/./src/assets/js/components/Tag/Tag.module.css?f54f","webpack://find-my-blocks/external window \"React\"","webpack://find-my-blocks/external window [\"wp\",\"apiFetch\"]","webpack://find-my-blocks/external window [\"wp\",\"components\"]","webpack://find-my-blocks/external window [\"wp\",\"element\"]","webpack://find-my-blocks/external window [\"wp\",\"i18n\"]","webpack://find-my-blocks/./src/assets/js/components/BlockNavigation/index.js","webpack://find-my-blocks/./src/assets/js/components/PageHeader/PageHeader.js","webpack://find-my-blocks/./src/assets/js/components/PostCards/PostCards.js","webpack://find-my-blocks/./src/assets/js/components/Tag/Tag.js","webpack://find-my-blocks/./src/assets/js/context/FindMyBlocksContext.js","webpack://find-my-blocks/./src/assets/js/hooks/useFinder.js","webpack://find-my-blocks/./src/assets/js/hooks/useLocalStorage.js","webpack://find-my-blocks/./src/assets/js/hooks/usePreferences.js","webpack://find-my-blocks/./src/assets/js/pages/SearchPage.js","webpack://find-my-blocks/./src/assets/js/utils/functions.js","webpack://find-my-blocks/webpack/bootstrap","webpack://find-my-blocks/webpack/runtime/compat get default export","webpack://find-my-blocks/webpack/runtime/define property getters","webpack://find-my-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://find-my-blocks/./src/assets/js/find-my-blocks.js"],"sourcesContent":["var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgFindMyBlocksLogoFull = function SvgFindMyBlocksLogoFull(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 394,\n height: 100,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E22F22\",\n d: \"M104.507 62q-.718 0-1.113-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h13.19q.716 0 1.111.39.394.39.394 1.097 0 .708-.394 1.098-.395.39-1.111.389h-11.684v7.433h7.204q.716 0 1.111.39.394.39.394 1.097 0 .708-.394 1.097-.395.39-1.111.39h-7.204v9.132q0 .708-.395 1.098-.393.39-1.111.389zm19.914 0q-.789 0-1.147-.354-.359-.354-.359-1.133v-20.99q0-.78.359-1.133.358-.354 1.147-.354.788 0 1.146.354.359.354.359 1.133v20.99q0 .78-.359 1.133-.358.354-1.146.354m27.131-24q.717 0 1.111.39t.394 1.097v21.026q0 .708-.394 1.098t-1.111.389q-.43 0-.789-.212a2.7 2.7 0 0 1-.717-.673l-13.655-17.38v16.778q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39.43 0 .753.213.358.213.752.673l13.655 17.38V39.487q0-.708.395-1.097.394-.39 1.111-.39m10.459 24q-.717 0-1.111-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h8.638q4.695 0 6.881 2.195 2.222 2.16 2.222 6.797v6.017q0 4.637-2.222 6.832Q175.344 62 170.649 62zm8.638-2.973q2.329 0 3.62-.567a3.52 3.52 0 0 0 1.899-1.84q.574-1.31.574-3.61v-6.018q0-2.301-.574-3.576a3.5 3.5 0 0 0-1.899-1.876q-1.291-.566-3.62-.566h-7.133v18.053zM218.932 38q1.218 0 1.218 1.486v21.026q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V44.124l-6.595 9.593q-.359.495-.788.743a2.3 2.3 0 0 1-1.04.213q-.43 0-.788-.213a3.6 3.6 0 0 1-.681-.743l-6.631-9.628v16.424q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39 1.004.001 1.649.956l8.171 12.142 8.172-12.142q.609-.955 1.828-.955m25.372.354q.788.495.788 1.168 0 .424-.322.85l-8.53 12.92v7.22q0 .708-.395 1.098-.394.39-1.111.389-.717 0-1.111-.39-.394-.389-.394-1.097v-7.22l-8.207-12.92q-.288-.496-.287-.886 0-.742.753-1.203.501-.283.896-.283.68 0 1.182.743l7.168 11.362 7.527-11.362q.43-.708 1.147-.708.43 0 .896.319m31.886 10.017q2.83 1.629 2.831 5.77v1.203q0 3.257-1.756 4.956-1.72 1.7-5.018 1.699h-9.82q-.717 0-1.111-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h9.354q2.832 0 4.373 1.487 1.54 1.486 1.541 4.248v.956q0 1.133-.394 2.088a4.3 4.3 0 0 1-1.111 1.593m-12.258-.85h8.96q.933-.105 1.362-.849.43-.78.43-1.982v-.956q0-1.522-.645-2.124-.644-.637-2.258-.637h-7.849zm12.078 6.62q0-1.983-.86-2.797-.86-.85-2.903-.85h-8.315v8.532h8.315q2.007 0 2.867-.85.897-.849.896-2.832zM286.543 62q-1.505 0-1.505-1.487V39.487q0-1.486 1.505-1.486t1.505 1.486v19.54h9.928q1.505 0 1.505 1.486 0 1.487-1.505 1.487zm24.354 0q-4.122 0-6.093-1.911-1.937-1.947-1.937-6.018v-8.177q0-4.071 1.973-5.982 1.971-1.947 6.057-1.911h4.299q4.122 0 6.057 1.947 1.974 1.911 1.973 5.982v8.141q0 4.071-1.973 6.018Q319.318 62 315.196 62zm4.299-2.973q1.972 0 3.012-.46a2.86 2.86 0 0 0 1.54-1.487q.467-1.062.466-3.009V45.93q.001-1.912-.466-2.974a2.85 2.85 0 0 0-1.54-1.522q-1.076-.46-3.012-.46h-4.299q-1.937-.036-3.012.425a2.84 2.84 0 0 0-1.54 1.522q-.466 1.062-.466 2.973v8.177q0 1.946.466 3.009a2.87 2.87 0 0 0 1.504 1.486q1.075.46 3.048.46zM336.97 62q-4.12 0-6.092-1.911-1.936-1.947-1.936-6.018V45.93q0-4.071 1.936-6.018 1.971-1.947 6.057-1.911h4.336q3.37 0 5.126 1.38 1.791 1.38 2.078 4.319.107.743-.286 1.132-.395.39-1.147.39-.717 0-1.111-.354-.359-.39-.466-1.133-.18-1.593-1.111-2.16-.933-.6-3.083-.601h-4.336q-1.936-.036-3.011.425a2.85 2.85 0 0 0-1.541 1.522q-.43 1.061-.43 3.009v8.141q0 1.946.466 3.009.465 1.026 1.505 1.486 1.075.46 3.046.46h4.301q2.15 0 3.083-.566.931-.6 1.111-2.194.107-.744.466-1.098.394-.39 1.111-.389.752 0 1.147.39.393.389.286 1.132-.287 2.938-2.078 4.319Q344.64 62 341.271 62zm33.45-2.584q.394.495.394.991 0 .637-.609 1.097a1.45 1.45 0 0 1-1.004.39q-.645 0-1.111-.602l-8.78-10.725-1.542 1.593v8.353q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39t1.111.39q.394.39.394 1.097v8.425l9.14-9.345q.537-.531 1.075-.531t1.039.496q.538.531.538 1.062 0 .53-.502 1.026l-7.598 7.787zM381.85 62q-3.083 0-4.802-1.203-1.684-1.24-2.115-3.788-.072-.743.322-1.133.395-.424 1.147-.424.717 0 1.076.354.358.318.501 1.097.252 1.204 1.111 1.663.897.46 2.76.46h5.161q1.577 0 2.401-.353a2.164 2.164 0 0 0 1.219-1.168q.358-.85.358-2.372 0-2.266-.86-3.115t-3.118-.85h-4.444q-3.37 0-5.018-1.628t-1.648-4.99q0-3.33 1.612-4.921Q379.163 38 382.531 38h4.265q5.663 0 6.523 4.672.108.744-.287 1.168-.394.39-1.182.39-.717 0-1.076-.354-.358-.354-.466-1.098-.286-1.026-1.075-1.416t-2.437-.389h-4.265q-1.47 0-2.258.319a1.97 1.97 0 0 0-1.075 1.097q-.287.743-.287 2.16 0 1.45.323 2.23.322.742 1.075 1.096.789.32 2.258.32h4.444q3.549 0 5.269 1.698 1.72 1.7 1.72 5.239 0 3.504-1.72 5.203Q390.56 62 387.011 62zM36.736 0 0 19.258l.471 44.315 22.37 12.761L36.972 100 50.63 76.334 73 63.69v-44.2zM29.67 64.27l-15.306-8.585V35.498l15.306 9.049V64.27M21.9 23.433l14.835-7.657 14.6 7.657-14.6 8.585zm36.971 32.25L43.8 64.27V44.548l15.071-8.817z\"\n })));\n};\nexport { SvgFindMyBlocksLogoFull as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzk0IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDM5NCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMDQuNTA3IDYyQzEwNC4wMjkgNjIgMTAzLjY1NyA2MS44NzAyIDEwMy4zOTQgNjEuNjEwNkMxMDMuMTMxIDYxLjM1MSAxMDMgNjAuOTg1MyAxMDMgNjAuNTEzM1YzOS40ODczQzEwMyAzOS4wMTU0IDEwMy4xMzEgMzguNjQ5NiAxMDMuMzk0IDM4LjM5QzEwMy42NTcgMzguMTMwNCAxMDQuMDI3IDM4LjAwMDYgMTA0LjUwNSAzOC4wMDA2SDExNy42OTVDMTE4LjE3MiAzOC4wMDA2IDExOC41NDMgMzguMTMwNCAxMTguODA2IDM4LjM5QzExOS4wNjggMzguNjQ5NiAxMTkuMiAzOS4wMTU0IDExOS4yIDM5LjQ4NzNDMTE5LjIgMzkuOTU5MyAxMTkuMDY4IDQwLjMyNTEgMTE4LjgwNiA0MC41ODQ2QzExOC41NDMgNDAuODQ0MiAxMTguMTcyIDQwLjk3NCAxMTcuNjk1IDQwLjk3NEgxMDYuMDExVjQ4LjQwNzRIMTEzLjIxNUMxMTMuNjkyIDQ4LjQwNzQgMTE0LjA2MyA0OC41MzcyIDExNC4zMjYgNDguNzk2OEMxMTQuNTg4IDQ5LjA1NjQgMTE0LjcyIDQ5LjQyMjIgMTE0LjcyIDQ5Ljg5NDFDMTE0LjcyIDUwLjM2NjEgMTE0LjU4OCA1MC43MzE5IDExNC4zMjYgNTAuOTkxNEMxMTQuMDYzIDUxLjI1MSAxMTMuNjkyIDUxLjM4MDggMTEzLjIxNSA1MS4zODA4SDEwNi4wMTFWNjAuNTEzM0MxMDYuMDExIDYwLjk4NTMgMTA1Ljg3OSA2MS4zNTEgMTA1LjYxNiA2MS42MTA2QzEwNS4zNTQgNjEuODcwMiAxMDQuOTgzIDYyIDEwNC41MDUgNjJIMTA0LjUwN1pNMTI0LjQyMSA2MkMxMjMuODk1IDYyIDEyMy41MTMgNjEuODgyIDEyMy4yNzQgNjEuNjQ2QzEyMy4wMzUgNjEuNDEgMTIyLjkxNSA2MS4wMzI1IDEyMi45MTUgNjAuNTEzM1YzOS41MjI3QzEyMi45MTUgMzkuMDAzNiAxMjMuMDM1IDM4LjYyNiAxMjMuMjc0IDM4LjM5QzEyMy41MTMgMzguMTU0IDEyMy44OTUgMzguMDM2IDEyNC40MjEgMzguMDM2QzEyNC45NDYgMzguMDM2IDEyNS4zMjkgMzguMTU0IDEyNS41NjcgMzguMzlDMTI1LjgwNiAzOC42MjYgMTI1LjkyNiAzOS4wMDM2IDEyNS45MjYgMzkuNTIyN1Y2MC41MTMzQzEyNS45MjYgNjEuMDMyNSAxMjUuODA2IDYxLjQxIDEyNS41NjcgNjEuNjQ2QzEyNS4zMjkgNjEuODgyIDEyNC45NDYgNjIgMTI0LjQyMSA2MlpNMTUxLjU1MiAzOC4wMDA2QzE1Mi4wMyAzOC4wMDA2IDE1Mi40IDM4LjEzMDQgMTUyLjY2MyAzOC4zOUMxNTIuOTI2IDM4LjY0OTYgMTUzLjA1NyAzOS4wMTU0IDE1My4wNTcgMzkuNDg3M1Y2MC41MTMzQzE1My4wNTcgNjAuOTg1MyAxNTIuOTI2IDYxLjM1MSAxNTIuNjYzIDYxLjYxMDZDMTUyLjQgNjEuODcwMiAxNTIuMDMgNjIgMTUxLjU1MiA2MkMxNTEuMjY1IDYyIDE1MS4wMDIgNjEuOTI5MiAxNTAuNzYzIDYxLjc4NzZDMTUwLjQ4NCA2MS42MDkxIDE1MC4yNDEgNjEuMzgxMSAxNTAuMDQ2IDYxLjExNTFMMTM2LjM5MSA0My43MzVWNjAuNTEzM0MxMzYuMzkxIDYwLjk4NTMgMTM2LjI2IDYxLjM1MSAxMzUuOTk3IDYxLjYxMDZDMTM1LjczNCA2MS44NzAyIDEzNS4zNjQgNjIgMTM0Ljg4NiA2MkMxMzQuNDA4IDYyIDEzNC4wMzggNjEuODcwMiAxMzMuNzc1IDYxLjYxMDZDMTMzLjUxMiA2MS4zNTEgMTMzLjM4MSA2MC45ODUzIDEzMy4zODEgNjAuNTEzM1YzOS40ODczQzEzMy4zODEgMzkuMDE1NCAxMzMuNTEyIDM4LjY0OTYgMTMzLjc3NSAzOC4zOUMxMzQuMDM4IDM4LjEzMDQgMTM0LjQwOCAzOC4wMDA2IDEzNC44ODYgMzguMDAwNkMxMzUuMTczIDM4LjAwMDYgMTM1LjQyNCAzOC4wNzE0IDEzNS42MzkgMzguMjEzQzEzNS44NzggMzguMzU0NiAxMzYuMTI4IDM4LjU3ODggMTM2LjM5MSAzOC44ODU2TDE1MC4wNDYgNTYuMjY1NlYzOS40ODczQzE1MC4wNDYgMzkuMDE1NCAxNTAuMTc4IDM4LjY0OTYgMTUwLjQ0MSAzOC4zOUMxNTAuNzA0IDM4LjEzMDQgMTUxLjA3NCAzOC4wMDA2IDE1MS41NTIgMzguMDAwNlpNMTYyLjAxMSA2MkMxNjEuNTMzIDYyIDE2MS4xNjMgNjEuODcwMiAxNjAuOSA2MS42MTA2QzE2MC42MzcgNjEuMzUxIDE2MC41MDYgNjAuOTg1MyAxNjAuNTA2IDYwLjUxMzNWMzkuNDg3M0MxNjAuNTA2IDM5LjAxNTQgMTYwLjYzNyAzOC42NDk2IDE2MC45IDM4LjM5QzE2MS4xNjMgMzguMTMwNCAxNjEuNTMzIDM4LjAwMDYgMTYyLjAxMSAzOC4wMDA2SDE3MC42NDlDMTczLjc3OSAzOC4wMDA2IDE3Ni4wNzMgMzguNzMyMiAxNzcuNTMgNDAuMTk1M0MxNzkuMDExIDQxLjYzNDggMTc5Ljc1MiA0My45MDAyIDE3OS43NTIgNDYuOTkxNVY1My4wMDkxQzE3OS43NTIgNTYuMTAwNCAxNzkuMDExIDU4LjM3NzcgMTc3LjUzIDU5Ljg0MDhDMTc2LjA3MyA2MS4yODAyIDE3My43NzkgNjIgMTcwLjY0OSA2MkgxNjIuMDExWk0xNzAuNjQ5IDU5LjAyNjZDMTcyLjIwMiA1OS4wMjY2IDE3My40MDggNTguODM3OCAxNzQuMjY5IDU4LjQ2MDNDMTc1LjEyIDU4LjExNDEgMTc1LjgwMiA1Ny40NTM5IDE3Ni4xNjggNTYuNjE5NkMxNzYuNTUgNTUuNzQ2NSAxNzYuNzQyIDU0LjU0MyAxNzYuNzQyIDUzLjAwOTFWNDYuOTkxNUMxNzYuNzQyIDQ1LjQ1NzcgMTc2LjU1IDQ0LjI2NiAxNzYuMTY4IDQzLjQxNjRDMTc1LjgxMSA0Mi41Njc5IDE3NS4xMjggNDEuODkzNSAxNzQuMjY5IDQxLjU0MDRDMTczLjQwOCA0MS4xNjI4IDE3Mi4yMDIgNDAuOTc0IDE3MC42NDkgNDAuOTc0SDE2My41MTZWNTkuMDI2NkgxNzAuNjQ5Wk0yMTguOTMyIDM4LjAwMDZDMjE5Ljc0NCAzOC4wMDA2IDIyMC4xNSAzOC40OTYyIDIyMC4xNSAzOS40ODczVjYwLjUxMzNDMjIwLjE1IDYwLjk4NTMgMjIwLjAxOSA2MS4zNTEgMjE5Ljc1NiA2MS42MTA2QzIxOS40OTMgNjEuODcwMiAyMTkuMTIzIDYyIDIxOC42NDUgNjJDMjE4LjE2NyA2MiAyMTcuNzk3IDYxLjg3MDIgMjE3LjUzNCA2MS42MTA2QzIxNy4yNzEgNjEuMzUxIDIxNy4xNCA2MC45ODUzIDIxNy4xNCA2MC41MTMzVjQ0LjEyNDRMMjEwLjU0NSA1My43MTdDMjEwLjMwNiA1NC4wNDc0IDIxMC4wNDMgNTQuMjk1MiAyMDkuNzU3IDU0LjQ2MDRDMjA5LjQzMiA1NC42MTAxIDIwOS4wNzYgNTQuNjgyOCAyMDguNzE3IDU0LjY3MjhDMjA4LjQzIDU0LjY3MjggMjA4LjE2OCA1NC42MDIgMjA3LjkyOSA1NC40NjA0QzIwNy42NjcgNTQuMjQ1NSAyMDcuNDM4IDUzLjk5NTIgMjA3LjI0OCA1My43MTdMMjAwLjYxNyA0NC4wODlWNjAuNTEzM0MyMDAuNjE3IDYwLjk4NTMgMjAwLjQ4NiA2MS4zNTEgMjAwLjIyMyA2MS42MTA2QzE5OS45NiA2MS44NzAyIDE5OS41OSA2MiAxOTkuMTEyIDYyQzE5OC42MzQgNjIgMTk4LjI2NCA2MS44NzAyIDE5OC4wMDEgNjEuNjEwNkMxOTcuNzM4IDYxLjM1MSAxOTcuNjA3IDYwLjk4NTMgMTk3LjYwNyA2MC41MTMzVjM5LjQ4NzNDMTk3LjYwNyAzOS4wMTU0IDE5Ny43MzggMzguNjQ5NiAxOTguMDAxIDM4LjM5QzE5OC4yNjQgMzguMTMwNCAxOTguNjM0IDM4LjAwMDYgMTk5LjExMiAzOC4wMDA2QzE5OS43ODEgMzguMDAwNiAyMDAuMzMxIDM4LjMxOTIgMjAwLjc2MSAzOC45NTY0TDIwOC45MzIgNTEuMDk3NkwyMTcuMTA0IDM4Ljk1NjRDMjE3LjUxIDM4LjMxOTIgMjE4LjExOSAzOC4wMDA2IDIxOC45MzIgMzguMDAwNlpNMjQ0LjMwNCAzOC4zNTQ2QzI0NC44MjkgMzguNjg1IDI0NS4wOTIgMzkuMDc0NCAyNDUuMDkyIDM5LjUyMjdDMjQ1LjA5MiAzOS44MDU5IDI0NC45ODUgNDAuMDg5MSAyNDQuNzcgNDAuMzcyM0wyMzYuMjQgNTMuMjkyM1Y2MC41MTMzQzIzNi4yNCA2MC45ODUzIDIzNi4xMDggNjEuMzUxIDIzNS44NDUgNjEuNjEwNkMyMzUuNTgzIDYxLjg3MDIgMjM1LjIxMiA2MiAyMzQuNzM0IDYyQzIzNC4yNTYgNjIgMjMzLjg4NiA2MS44NzAyIDIzMy42MjMgNjEuNjEwNkMyMzMuMzYgNjEuMzUxIDIzMy4yMjkgNjAuOTg1MyAyMzMuMjI5IDYwLjUxMzNWNTMuMjkyM0wyMjUuMDIyIDQwLjM3MjNDMjI0LjgzIDQwLjA0MTkgMjI0LjczNSAzOS43NDY5IDIyNC43MzUgMzkuNDg3M0MyMjQuNzM1IDM4Ljk5MTggMjI0Ljk4NiAzOC41OTA2IDIyNS40ODggMzguMjgzOEMyMjUuODIyIDM4LjA5NSAyMjYuMTIxIDM4LjAwMDYgMjI2LjM4NCAzOC4wMDA2QzIyNi44MzcgMzguMDAwNiAyMjcuMjMyIDM4LjI0ODQgMjI3LjU2NiAzOC43NDRMMjM0LjczNCA1MC4xMDY1TDI0Mi4yNjEgMzguNzQ0QzI0Mi41NDggMzguMjcyIDI0Mi45MyAzOC4wMzYgMjQzLjQwOCAzOC4wMzZDMjQzLjY5NCAzOC4wMzYgMjQzLjk5MyAzOC4xNDIyIDI0NC4zMDQgMzguMzU0NlpNMjc2LjE5IDQ4LjM3MkMyNzguMDc3IDQ5LjQ1NzYgMjc5LjAyMSA1MS4zODA4IDI3OS4wMjEgNTQuMTQxOFY1NS4zNDUzQzI3OS4wMjEgNTcuNTE2NCAyNzguNDM2IDU5LjE2ODIgMjc3LjI2NSA2MC4zMDA5QzI3Ni4xMTggNjEuNDMzNyAyNzQuNDQ1IDYyIDI3Mi4yNDcgNjJIMjYyLjQyN0MyNjEuOTQ5IDYyIDI2MS41NzkgNjEuODcwMiAyNjEuMzE2IDYxLjYxMDZDMjYxLjA1MyA2MS4zNTEgMjYwLjkyMiA2MC45ODUzIDI2MC45MjIgNjAuNTEzM1YzOS40ODczQzI2MC45MjIgMzkuMDE1NCAyNjEuMDUzIDM4LjY0OTYgMjYxLjMxNiAzOC4zOUMyNjEuNTc5IDM4LjEzMDQgMjYxLjk0OSAzOC4wMDA2IDI2Mi40MjcgMzguMDAwNkgyNzEuNzgxQzI3My42NjkgMzguMDAwNiAyNzUuMTI2IDM4LjQ5NjIgMjc2LjE1NCAzOS40ODczQzI3Ny4xODEgNDAuNDc4NCAyNzcuNjk1IDQxLjg5NDMgMjc3LjY5NSA0My43MzVWNDQuNjkwN0MyNzcuNjk1IDQ1LjQ0NTkgMjc3LjU2NCA0Ni4xNDIgMjc3LjMwMSA0Ni43NzkyQzI3Ny4wNTggNDcuMzg3IDI3Ni42NzggNDcuOTMxOSAyNzYuMTkgNDguMzcyWk0yNjMuOTMyIDQ3LjUyMjVIMjcyLjg5MkMyNzMuNTE0IDQ3LjQ1MTcgMjczLjk2OCA0Ny4xNjg1IDI3NC4yNTQgNDYuNjczQzI3NC41NDEgNDYuMTUzOCAyNzQuNjg0IDQ1LjQ5MzEgMjc0LjY4NCA0NC42OTA3VjQzLjczNUMyNzQuNjg0IDQyLjcyMDMgMjc0LjQ2OSA0Mi4wMTIzIDI3NC4wMzkgNDEuNjExMkMyNzMuNjA5IDQxLjE4NjQgMjcyLjg1NyA0MC45NzQgMjcxLjc4MSA0MC45NzRIMjYzLjkzMlY0Ny41MjI1Wk0yNzYuMDEgNTQuMTQxOEMyNzYuMDEgNTIuODIwMyAyNzUuNzI0IDUxLjg4ODIgMjc1LjE1IDUxLjM0NTRDMjc0LjU3NyA1MC43NzkxIDI3My42MDkgNTAuNDk1OSAyNzIuMjQ3IDUwLjQ5NTlIMjYzLjkzMlY1OS4wMjY2SDI3Mi4yNDdDMjczLjU4NSA1OS4wMjY2IDI3NC41NDEgNTguNzQzNSAyNzUuMTE0IDU4LjE3NzFDMjc1LjcxMiA1Ny42MTA3IDI3Ni4wMSA1Ni42NjY4IDI3Ni4wMSA1NS4zNDUzVjU0LjE0MThaTTI4Ni41NDMgNjJDMjg1LjU0IDYyIDI4NS4wMzggNjEuNTA0NCAyODUuMDM4IDYwLjUxMzNWMzkuNDg3M0MyODUuMDM4IDM4LjQ5NjIgMjg1LjU0IDM4LjAwMDYgMjg2LjU0MyAzOC4wMDA2QzI4Ny41NDcgMzguMDAwNiAyODguMDQ4IDM4LjQ5NjIgMjg4LjA0OCAzOS40ODczVjU5LjAyNjZIMjk3Ljk3NkMyOTguOTggNTkuMDI2NiAyOTkuNDgxIDU5LjUyMjIgMjk5LjQ4MSA2MC41MTMzQzI5OS40ODEgNjEuNTA0NCAyOTguOTggNjIgMjk3Ljk3NiA2MkgyODYuNTQzWk0zMTAuODk3IDYyQzMwOC4xNDkgNjIgMzA2LjExOCA2MS4zNjI4IDMwNC44MDQgNjAuMDg4NUMzMDMuNTEzIDU4Ljc5MDYgMzAyLjg2NyA1Ni43ODQ4IDMwMi44NjcgNTQuMDcxVjQ1Ljg5NDJDMzAyLjg2NyA0My4xODA0IDMwMy41MjUgNDEuMTg2NCAzMDQuODQgMzkuOTEyMUMzMDYuMTU0IDM4LjYxNDIgMzA4LjE3MyAzNy45NzcgMzEwLjg5NyAzOC4wMDA2SDMxNS4xOTZDMzE3Ljk0NCAzOC4wMDA2IDMxOS45NjMgMzguNjQ5NiAzMjEuMjUzIDM5Ljk0NzVDMzIyLjU2OSA0MS4yMjE4IDMyMy4yMjYgNDMuMjE1OCAzMjMuMjI2IDQ1LjkyOTZWNTQuMDcxQzMyMy4yMjYgNTYuNzg0OCAzMjIuNTY5IDU4Ljc5MDYgMzIxLjI1MyA2MC4wODg1QzMxOS45NjMgNjEuMzYyOCAzMTcuOTQ0IDYyIDMxNS4xOTYgNjJIMzEwLjg5N1pNMzE1LjE5NiA1OS4wMjY2QzMxNi41MTIgNTkuMDI2NiAzMTcuNTE0IDU4Ljg3MzIgMzE4LjIwOCA1OC41NjY1QzMxOC44OTcgNTguMjg2MyAzMTkuNDQ5IDU3Ljc1MzQgMzE5Ljc0OCA1Ny4wNzk4QzMyMC4wNiA1Ni4zNzE4IDMyMC4yMTQgNTUuMzY4OSAzMjAuMjE0IDU0LjA3MVY0NS45Mjk2QzMyMC4yMTQgNDQuNjU1MyAzMjAuMDYgNDMuNjY0MiAzMTkuNzQ4IDQyLjk1NjNDMzE5LjQ1OCA0Mi4yNjgyIDMxOC45MDQgNDEuNzIxMiAzMTguMjA4IDQxLjQzNDJDMzE3LjQ5MSA0MS4xMjc0IDMxNi40ODYgNDAuOTc0IDMxNS4xOTYgNDAuOTc0SDMxMC44OTdDMzA5LjYwNiA0MC45NTA0IDMwOC42MDEgNDEuMDkyIDMwNy44ODUgNDEuMzk4OEMzMDcuMTg4IDQxLjY4NTggMzA2LjYzNSA0Mi4yMzI4IDMwNi4zNDUgNDIuOTIwOUMzMDYuMDM0IDQzLjYyODggMzA1Ljg3OSA0NC42MTk5IDMwNS44NzkgNDUuODk0MlY1NC4wNzFDMzA1Ljg3OSA1NS4zNjg5IDMwNi4wMzQgNTYuMzcxOCAzMDYuMzQ1IDU3LjA3OThDMzA2LjY1NCA1Ny43NjQxIDMwNy4xNTYgNTguMjU5NyAzMDcuODQ5IDU4LjU2NjVDMzA4LjU2NSA1OC44NzMyIDMwOS41ODIgNTkuMDI2NiAzMTAuODk3IDU5LjAyNjZIMzE1LjE5NlpNMzM2Ljk3IDYyQzMzNC4yMjMgNjIgMzMyLjE5MiA2MS4zNjI4IDMzMC44NzggNjAuMDg4NUMzMjkuNTg3IDU4Ljc5MDYgMzI4Ljk0MiA1Ni43ODQ4IDMyOC45NDIgNTQuMDcxVjQ1LjkyOTZDMzI4Ljk0MiA0My4yMTU4IDMyOS41ODcgNDEuMjEgMzMwLjg3OCAzOS45MTIxQzMzMi4xOTIgMzguNjE0MiAzMzQuMjExIDM3Ljk3NyAzMzYuOTM1IDM4LjAwMDZIMzQxLjI3MUMzNDMuNTE3IDM4LjAwMDYgMzQ1LjIyNiAzOC40NjA4IDM0Ni4zOTcgMzkuMzgxMUMzNDcuNTkxIDQwLjMwMTUgMzQ4LjI4NCA0MS43NDEgMzQ4LjQ3NSA0My42OTk2QzM0OC41NDcgNDQuMTk1MiAzNDguNDUxIDQ0LjU3MjcgMzQ4LjE4OSA0NC44MzIzQzM0Ny45MjYgNDUuMDkxOSAzNDcuNTQzIDQ1LjIyMTcgMzQ3LjA0MiA0NS4yMjE3QzM0Ni41NjQgNDUuMjIxNyAzNDYuMTkzIDQ1LjEwMzcgMzQ1LjkzMSA0NC44Njc3QzM0NS42OTIgNDQuNjA4MSAzNDUuNTM2IDQ0LjIzMDYgMzQ1LjQ2NSA0My43MzVDMzQ1LjM0NSA0Mi42NzMxIDM0NC45NzUgNDEuOTUzMyAzNDQuMzU0IDQxLjU3NThDMzQzLjczMiA0MS4xNzQ2IDM0Mi43MDUgNDAuOTc0IDM0MS4yNzEgNDAuOTc0SDMzNi45MzVDMzM1LjY0NCA0MC45NTA0IDMzNC42NDEgNDEuMDkyIDMzMy45MjQgNDEuMzk4OEMzMzMuMjA3IDQxLjcwNTUgMzMyLjY5NCA0Mi4yMTI5IDMzMi4zODMgNDIuOTIwOUMzMzIuMDk2IDQzLjYyODggMzMxLjk1MyA0NC42MzE3IDMzMS45NTMgNDUuOTI5NlY1NC4wNzFDMzMxLjk1MyA1NS4zNjg5IDMzMi4xMDggNTYuMzcxOCAzMzIuNDE5IDU3LjA3OThDMzMyLjcyOSA1Ny43NjQxIDMzMy4yMzEgNTguMjU5NyAzMzMuOTI0IDU4LjU2NjVDMzM0LjY0MSA1OC44NzMyIDMzNS42NTYgNTkuMDI2NiAzMzYuOTcgNTkuMDI2NkgzNDEuMjcxQzM0Mi43MDUgNTkuMDI2NiAzNDMuNzMyIDU4LjgzNzggMzQ0LjM1NCA1OC40NjAzQzM0NC45NzUgNTguMDU5MSAzNDUuMzQ1IDU3LjMyNzYgMzQ1LjQ2NSA1Ni4yNjU2QzM0NS41MzYgNTUuNzcwMSAzNDUuNjkyIDU1LjQwNDMgMzQ1LjkzMSA1NS4xNjgzQzM0Ni4xOTMgNTQuOTA4NyAzNDYuNTY0IDU0Ljc3OSAzNDcuMDQyIDU0Ljc3OUMzNDcuNTQzIDU0Ljc3OSAzNDcuOTI2IDU0LjkwODcgMzQ4LjE4OSA1NS4xNjgzQzM0OC40NTEgNTUuNDI3OSAzNDguNTQ3IDU1LjgwNTUgMzQ4LjQ3NSA1Ni4zMDFDMzQ4LjI4NCA1OC4yNTk3IDM0Ny41OTEgNTkuNjk5MiAzNDYuMzk3IDYwLjYxOTVDMzQ1LjIyNiA2MS41Mzk4IDM0My41MTcgNjIgMzQxLjI3MSA2MkgzMzYuOTdaTTM3MC40MiA1OS40MTZDMzcwLjY4MyA1OS43NDY0IDM3MC44MTQgNjAuMDc2NyAzNzAuODE0IDYwLjQwNzFDMzcwLjgxNCA2MC44MzE5IDM3MC42MTEgNjEuMTk3NyAzNzAuMjA1IDYxLjUwNDRDMzY5LjkzNCA2MS43NTc5IDM2OS41NzQgNjEuODk3NSAzNjkuMjAxIDYxLjg5MzhDMzY4Ljc3MSA2MS44OTM4IDM2OC40MDEgNjEuNjkzMiAzNjguMDkgNjEuMjkyMUwzNTkuMzEgNTAuNTY2N0wzNTcuNzY4IDUyLjE1OTZWNjAuNTEzM0MzNTcuNzY4IDYwLjk4NTMgMzU3LjYzNyA2MS4zNTEgMzU3LjM3NCA2MS42MTA2QzM1Ny4xMTEgNjEuODcwMiAzNTYuNzQxIDYyIDM1Ni4yNjMgNjJDMzU1Ljc4NSA2MiAzNTUuNDE1IDYxLjg3MDIgMzU1LjE1MiA2MS42MTA2QzM1NC44ODkgNjEuMzUxIDM1NC43NTggNjAuOTg1MyAzNTQuNzU4IDYwLjUxMzNWMzkuNDg3M0MzNTQuNzU4IDM5LjAxNTQgMzU0Ljg4OSAzOC42NDk2IDM1NS4xNTIgMzguMzlDMzU1LjQxNSAzOC4xMzA0IDM1NS43ODUgMzguMDAwNiAzNTYuMjYzIDM4LjAwMDZDMzU2Ljc0MSAzOC4wMDA2IDM1Ny4xMTEgMzguMTMwNCAzNTcuMzc0IDM4LjM5QzM1Ny42MzcgMzguNjQ5NiAzNTcuNzY4IDM5LjAxNTQgMzU3Ljc2OCAzOS40ODczVjQ3LjkxMTlMMzY2LjkwOCAzOC41NjdDMzY3LjI2NiAzOC4yMTMgMzY3LjYyNCAzOC4wMzYgMzY3Ljk4MyAzOC4wMzZDMzY4LjM0MSAzOC4wMzYgMzY4LjY4OCAzOC4yMDEyIDM2OS4wMjIgMzguNTMxNkMzNjkuMzgxIDM4Ljg4NTYgMzY5LjU2IDM5LjIzOTUgMzY5LjU2IDM5LjU5MzVDMzY5LjU2IDM5Ljk0NzUgMzY5LjM5MyA0MC4yODk3IDM2OS4wNTggNDAuNjJMMzYxLjQ2IDQ4LjQwNzRMMzcwLjQyIDU5LjQxNlpNMzgxLjg1IDYyQzM3OS43OTUgNjIgMzc4LjE5NCA2MS41OTg4IDM3Ny4wNDggNjAuNzk2NUMzNzUuOTI1IDU5Ljk3MDYgMzc1LjIyIDU4LjcwOCAzNzQuOTMzIDU3LjAwOUMzNzQuODg1IDU2LjUxMzQgMzc0Ljk5MyA1Ni4xMzU5IDM3NS4yNTUgNTUuODc2M0MzNzUuNTE4IDU1LjU5MzEgMzc1LjkwMSA1NS40NTE1IDM3Ni40MDIgNTUuNDUxNUMzNzYuODggNTUuNDUxNSAzNzcuMjM5IDU1LjU2OTUgMzc3LjQ3OCA1NS44MDU1QzM3Ny43MTcgNTYuMDE3OSAzNzcuODg0IDU2LjM4MzYgMzc3Ljk3OSA1Ni45MDI4QzM3OC4xNDcgNTcuNzA1MSAzNzguNTE3IDU4LjI1OTcgMzc5LjA5IDU4LjU2NjVDMzc5LjY4OCA1OC44NzMyIDM4MC42MDggNTkuMDI2NiAzODEuODUgNTkuMDI2NkgzODcuMDExQzM4OC4wNjIgNTkuMDI2NiAzODguODYzIDU4LjkwODYgMzg5LjQxMiA1OC42NzI3QzM4OS42ODQgNTguNTY3NiAzODkuOTMyIDU4LjQxMDIgMzkwLjE0MSA1OC4yMDk3QzM5MC4zNSA1OC4wMDkxIDM5MC41MTcgNTcuNzY5NCAzOTAuNjMxIDU3LjUwNDVDMzkwLjg3IDU2LjkzODIgMzkwLjk4OSA1Ni4xNDc2IDM5MC45ODkgNTUuMTMyOUMzOTAuOTg5IDUzLjYyMjYgMzkwLjcwMyA1Mi41ODQzIDM5MC4xMjkgNTIuMDE4QzM4OS41NTYgNTEuNDUxNiAzODguNTE2IDUxLjE2ODQgMzg3LjAxMSA1MS4xNjg0SDM4Mi41NjdDMzgwLjMyMSA1MS4xNjg0IDM3OC42NDggNTAuNjI1NyAzNzcuNTQ5IDQ5LjU0MDJDMzc2LjQ1IDQ4LjQ1NDYgMzc1LjkwMSA0Ni43OTEgMzc1LjkwMSA0NC41NDkxQzM3NS45MDEgNDIuMzMwOSAzNzYuNDM4IDQwLjY5MDggMzc3LjUxMyAzOS42Mjg5QzM3OC42MTMgMzguNTQzNCAzODAuMjg1IDM4LjAwMDYgMzgyLjUzMSAzOC4wMDA2SDM4Ni43OTZDMzkwLjU3MSAzOC4wMDA2IDM5Mi43NDYgMzkuNTU4MSAzOTMuMzE5IDQyLjY3MzFDMzkzLjM5MSA0My4xNjg2IDM5My4yOTUgNDMuNTU4IDM5My4wMzIgNDMuODQxMkMzOTIuNzcgNDQuMTAwOCAzOTIuMzc1IDQ0LjIzMDYgMzkxLjg1IDQ0LjIzMDZDMzkxLjM3MiA0NC4yMzA2IDM5MS4wMTMgNDQuMTEyNiAzOTAuNzc0IDQzLjg3NjZDMzkwLjUzNSA0My42NDA2IDM5MC4zOCA0My4yNzQ4IDM5MC4zMDggNDIuNzc5M0MzOTAuMTE3IDQyLjA5NDkgMzg5Ljc1OSA0MS42MjMgMzg5LjIzMyA0MS4zNjM0QzM4OC43MDggNDEuMTAzOCAzODcuODk1IDQwLjk3NCAzODYuNzk2IDQwLjk3NEgzODIuNTMxQzM4MS41NTEgNDAuOTc0IDM4MC43OTkgNDEuMDgwMiAzODAuMjczIDQxLjI5MjZDMzgwLjAyOCA0MS4zOTQzIDM3OS44MDcgNDEuNTQzOSAzNzkuNjIyIDQxLjczMjVDMzc5LjQzNyA0MS45MjExIDM3OS4yOTMgNDIuMTQ0NyAzNzkuMTk4IDQyLjM4OTlDMzc5LjAwNyA0Mi44ODU1IDM3OC45MTEgNDMuNjA1MiAzNzguOTExIDQ0LjU0OTFDMzc4LjkxMSA0NS41MTY3IDM3OS4wMTkgNDYuMjYgMzc5LjIzNCA0Ni43NzkyQzM3OS40NDkgNDcuMjc0NyAzNzkuODA3IDQ3LjY0MDUgMzgwLjMwOSA0Ny44NzY1QzM4MC44MzUgNDguMDg4OSAzODEuNTg3IDQ4LjE5NTEgMzgyLjU2NyA0OC4xOTUxSDM4Ny4wMTFDMzg5LjM3NyA0OC4xOTUxIDM5MS4xMzMgNDguNzYxNCAzOTIuMjggNDkuODk0MUMzOTMuNDI3IDUxLjAyNjggMzk0IDUyLjc3MzEgMzk0IDU1LjEzMjlDMzk0IDU3LjQ2OTEgMzkzLjQyNyA1OS4yMDM2IDM5Mi4yOCA2MC4zMzYzQzM5MS4xMzMgNjEuNDQ1NCAzODkuMzc3IDYyIDM4Ny4wMTEgNjJIMzgxLjg1WiIgZmlsbD0iI0UyMkYyMiIvPgo8cGF0aCBkPSJNMzYuNzM2IDBMMCAxOS4yNThMMC40NzA5OTMgNjMuNTczTDIyLjg0MSA3Ni4zMzRMMzYuOTcyIDEwMEw1MC42MyA3Ni4zMzRMNzMgNjMuNjlWMTkuNDlMMzYuNzM2IDBaTTI5LjY3IDY0LjI3TDE0LjM2NCA1NS42ODVWMzUuNDk4TDI5LjY3IDQ0LjU0N1Y2NC4yNjhWNjQuMjdaTTIxLjkgMjMuNDMzTDM2LjczNSAxNS43NzZMNTEuMzM1IDIzLjQzM0wzNi43MzUgMzIuMDE4TDIxLjkgMjMuNDMzWk01OC44NzEgNTUuNjgzTDQzLjggNjQuMjdWNDQuNTQ4TDU4Ljg3MSAzNS43MzFWNTUuNjgzWiIgZmlsbD0iI0UyMkYyMiIvPgo8L3N2Zz4K\";","// extracted by mini-css-extract-plugin\nexport default {\"navigation\":\"kiMVxg7uvmObzH9y5Nf7\",\"subtitle\":\"lh6Gp5uMZoFjdsD0piCQ\",\"active\":\"IHgUS1orY8DkWO_fbRhQ\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Ub1Qwzm7eiO9i1pfS4JA\",\"header\":\"MHfJiF9ZtWnpmRSznlsA\",\"container\":\"bDqx83XSEFfGnp0RCn6r\",\"logo\":\"s2jFJ3kbxHqVjcXOAa_e\",\"headerNavigation\":\"O0TgIPrk1w9xxx2FS7rI\"};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"BBrTfwaRpiXTsfXQotgf\",\"help\":\"eiQPya4NGNSbJXhlQrFG\",\"default\":\"Qrwn2ZFHSg4CzQ5B2Hju\",\"info\":\"dK0gZ8H42AMHDmiT90gt\",\"warning\":\"Iq2GVHFXIvyadiMTJhPA\",\"error\":\"IAqnveipCAc7HoEDOSlg\",\"label\":\"g0nlWBX7OmQcFqR6UoAB\",\"icon\":\"wLv8qHa44_fOcOtj0hCA\"};","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","import { useState } from \"@wordpress/element\";\nimport { useFindMyBlocks } from \"../../context/FindMyBlocksContext.js\";\nimport style from \"./BlockNavigation.module.css\";\nimport { __ } from \"@wordpress/i18n\";\n\nconst BlockNavigation = ({}) => {\n const { finder, preferences } = useFindMyBlocks();\n const { setSelectedBlock } = preferences;\n const { foundBlocks, withFilters } = finder;\n const [currentActive, setCurrentActive] = useState(null);\n\n const filteredBlocks = withFilters(foundBlocks);\n\n const handleLinkClick = (blockName) => {\n setSelectedBlock(blockName);\n setCurrentActive(blockName);\n };\n\n return (\n <nav className={style.navigation}>\n <ul>\n {filteredBlocks.map((block) => (\n <li\n key={block.name}\n className={currentActive === block.name ? style.active : \"\"}\n onClick={() => handleLinkClick(block.name)}\n >\n {block.name}{\" \"}\n <span className={style.subtitle}>\n {__(\"Found in\", \"find-my-blocks\")} {block.posts.length}{\" \"}\n {block.posts.length > 1\n ? __(\"locations\", \"find-my-blocks\")\n : __(\"location\", \"find-my-blocks\")}\n </span>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n\nexport default BlockNavigation;\n","import {\n Button,\n DropdownMenu,\n MenuGroup,\n MenuItem,\n} from \"@wordpress/components\";\nimport style from \"./PageHeader.module.css\";\nimport { __ } from \"@wordpress/i18n\";\nimport Logo from \"../../../images/find-my-blocks-logo-full.svg\";\nimport { useFindMyBlocks } from \"../../context/FindMyBlocksContext.js\";\n\nconst PageHeader = ({ children }) => {\n const { finder } = useFindMyBlocks();\n const { isLoading, reset, startSearch, foundBlocks } = finder;\n\n return (\n <div className={style.wrapper}>\n <div className={style.header}>\n <div className={style.container}>\n <img\n className={style.logo}\n src={Logo}\n alt=\"Find My Blocks Logo\"\n onClick={() => (foundBlocks.length > 0 ? reset() : false)}\n />\n <div className={style.headerNavigation}>\n <Button\n onClick={() => (foundBlocks.length > 0 ? reset() : startSearch())}\n icon={foundBlocks.length > 0 ? \"update-alt\" : null}\n isPrimary\n disabled={isLoading}\n >\n {foundBlocks.length > 0 // If there are found blocks, show \"Search Again\"\n ? __(\"Re-scan\", \"find-my-blocks\")\n : __(\"Search\", \"find-my-blocks\")}\n </Button>\n <DropdownMenu icon=\"menu\" label=\"Select a direction\">\n {({ onClose }) => (\n <>\n <MenuGroup label={__(\"Quick Links\", \"find-my-blocks\")}>\n <MenuItem\n href={\n fmbGlobal.admin_url + \"/edit.php?post_type=wp_block\"\n }\n >\n {__(\"Reusable Patterns\", \"find-my-blocks\")}\n </MenuItem>\n </MenuGroup>\n <MenuGroup label={__(\"Support\", \"find-my-blocks\")}>\n <MenuItem\n icon=\"star-filled\"\n href=\"https://wordpress.org/support/plugin/find-my-blocks/reviews/\"\n target=\"_blank\"\n >\n {__(\"Review on wp.org\", \"find-my-blocks\")}\n </MenuItem>\n <MenuItem\n icon=\"sos\"\n href=\"https://wordpress.org/support/plugin/find-my-blocks/\"\n target=\"_blank\"\n >\n {__(\"Support forum\", \"find-my-blocks\")}\n </MenuItem>\n <MenuItem\n icon=\"external\"\n href=\"https://findmyblocks.com/?utm_source=wordpress_site&utm_medium=navigation&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n findmyblocks.com\n </MenuItem>\n </MenuGroup>\n </>\n )}\n </DropdownMenu>\n </div>\n </div>\n </div>\n {children}\n </div>\n );\n};\n\nexport default PageHeader;\n","import {\n Card as WPCard,\n CardBody,\n CardDivider,\n CardHeader,\n Button,\n ExternalLink,\n} from \"@wordpress/components\";\nimport { __ } from \"@wordpress/i18n\";\n\nimport { Tag } from \"../Tag/Tag.js\";\n\nexport const Card = ({ post, blockName }) => {\n const tags = getTags(post);\n\n return (\n <WPCard size=\"small\" className=\"fmb-card\">\n <CardHeader isBorderless>\n <div>\n <span className=\"fmb-card-title\">{post.title}</span>\n <span className=\"fmb-card-meta\">\n <code>{post?.postType}</code>{\" \"}\n {post?.isThirdPartyTemplate && (\n <code>{post?.templateProvider}</code>\n )}{\" \"}\n </span>\n </div>\n <div>\n <Button\n target=\"_blank\"\n isTertiary\n href={post.post_url}\n size={\"small\"}\n >\n {__(\"Preview\", \"find-my-blocks\")}\n </Button>\n <Button\n target=\"_blank\"\n isTertiary\n href={post.edit_url}\n size={\"small\"}\n >\n {__(\"Edit\", \"find-my-blocks\")}\n </Button>\n </div>\n </CardHeader>\n {tags.length > 0 && (\n <>\n <CardDivider />\n <CardBody>\n {tags.map((tag) => {\n return <Tag key={tag.label} {...tag} />;\n })}\n </CardBody>\n </>\n )}\n </WPCard>\n );\n\n function getTags(post) {\n const tags = [];\n\n if (post.hasConditionalBlocks) {\n tags.push({\n label: __(\"Conditional\", \"find-my-blocks\"),\n help: (\n <span>\n {__(\"via\", \"find-my-blocks\")}{\" \"}\n <ExternalLink target=\"_blank\" href=\"https://conditionalblocks.com/\">\n Conditional Blocks\n </ExternalLink>\n </span>\n ),\n icon: \"randomize\",\n variation: \"info\",\n });\n }\n\n if (post.isSyncedPattern) {\n tags.push({\n label: __(\"Synced Pattern\", \"find-my-blocks\"),\n icon: \"networking\",\n variation: \"warning\",\n });\n }\n\n if (post.count > 1) {\n tags.push({\n label: `${post.count}x ` + blockName,\n icon: \"list-view\",\n variation: \"info\",\n });\n }\n\n if (post.isNested) {\n tags.push({\n label: __(\"Nested in: \", \"find-my-blocks\") + post.nestedBlockType,\n icon: \"align-center\",\n variation: \"info\",\n });\n }\n\n return tags;\n }\n};\n\nexport function CardGrid({ posts, blockName = \"\" }) {\n if (!posts || posts.length < 1) {\n return (\n <div>\n <h2>{__(\"No locations found\", \"find-my-blocks\")}</h2>\n {__(\n \"Please select a block from the menu, or check the filters.\",\n \"find-my-blocks\"\n )}\n </div>\n );\n }\n\n return (\n <div className=\"fmb-card-grid\">\n {posts.map((post, index) => {\n return (\n <Card key={blockName + post?.id} post={post} blockName={blockName} />\n );\n })}\n </div>\n );\n}\n","import classes from \"./Tag.module.css\";\nimport { Icon } from \"@wordpress/components\";\n\nconst classNames = (...classes) => classes.filter(Boolean).join(\" \");\n\n/**\n * Tag\n * @param {string} variations - \"info\" | \"warning\" | \"error\" | \"default\";\n * @returns\n */\nexport const Tag = ({ variation = \"default\", icon, label, help }) => {\n const tagClass = classNames(classes.tag, classes[variation]);\n\n return (\n <div className={tagClass}>\n {icon && <Icon icon={icon} className={classes.Icon} />}\n <div className={classes.label}>{label}</div>\n {help && <div className={classes.help}> {help}</div>}\n </div>\n );\n};\n","import React, { createContext, useContext } from \"@wordpress/element\";\n\nimport { usePreferences } from \"../hooks/usePreferences.js\";\nimport { useFinder } from \"../hooks/useFinder.js\";\n\n// Create a context for the app state.\nconst FindMyBlocksContext = createContext();\n\n// Create a provider component.\nexport const FindMyBlocksProvider = ({ children }) => {\n const preferences = usePreferences();\n\n const searchArgs = {\n posts_per_page: preferences.postsPerRun,\n };\n\n const finder = useFinder({\n searchArgs,\n cachedFoundBlocks: preferences?.cachedFoundBlocks ?? [],\n setCachedFoundBlocks: preferences.setCachedFoundBlocks,\n });\n\n const contextValue = {\n preferences: preferences,\n finder: finder,\n };\n\n return (\n <FindMyBlocksContext.Provider value={contextValue}>\n {children}\n </FindMyBlocksContext.Provider>\n );\n};\n\n// Create a custom hook to use the app state context.\nexport const useFindMyBlocks = () => {\n const context = useContext(FindMyBlocksContext);\n if (!context) {\n throw new Error(\n \"useFindMyBlocks must be used within an FindMyBlocksProvider\"\n );\n }\n return context;\n};\n","/**\n * Global fmbGlobal\n */\nimport { useState, useEffect, useRef } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport apiFetch from \"@wordpress/api-fetch\";\n/**\n * Fetch the blocks from the server.\n * the blocks contain the following fields.\n *\n * count, edit_url, id, isNested, isReusable, nestedBlockType, postType, post_url, status, title\n */\nexport const useFinder = ({\n searchArgs = {},\n cachedFoundBlocks = [],\n setCachedFoundBlocks,\n}) => {\n const filtersDefault = {\n name: false,\n blockProvider: false,\n hasConditionalBlocks: false,\n };\n\n const [foundBlocks, setFoundBlocks] = useState([]);\n const [filters, setFilters] = useState(filtersDefault);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(null);\n const [progress, setProgress] = useState({\n currentPage: 0,\n totalPages: 0,\n percentage: 0,\n totalPosts: 0,\n totalBlocks: 0,\n totalScannedPosts: 0,\n });\n\n const [sortOrder, setSortOrder] = useState(\"asc\"); // 'asc' for ascending, 'desc' for descending.\n\n const abortControllerRef = useRef(null);\n\n /**\n * Abort the search.\n */\n const abortSearch = () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n console.log(\"Search aborted by user.\");\n setError(new Error(__(\"Search aborted by user\", \"find-my-blocks\"))); // Set an error state indicating the search was aborted\n }\n };\n\n /**\n * Get the posts with a specific block.\n * @param {string} blockName - The name of the block.\n * @returns {Array} The posts with the block.\n */\n const postsWithBlock = (blockName) => {\n const block = withFilters(foundBlocks).find(\n (block) => block.name === blockName\n );\n\n return block ? block.posts : [];\n };\n\n /**\n * Start the search.\n */\n const startSearch = async () => {\n reset();\n setIsLoading(true);\n // Create a new instance of AbortController for the entire batch search\n const controller = new AbortController();\n abortControllerRef.current = controller; // Keep a reference to the controller\n\n let currentPage = 1;\n let totalPosts = 0;\n let totalScannedPosts = 0;\n let localBatchResults = []; // Local variable to keep track of batch results.\n let totalBlockInstances = 0; // Keep track of total block instances detected.\n let hadError = false;\n\n try {\n while (\n (totalScannedPosts < totalPosts || currentPage === 1) &&\n !abortControllerRef.current.signal.aborted\n ) {\n const timeoutId = setTimeout(() => controller.abort(), 15000); // Set a 10-second timeout\n\n const queryString = new URLSearchParams({\n ...searchArgs,\n paged: currentPage,\n }).toString();\n\n try {\n const searchResponse = await apiFetch({\n path: `find-my-blocks/v1/search?${queryString}`,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId); // Clear the timeout if the request completes\n\n // Add a 1 second delay between requests to avoid server overload.\n await new Promise((resolve) => setTimeout(resolve, 1000));\n\n if (searchResponse?.data) {\n const { blocks, scanned_posts, total_posts, total_pages } =\n searchResponse.data;\n\n // Total Posts shouldn't change after the first request.\n if (currentPage === 1) {\n totalPosts = total_posts;\n }\n\n totalBlockInstances += blocks.reduce(\n (sum, block) => sum + block.posts.length,\n 0\n );\n\n totalScannedPosts += scanned_posts;\n\n // Update progress state.\n setProgress({\n currentPage,\n totalPages: total_pages,\n percentage: Math.round((currentPage / total_pages) * 100),\n totalBlocks: totalBlockInstances,\n totalPosts: totalPosts,\n totalScannedPosts: totalScannedPosts,\n });\n\n // Add the new blocks to the local variable\n localBatchResults = localBatchResults.concat(blocks);\n\n currentPage++;\n\n if (currentPage > total_pages) {\n break;\n }\n } else {\n break; // Exit loop if no data is returned\n }\n } catch (error) {\n clearTimeout(timeoutId); // Ensure the timeout is cleared on error as well\n\n if (error.name === \"AbortError\") {\n console.error(\n __(\n \"Search aborted or timeout reached - Please try lower the amount of posts to search per request.\",\n \"find-my-blocks\"\n ),\n error\n );\n setError(\n new Error(\n __(\n \"Abort/timeout error. Try choosing a lower amount of posts to search per request.\",\n \"find-my-blocks\"\n )\n )\n );\n } else {\n console.error(\"Error fetching blocks:\", error);\n setError(error);\n }\n\n break; // Exit loop on any error\n }\n }\n } finally {\n abortControllerRef.current = null;\n\n // Check if the error indicates an aborted search before resetting\n if (!error) {\n if (localBatchResults.length > 0) {\n const mergedBlocks = mergeBlocks(localBatchResults);\n\n // Re-sort the blocks if the search was successful\n const sortedBlocks = changeBlockSorting(sortOrder, mergedBlocks);\n\n setFilters(filtersDefault);\n setFoundBlocks(sortedBlocks);\n setCachedFoundBlocks(sortedBlocks);\n } else {\n console.log(error);\n reset(); // Call the reset function if no results were found or if there was an error other than an aborted search\n }\n }\n\n setIsLoading(false);\n }\n };\n\n /**\n * Reset the search state to its initial values.\n */\n const reset = () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n setFoundBlocks([]);\n setCachedFoundBlocks([]);\n setIsLoading(false);\n setError(null);\n setProgress({\n currentPage: 0,\n totalPages: 0,\n percentage: 0,\n totalPosts: 0,\n totalBlocks: 0,\n totalScannedPosts: 0,\n });\n setSortOrder(\"asc\");\n };\n\n let firstLoad = true;\n\n useEffect(() => {\n if (firstLoad && cachedFoundBlocks && cachedFoundBlocks.length > 0) {\n firstLoad = false;\n setFoundBlocks(changeBlockSorting(sortOrder, cachedFoundBlocks));\n }\n }, [cachedFoundBlocks]);\n\n const changeBlockSorting = (order, foundBlocks) => {\n // First, sort the blocks\n const sortedBlocks = [...foundBlocks].sort((a, b) => {\n if (order === \"asc\") {\n return a.name.localeCompare(b.name);\n } else {\n return b.name.localeCompare(a.name);\n }\n });\n\n // Then, sort the posts within each block\n sortedBlocks.forEach((block) => {\n if (block.posts && Array.isArray(block.posts)) {\n block.posts.sort((a, b) => {\n if (order === \"asc\") {\n return a.title.localeCompare(b.title);\n } else {\n return b.title.localeCompare(a.title);\n }\n });\n }\n });\n\n return sortedBlocks;\n };\n\n const withFilters = (blocks) => {\n if (filters.name) {\n blocks = blocks.filter((block) =>\n block.name.toLowerCase().includes(filters.name.toLowerCase())\n );\n }\n\n if (filters.blockProvider) {\n blocks = blocks.filter((block) =>\n block.name\n .split(\"/\")[0]\n .toLowerCase()\n .includes(filters.blockProvider.toLowerCase())\n );\n }\n\n /**\n * Conditional Blocks Integration.\n */\n if (filters.hasConditionalBlocks) {\n blocks = blocks\n .map((block) => {\n // Filter out posts that do not have hasConditionalBlocks\n const filteredPosts = block.posts.filter(\n (post) => post.hasConditionalBlocks\n );\n // Return the block with the filtered posts, or null if no posts left\n return filteredPosts.length > 0\n ? { ...block, posts: filteredPosts }\n : null;\n })\n .filter((block) => block !== null); // Remove blocks that have no posts left\n }\n\n return blocks;\n };\n\n return {\n reset,\n foundBlocks,\n withFilters,\n setFilters,\n isLoading,\n error,\n startSearch,\n abortSearch,\n progress,\n postsWithBlock,\n };\n};\n\n/**\n * Merge blocks from different requests.\n * @param {Array} blocks - The blocks to merge.\n * @returns {Array} The merged blocks.\n */\nconst mergeBlocks = (blocks) => {\n const blockMap = new Map();\n\n blocks.forEach((newBlock) => {\n if (blockMap.has(newBlock.name)) {\n // Merge posts if the block already exists\n const existingBlock = blockMap.get(newBlock.name);\n newBlock.posts.forEach((newPost) => {\n const existingPostIndex = existingBlock.posts.findIndex(\n (post) => post.id === newPost.id\n );\n if (existingPostIndex !== -1) {\n // Combine the count if the post already exists\n existingBlock.posts[existingPostIndex].count += newPost.count;\n } else {\n // Add the new post if it doesn't exist\n existingBlock.posts.push(newPost);\n }\n });\n } else {\n // Add the new block if it doesn't exist\n blockMap.set(newBlock.name, {\n ...newBlock,\n posts: [...newBlock.posts],\n });\n }\n });\n\n // Convert the map back to an array\n return Array.from(blockMap.values());\n};\n","import { useState, useEffect, useCallback } from \"@wordpress/element\";\n/**\n * Helper for setting local storage. useEffect to prevent hydration errors.\n * @param {*} key\n * @returns\n */\n// A simple pub-sub mechanism for preferences\nconst preferenceSubscribers = new Map();\n\nconst notifyPreferenceSubscribers = (key, value) => {\n const callbacks = preferenceSubscribers.get(key) || [];\n callbacks.forEach((callback) => callback(value));\n};\n\nconst subscribeToPreference = (key, callback) => {\n if (!preferenceSubscribers.has(key)) {\n preferenceSubscribers.set(key, []);\n }\n preferenceSubscribers.get(key).push(callback);\n};\n\nconst unsubscribeFromPreference = (key, callback) => {\n const callbacks = preferenceSubscribers.get(key) || [];\n const index = callbacks.indexOf(callback);\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n};\n\n/**\n * Helper for setting local storage. useEffect to prevent hydration errors.\n * @param {*} key\n * @returns\n */\nexport const useLocalStorage = (key, defaultValue) => {\n const [data, setData] = useState(defaultValue);\n const [initialLoad, setInitialLoad] = useState(true);\n\n useEffect(() => {\n if (initialLoad) {\n setInitialLoad(false);\n const existingData = JSON.parse(localStorage.getItem(key));\n setData(existingData ?? defaultValue);\n }\n }, [initialLoad, key, defaultValue]);\n\n useEffect(() => {\n const handleDataChange = (newData) => {\n setData(newData);\n };\n\n subscribeToPreference(key, handleDataChange);\n\n return () => {\n unsubscribeFromPreference(key, handleDataChange);\n };\n }, [key]);\n\n const saveDataToLocalStorage = useCallback(\n (newData) => {\n localStorage.setItem(key, JSON.stringify(newData));\n notifyPreferenceSubscribers(key, newData);\n },\n [key]\n );\n\n return [data, saveDataToLocalStorage];\n};\n","/**\n * Global fmbGlobal\n */\nimport { useLocalStorage } from \"./useLocalStorage.js\";\n/**\n * Store preferences & settings in local storage.\n */\nexport const usePreferences = () => {\n const [selectedBlock, setSelectedBlock] = useLocalStorage(\n \"fmb_selected_block\",\n \"\"\n );\n const [postsPerRun, setPostsPerRun] = useLocalStorage(\n \"fmb_posts_per_run\",\n 10\n );\n const [cachedFoundBlocks, setCachedFoundBlocks] = useLocalStorage(\n \"fmb_found_blocks\",\n false\n );\n const [selectedProvider, setSelectedProvider] = useLocalStorage(\n \"fmb_selected_provider\",\n false\n );\n const [versionCache, setVersionCache] = useLocalStorage(\n \"fmb_version_cache\",\n false\n );\n const [conditionalBlocks, setConditionalBlocks] = useLocalStorage(\n \"fmb_conditional_blocks\",\n false\n );\n\n return {\n cachedFoundBlocks:\n fmbGlobal.version === versionCache ? cachedFoundBlocks : false,\n setCachedFoundBlocks: (value) => {\n setVersionCache(fmbGlobal.version);\n setSelectedProvider(false);\n setSelectedBlock(false);\n setConditionalBlocks(false);\n setCachedFoundBlocks(value);\n },\n selectedBlock,\n setSelectedBlock,\n selectedProvider,\n setSelectedProvider,\n postsPerRun: parseInt(postsPerRun),\n setPostsPerRun,\n conditionalBlocks,\n setConditionalBlocks,\n };\n};\n","/**\n * global fmbGlobal\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport { CardGrid } from \"../components/PostCards/PostCards.js\";\nimport BlockNavigation from \"../components/BlockNavigation/index.js\";\nimport { useFindMyBlocks } from \"../context/FindMyBlocksContext.js\";\nimport { getUniqueProviders } from \"../utils/functions.js\";\nimport {\n Button,\n ExternalLink,\n RadioControl,\n Notice,\n ComboboxControl,\n SearchControl,\n CheckboxControl,\n} from \"@wordpress/components\";\n\n/**\n * Overview Page.\n */\nfunction SearchPage() {\n const { finder, preferences } = useFindMyBlocks();\n\n const {\n foundBlocks,\n startSearch,\n abortSearch,\n progress,\n isLoading,\n error,\n postsWithBlock,\n } = finder;\n\n const { selectedBlock, postsPerRun, setPostsPerRun } = preferences;\n\n if (isLoading)\n return (\n <div className=\"fmb-bento-container\">\n <div className=\"fmb-bento-grid\">\n <div className=\"fmb-box fmb-box-full\">\n <h2>{__(\"Searching for your blocks...\", \"find-my-blocks\")}</h2>\n <p>\n {__(\"Progress:\", \"find-my-blocks\")} {progress.percentage}%\n </p>\n <p>\n {__(\"Scanning batch\", \"find-my-blocks\")} {progress.currentPage}{\" \"}\n {__(\"out of\", \"find-my-blocks\")} {progress.totalPages}\n </p>\n <p>\n {__(\"Total block instances detected:\", \"find-my-blocks\")}{\" \"}\n {progress.totalBlocks}\n {\" \" + __(\"in\", \"find-my-blocks\")} {progress.totalScannedPosts}\n {\" \" + __(\"locations.\", \"find-my-blocks\")}\n </p>\n <Button\n onClick={() => abortSearch()}\n isDestructive\n isPrimary\n disabled={!isLoading}\n >\n {__(\"Abort Search\", \"find-my-blocks\")}\n </Button>\n </div>\n </div>\n </div>\n );\n\n const posts = postsWithBlock(selectedBlock);\n\n if (!error && foundBlocks.length > 0) {\n return (\n <Fragment>\n <div className=\"fmb-container\">\n <div className=\"fmb-grid-results-page\">\n <div className=\"fmb-box\">\n <h2>{__(\"Filters\", \"find-my-blocks\")}</h2>\n <div className=\"fmb-search-filters\">\n <SearchFilter />\n <BlockProviderFilter />\n {fmbGlobal?.conditional_blocks_installed && (\n <ConditionalBlocksFilter />\n )}\n </div>\n <h2>{__(\"Found Blocks\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"The below blocks have been detected during the scan.\",\n \"find-my-blocks\"\n )}\n </p>\n <nav className=\"fmb-side-navigation\">\n <BlockNavigation />\n </nav>\n </div>\n\n <div>\n {selectedBlock && (\n <Fragment>\n <h2>\n <span className=\"fmb-badge\">{selectedBlock}</span>\n </h2>\n {posts?.length > 0 && (\n <p>\n {__(\"Instances of the\", \"find-my-blocks\")}{\" \"}\n <b>{selectedBlock}</b>{\" \"}\n {__(\"block has been found in these\", \"find-my-blocks\")}{\" \"}\n {posts.length ?? 0} {__(\"locations.\", \"find-my-blocks\")}\n </p>\n )}\n </Fragment>\n )}\n <CardGrid blockName={selectedBlock} posts={posts}></CardGrid>\n </div>\n </div>\n </div>\n </Fragment>\n );\n }\n\n return (\n <Fragment>\n <ErrorNotice error={error} />\n <div className=\"fmb-bento-container\">\n <div className=\"fmb-bento-grid\">\n <div className=\"fmb-box fmb-box-full\">\n <h2>{__(\"Get Started\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"Find My Blocks will search through all your templates, posts and pages to find the WordPress blocks.\",\n \"find-my-blocks\"\n )}\n </p>\n\n <RadioControl\n className=\"fmb-performance-control\"\n label=\"Performance\"\n help={__(\n \"Warning! Choose the performance level that matches your server. Fetching too may posts at once may temporarily crash your site.\",\n \"find-my-blocks\"\n )}\n onChange={(val) => {\n setPostsPerRun(val);\n }}\n options={[\n {\n label: __(\n \"Low (Recommended for most sites, 10 post per run)\",\n \"find-my-blocks\"\n ),\n value: 10,\n },\n {\n label: __(\"Standard (100 posts per run)\", \"find-my-blocks\"),\n value: 100,\n },\n {\n label: __(\"Ultra (500 posts per run)\", \"find-my-blocks\"),\n value: 500,\n },\n ]}\n selected={postsPerRun ?? 10}\n />\n\n <Button\n onClick={() => startSearch()}\n isPrimary\n disabled={isLoading}\n >\n {__(\"Start Search\", \"find-my-blocks\")}\n </Button>\n </div>\n <div className=\"fmb-box\">\n <h2>{__(\"Block Tools & Resources\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"Create faster & better WordPress sites with block tutorials from experts.\",\n \"find-my-blocks\"\n )}\n </p>\n <ul>\n <li>\n <ExternalLink\n href=\"https://findmyblocks.com?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n findmyblocks.com\n </ExternalLink>\n </li>\n <li>\n <ExternalLink\n href=\"https://conditionalblocks.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n Conditional Blocks plugin\n </ExternalLink>\n </li>\n <li>\n <ExternalLink\n href=\"https://morganhvidt.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n @MorganHvidt\n </ExternalLink>\n {__(\"(Developer) \", \"find-my-blocks\")}\n </li>\n </ul>\n </div>\n <div className=\"fmb-box\">\n <h2>{__(\"Support Development\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"I'm building Find My Blocks in my free time. If you find it useful, please consider donating, or contributing to the project.\",\n \"find-my-blocks\"\n )}{\" \"}\n <em>- Morgan Hvidt</em>\n </p>\n <div style={{ marginTop: \"30px\" }}>\n <Button\n isSecondary\n target=\"_blank\"\n href=\"https://github.com/morganhvidt/find-my-blocks/\"\n >\n {__(\"Contribute on Github\", \"find-my-blocks\")}\n </Button>{\" \"}\n <Button\n style={{ marginLeft: \"10px\" }}\n isSecondary\n target=\"_blank\"\n href=\"https://morganhvidt.com/donate/\"\n >\n {__(\"Donate to development\", \"find-my-blocks\")}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Fragment>\n );\n}\n\nconst ErrorNotice = ({ error }) => {\n if (error) {\n return <Notice status=\"error\">{error.message}</Notice>;\n }\n\n return null;\n};\n\nfunction SearchFilter({ className }) {\n const { finder, preferences } = useFindMyBlocks();\n\n const [searchInput, setSearchInput] = useState(\"\");\n\n const handleSearch = (value) => {\n setSearchInput(value);\n finder.setFilters((prev) => ({\n ...prev,\n name: value.length ? value : false,\n }));\n };\n\n return <SearchControl value={searchInput} onChange={handleSearch} />;\n}\n\n/**\n * Component for filtering block providers.\n */\nfunction BlockProviderFilter() {\n const { finder, preferences } = useFindMyBlocks();\n\n const [blockProvider, setBlockProvider] = useState(\n preferences?.selectedProvider ?? false\n );\n\n const handleChange = (value) => {\n setBlockProvider(value);\n preferences?.setSelectedProvider(value);\n finder.setFilters((prev) => ({\n ...prev,\n blockProvider: value ?? false,\n }));\n };\n\n const providers = getUniqueProviders(finder.foundBlocks);\n\n return (\n <ComboboxControl\n allowReset\n label=\"Block Provider\"\n help=\"Core or third-party block providers\"\n value={blockProvider}\n onChange={handleChange}\n options={providers}\n onFilterValueChange={(inputValue) =>\n setBlockProvider(\n providers.filter((option) =>\n option.label.toLowerCase().startsWith(inputValue.toLowerCase())\n )\n )\n }\n />\n );\n}\n/**\n * Conditional Blocks Integration.\n */\nconst ConditionalBlocksFilter = () => {\n const { finder, preferences } = useFindMyBlocks();\n\n const [isChecked, setChecked] = useState(\n preferences?.conditionalBlocks ? true : false\n );\n\n const handleChange = (value) => {\n setChecked(value ? true : false);\n preferences?.setConditionalBlocks(value ? true : false);\n finder.setFilters((prev) => ({\n ...prev,\n hasConditionalBlocks: value ? true : false,\n }));\n };\n\n return (\n <CheckboxControl\n label=\"Conditional Blocks\"\n help={__(\n \"Only blocks with visibility changed by the Conditional Blocks plugin\",\n \"find-my-blocks\"\n )}\n checked={isChecked}\n onChange={handleChange}\n />\n );\n};\n\nexport default SearchPage;\n","/**\n * Get unique providers from a list of blocks.\n * @param {Array} blocks - The list of blocks.\n * @returns {Array} The unique providers.\n */\nexport function getUniqueProviders(blocks) {\n return blocks.reduce((uniqueProviders, block) => {\n const provider = block.name.split(\"/\")[0] ?? false;\n if (!uniqueProviders.some((prov) => prov.value === provider)) {\n uniqueProviders.push({ value: provider, label: provider });\n }\n return uniqueProviders;\n }, []);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * global fmbGlobal\n */\nimport { Fragment, render, createRoot } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport SearchPage from \"./pages/SearchPage.js\";\nimport { FindMyBlocksProvider } from \"./context/FindMyBlocksContext.js\";\nimport PageHeader from \"./components/PageHeader/PageHeader.js\";\n\n/**\n * Embed our App to the HTML.\n */\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const target = document.getElementById(\"find-my-blocks-app\");\n\n if (target) {\n if (createRoot) {\n createRoot(target).render(<App />);\n } else {\n render(<App />, target);\n }\n }\n});\n\n/**\n * Render Our App.\n */\nexport function App() {\n return (\n <Fragment>\n <FindMyBlocksProvider>\n <PageHeader />\n <SearchPage />\n </FindMyBlocksProvider>\n </Fragment>\n );\n}\n"],"names":["module","exports","window","BlockNavigation","finder","preferences","useFindMyBlocks","setSelectedBlock","foundBlocks","withFilters","currentActive","setCurrentActive","useState","filteredBlocks","createElement","className","style","navigation","map","block","key","name","active","onClick","handleLinkClick","blockName","subtitle","__","posts","length","PageHeader","children","isLoading","reset","startSearch","wrapper","header","container","logo","src","Logo","alt","headerNavigation","Button","icon","isPrimary","disabled","DropdownMenu","label","onClose","Fragment","MenuGroup","MenuItem","href","fmbGlobal","admin_url","target","Card","post","tags","hasConditionalBlocks","push","help","ExternalLink","variation","isSyncedPattern","count","isNested","nestedBlockType","getTags","WPCard","size","CardHeader","isBorderless","title","postType","isThirdPartyTemplate","templateProvider","isTertiary","post_url","edit_url","CardDivider","CardBody","tag","Tag","CardGrid","index","id","tagClass","classNames","classes","filter","Boolean","join","Icon","FindMyBlocksContext","createContext","FindMyBlocksProvider","_preferences$cachedFo","usePreferences","searchArgs","posts_per_page","postsPerRun","contextValue","useFinder","cachedFoundBlocks","setCachedFoundBlocks","Provider","value","context","useContext","Error","filtersDefault","blockProvider","setFoundBlocks","filters","setFilters","setIsLoading","error","setError","progress","setProgress","currentPage","totalPages","percentage","totalPosts","totalBlocks","totalScannedPosts","sortOrder","setSortOrder","abortControllerRef","useRef","current","abort","firstLoad","useEffect","changeBlockSorting","order","sortedBlocks","sort","a","b","localeCompare","forEach","Array","isArray","blocks","toLowerCase","includes","split","filteredPosts","async","controller","AbortController","localBatchResults","totalBlockInstances","signal","aborted","timeoutId","setTimeout","queryString","URLSearchParams","paged","toString","searchResponse","apiFetch","path","clearTimeout","Promise","resolve","data","scanned_posts","total_posts","total_pages","reduce","sum","Math","round","concat","console","mergedBlocks","mergeBlocks","log","abortSearch","postsWithBlock","find","blockMap","Map","newBlock","has","existingBlock","get","newPost","existingPostIndex","findIndex","set","from","values","preferenceSubscribers","useLocalStorage","defaultValue","setData","initialLoad","setInitialLoad","existingData","JSON","parse","localStorage","getItem","handleDataChange","newData","subscribeToPreference","callback","unsubscribeFromPreference","callbacks","indexOf","splice","useCallback","setItem","stringify","notifyPreferenceSubscribers","selectedBlock","setPostsPerRun","selectedProvider","setSelectedProvider","versionCache","setVersionCache","conditionalBlocks","setConditionalBlocks","version","parseInt","ErrorNotice","Notice","status","message","SearchFilter","searchInput","setSearchInput","SearchControl","onChange","prev","BlockProviderFilter","_preferences$selected","setBlockProvider","providers","getUniqueProviders","ComboboxControl","allowReset","options","onFilterValueChange","inputValue","option","startsWith","ConditionalBlocksFilter","isChecked","setChecked","CheckboxControl","checked","isDestructive","_posts$length","conditional_blocks_installed","RadioControl","val","selected","marginTop","isSecondary","marginLeft","uniqueProviders","_block$name$split$","provider","some","prov","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","App","SearchPage","document","addEventListener","getElementById","createRoot","render"],"sourceRoot":""}1 {"version":3,"file":"find-my-blocks.js","mappings":"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","sources":["webpack://find-my-blocks/./src/assets/images/find-my-blocks-logo-full.svg","webpack://find-my-blocks/./src/assets/js/components/BlockNavigation/BlockNavigation.module.css?5aa6","webpack://find-my-blocks/./src/assets/js/components/PageHeader/PageHeader.module.css?b4c4","webpack://find-my-blocks/./src/assets/js/components/Tag/Tag.module.css?f54f","webpack://find-my-blocks/external window \"React\"","webpack://find-my-blocks/external window [\"wp\",\"apiFetch\"]","webpack://find-my-blocks/external window [\"wp\",\"components\"]","webpack://find-my-blocks/external window [\"wp\",\"element\"]","webpack://find-my-blocks/external window [\"wp\",\"i18n\"]","webpack://find-my-blocks/./src/assets/js/components/BlockNavigation/index.js","webpack://find-my-blocks/./src/assets/js/components/PageHeader/PageHeader.js","webpack://find-my-blocks/./src/assets/js/components/PostCards/PostCards.js","webpack://find-my-blocks/./src/assets/js/components/Tag/Tag.js","webpack://find-my-blocks/./src/assets/js/context/FindMyBlocksContext.js","webpack://find-my-blocks/./src/assets/js/hooks/useFinder.js","webpack://find-my-blocks/./src/assets/js/hooks/useLocalStorage.js","webpack://find-my-blocks/./src/assets/js/hooks/usePreferences.js","webpack://find-my-blocks/./src/assets/js/pages/SearchPage.js","webpack://find-my-blocks/./src/assets/js/utils/functions.js","webpack://find-my-blocks/webpack/bootstrap","webpack://find-my-blocks/webpack/runtime/compat get default export","webpack://find-my-blocks/webpack/runtime/define property getters","webpack://find-my-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://find-my-blocks/./src/assets/js/find-my-blocks.js"],"sourcesContent":["var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgFindMyBlocksLogoFull = function SvgFindMyBlocksLogoFull(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 394,\n height: 100,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E22F22\",\n d: \"M104.507 62q-.718 0-1.113-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h13.19q.716 0 1.111.39.394.39.394 1.097 0 .708-.394 1.098-.395.39-1.111.389h-11.684v7.433h7.204q.716 0 1.111.39.394.39.394 1.097 0 .708-.394 1.097-.395.39-1.111.39h-7.204v9.132q0 .708-.395 1.098-.393.39-1.111.389zm19.914 0q-.789 0-1.147-.354-.359-.354-.359-1.133v-20.99q0-.78.359-1.133.358-.354 1.147-.354.788 0 1.146.354.359.354.359 1.133v20.99q0 .78-.359 1.133-.358.354-1.146.354m27.131-24q.717 0 1.111.39t.394 1.097v21.026q0 .708-.394 1.098t-1.111.389q-.43 0-.789-.212a2.7 2.7 0 0 1-.717-.673l-13.655-17.38v16.778q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39.43 0 .753.213.358.213.752.673l13.655 17.38V39.487q0-.708.395-1.097.394-.39 1.111-.39m10.459 24q-.717 0-1.111-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h8.638q4.695 0 6.881 2.195 2.222 2.16 2.222 6.797v6.017q0 4.637-2.222 6.832Q175.344 62 170.649 62zm8.638-2.973q2.329 0 3.62-.567a3.52 3.52 0 0 0 1.899-1.84q.574-1.31.574-3.61v-6.018q0-2.301-.574-3.576a3.5 3.5 0 0 0-1.899-1.876q-1.291-.566-3.62-.566h-7.133v18.053zM218.932 38q1.218 0 1.218 1.486v21.026q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V44.124l-6.595 9.593q-.359.495-.788.743a2.3 2.3 0 0 1-1.04.213q-.43 0-.788-.213a3.6 3.6 0 0 1-.681-.743l-6.631-9.628v16.424q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39 1.004.001 1.649.956l8.171 12.142 8.172-12.142q.609-.955 1.828-.955m25.372.354q.788.495.788 1.168 0 .424-.322.85l-8.53 12.92v7.22q0 .708-.395 1.098-.394.39-1.111.389-.717 0-1.111-.39-.394-.389-.394-1.097v-7.22l-8.207-12.92q-.288-.496-.287-.886 0-.742.753-1.203.501-.283.896-.283.68 0 1.182.743l7.168 11.362 7.527-11.362q.43-.708 1.147-.708.43 0 .896.319m31.886 10.017q2.83 1.629 2.831 5.77v1.203q0 3.257-1.756 4.956-1.72 1.7-5.018 1.699h-9.82q-.717 0-1.111-.39-.394-.389-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39h9.354q2.832 0 4.373 1.487 1.54 1.486 1.541 4.248v.956q0 1.133-.394 2.088a4.3 4.3 0 0 1-1.111 1.593m-12.258-.85h8.96q.933-.105 1.362-.849.43-.78.43-1.982v-.956q0-1.522-.645-2.124-.644-.637-2.258-.637h-7.849zm12.078 6.62q0-1.983-.86-2.797-.86-.85-2.903-.85h-8.315v8.532h8.315q2.007 0 2.867-.85.897-.849.896-2.832zM286.543 62q-1.505 0-1.505-1.487V39.487q0-1.486 1.505-1.486t1.505 1.486v19.54h9.928q1.505 0 1.505 1.486 0 1.487-1.505 1.487zm24.354 0q-4.122 0-6.093-1.911-1.937-1.947-1.937-6.018v-8.177q0-4.071 1.973-5.982 1.971-1.947 6.057-1.911h4.299q4.122 0 6.057 1.947 1.974 1.911 1.973 5.982v8.141q0 4.071-1.973 6.018Q319.318 62 315.196 62zm4.299-2.973q1.972 0 3.012-.46a2.86 2.86 0 0 0 1.54-1.487q.467-1.062.466-3.009V45.93q.001-1.912-.466-2.974a2.85 2.85 0 0 0-1.54-1.522q-1.076-.46-3.012-.46h-4.299q-1.937-.036-3.012.425a2.84 2.84 0 0 0-1.54 1.522q-.466 1.062-.466 2.973v8.177q0 1.946.466 3.009a2.87 2.87 0 0 0 1.504 1.486q1.075.46 3.048.46zM336.97 62q-4.12 0-6.092-1.911-1.936-1.947-1.936-6.018V45.93q0-4.071 1.936-6.018 1.971-1.947 6.057-1.911h4.336q3.37 0 5.126 1.38 1.791 1.38 2.078 4.319.107.743-.286 1.132-.395.39-1.147.39-.717 0-1.111-.354-.359-.39-.466-1.133-.18-1.593-1.111-2.16-.933-.6-3.083-.601h-4.336q-1.936-.036-3.011.425a2.85 2.85 0 0 0-1.541 1.522q-.43 1.061-.43 3.009v8.141q0 1.946.466 3.009.465 1.026 1.505 1.486 1.075.46 3.046.46h4.301q2.15 0 3.083-.566.931-.6 1.111-2.194.107-.744.466-1.098.394-.39 1.111-.389.752 0 1.147.39.393.389.286 1.132-.287 2.938-2.078 4.319Q344.64 62 341.271 62zm33.45-2.584q.394.495.394.991 0 .637-.609 1.097a1.45 1.45 0 0 1-1.004.39q-.645 0-1.111-.602l-8.78-10.725-1.542 1.593v8.353q0 .708-.394 1.098t-1.111.389-1.111-.39-.394-1.097V39.487q0-.708.394-1.097.394-.39 1.111-.39t1.111.39q.394.39.394 1.097v8.425l9.14-9.345q.537-.531 1.075-.531t1.039.496q.538.531.538 1.062 0 .53-.502 1.026l-7.598 7.787zM381.85 62q-3.083 0-4.802-1.203-1.684-1.24-2.115-3.788-.072-.743.322-1.133.395-.424 1.147-.424.717 0 1.076.354.358.318.501 1.097.252 1.204 1.111 1.663.897.46 2.76.46h5.161q1.577 0 2.401-.353a2.164 2.164 0 0 0 1.219-1.168q.358-.85.358-2.372 0-2.266-.86-3.115t-3.118-.85h-4.444q-3.37 0-5.018-1.628t-1.648-4.99q0-3.33 1.612-4.921Q379.163 38 382.531 38h4.265q5.663 0 6.523 4.672.108.744-.287 1.168-.394.39-1.182.39-.717 0-1.076-.354-.358-.354-.466-1.098-.286-1.026-1.075-1.416t-2.437-.389h-4.265q-1.47 0-2.258.319a1.97 1.97 0 0 0-1.075 1.097q-.287.743-.287 2.16 0 1.45.323 2.23.322.742 1.075 1.096.789.32 2.258.32h4.444q3.549 0 5.269 1.698 1.72 1.7 1.72 5.239 0 3.504-1.72 5.203Q390.56 62 387.011 62zM36.736 0 0 19.258l.471 44.315 22.37 12.761L36.972 100 50.63 76.334 73 63.69v-44.2zM29.67 64.27l-15.306-8.585V35.498l15.306 9.049V64.27M21.9 23.433l14.835-7.657 14.6 7.657-14.6 8.585zm36.971 32.25L43.8 64.27V44.548l15.071-8.817z\"\n })));\n};\nexport { SvgFindMyBlocksLogoFull as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzk0IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDM5NCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMDQuNTA3IDYyQzEwNC4wMjkgNjIgMTAzLjY1NyA2MS44NzAyIDEwMy4zOTQgNjEuNjEwNkMxMDMuMTMxIDYxLjM1MSAxMDMgNjAuOTg1MyAxMDMgNjAuNTEzM1YzOS40ODczQzEwMyAzOS4wMTU0IDEwMy4xMzEgMzguNjQ5NiAxMDMuMzk0IDM4LjM5QzEwMy42NTcgMzguMTMwNCAxMDQuMDI3IDM4LjAwMDYgMTA0LjUwNSAzOC4wMDA2SDExNy42OTVDMTE4LjE3MiAzOC4wMDA2IDExOC41NDMgMzguMTMwNCAxMTguODA2IDM4LjM5QzExOS4wNjggMzguNjQ5NiAxMTkuMiAzOS4wMTU0IDExOS4yIDM5LjQ4NzNDMTE5LjIgMzkuOTU5MyAxMTkuMDY4IDQwLjMyNTEgMTE4LjgwNiA0MC41ODQ2QzExOC41NDMgNDAuODQ0MiAxMTguMTcyIDQwLjk3NCAxMTcuNjk1IDQwLjk3NEgxMDYuMDExVjQ4LjQwNzRIMTEzLjIxNUMxMTMuNjkyIDQ4LjQwNzQgMTE0LjA2MyA0OC41MzcyIDExNC4zMjYgNDguNzk2OEMxMTQuNTg4IDQ5LjA1NjQgMTE0LjcyIDQ5LjQyMjIgMTE0LjcyIDQ5Ljg5NDFDMTE0LjcyIDUwLjM2NjEgMTE0LjU4OCA1MC43MzE5IDExNC4zMjYgNTAuOTkxNEMxMTQuMDYzIDUxLjI1MSAxMTMuNjkyIDUxLjM4MDggMTEzLjIxNSA1MS4zODA4SDEwNi4wMTFWNjAuNTEzM0MxMDYuMDExIDYwLjk4NTMgMTA1Ljg3OSA2MS4zNTEgMTA1LjYxNiA2MS42MTA2QzEwNS4zNTQgNjEuODcwMiAxMDQuOTgzIDYyIDEwNC41MDUgNjJIMTA0LjUwN1pNMTI0LjQyMSA2MkMxMjMuODk1IDYyIDEyMy41MTMgNjEuODgyIDEyMy4yNzQgNjEuNjQ2QzEyMy4wMzUgNjEuNDEgMTIyLjkxNSA2MS4wMzI1IDEyMi45MTUgNjAuNTEzM1YzOS41MjI3QzEyMi45MTUgMzkuMDAzNiAxMjMuMDM1IDM4LjYyNiAxMjMuMjc0IDM4LjM5QzEyMy41MTMgMzguMTU0IDEyMy44OTUgMzguMDM2IDEyNC40MjEgMzguMDM2QzEyNC45NDYgMzguMDM2IDEyNS4zMjkgMzguMTU0IDEyNS41NjcgMzguMzlDMTI1LjgwNiAzOC42MjYgMTI1LjkyNiAzOS4wMDM2IDEyNS45MjYgMzkuNTIyN1Y2MC41MTMzQzEyNS45MjYgNjEuMDMyNSAxMjUuODA2IDYxLjQxIDEyNS41NjcgNjEuNjQ2QzEyNS4zMjkgNjEuODgyIDEyNC45NDYgNjIgMTI0LjQyMSA2MlpNMTUxLjU1MiAzOC4wMDA2QzE1Mi4wMyAzOC4wMDA2IDE1Mi40IDM4LjEzMDQgMTUyLjY2MyAzOC4zOUMxNTIuOTI2IDM4LjY0OTYgMTUzLjA1NyAzOS4wMTU0IDE1My4wNTcgMzkuNDg3M1Y2MC41MTMzQzE1My4wNTcgNjAuOTg1MyAxNTIuOTI2IDYxLjM1MSAxNTIuNjYzIDYxLjYxMDZDMTUyLjQgNjEuODcwMiAxNTIuMDMgNjIgMTUxLjU1MiA2MkMxNTEuMjY1IDYyIDE1MS4wMDIgNjEuOTI5MiAxNTAuNzYzIDYxLjc4NzZDMTUwLjQ4NCA2MS42MDkxIDE1MC4yNDEgNjEuMzgxMSAxNTAuMDQ2IDYxLjExNTFMMTM2LjM5MSA0My43MzVWNjAuNTEzM0MxMzYuMzkxIDYwLjk4NTMgMTM2LjI2IDYxLjM1MSAxMzUuOTk3IDYxLjYxMDZDMTM1LjczNCA2MS44NzAyIDEzNS4zNjQgNjIgMTM0Ljg4NiA2MkMxMzQuNDA4IDYyIDEzNC4wMzggNjEuODcwMiAxMzMuNzc1IDYxLjYxMDZDMTMzLjUxMiA2MS4zNTEgMTMzLjM4MSA2MC45ODUzIDEzMy4zODEgNjAuNTEzM1YzOS40ODczQzEzMy4zODEgMzkuMDE1NCAxMzMuNTEyIDM4LjY0OTYgMTMzLjc3NSAzOC4zOUMxMzQuMDM4IDM4LjEzMDQgMTM0LjQwOCAzOC4wMDA2IDEzNC44ODYgMzguMDAwNkMxMzUuMTczIDM4LjAwMDYgMTM1LjQyNCAzOC4wNzE0IDEzNS42MzkgMzguMjEzQzEzNS44NzggMzguMzU0NiAxMzYuMTI4IDM4LjU3ODggMTM2LjM5MSAzOC44ODU2TDE1MC4wNDYgNTYuMjY1NlYzOS40ODczQzE1MC4wNDYgMzkuMDE1NCAxNTAuMTc4IDM4LjY0OTYgMTUwLjQ0MSAzOC4zOUMxNTAuNzA0IDM4LjEzMDQgMTUxLjA3NCAzOC4wMDA2IDE1MS41NTIgMzguMDAwNlpNMTYyLjAxMSA2MkMxNjEuNTMzIDYyIDE2MS4xNjMgNjEuODcwMiAxNjAuOSA2MS42MTA2QzE2MC42MzcgNjEuMzUxIDE2MC41MDYgNjAuOTg1MyAxNjAuNTA2IDYwLjUxMzNWMzkuNDg3M0MxNjAuNTA2IDM5LjAxNTQgMTYwLjYzNyAzOC42NDk2IDE2MC45IDM4LjM5QzE2MS4xNjMgMzguMTMwNCAxNjEuNTMzIDM4LjAwMDYgMTYyLjAxMSAzOC4wMDA2SDE3MC42NDlDMTczLjc3OSAzOC4wMDA2IDE3Ni4wNzMgMzguNzMyMiAxNzcuNTMgNDAuMTk1M0MxNzkuMDExIDQxLjYzNDggMTc5Ljc1MiA0My45MDAyIDE3OS43NTIgNDYuOTkxNVY1My4wMDkxQzE3OS43NTIgNTYuMTAwNCAxNzkuMDExIDU4LjM3NzcgMTc3LjUzIDU5Ljg0MDhDMTc2LjA3MyA2MS4yODAyIDE3My43NzkgNjIgMTcwLjY0OSA2MkgxNjIuMDExWk0xNzAuNjQ5IDU5LjAyNjZDMTcyLjIwMiA1OS4wMjY2IDE3My40MDggNTguODM3OCAxNzQuMjY5IDU4LjQ2MDNDMTc1LjEyIDU4LjExNDEgMTc1LjgwMiA1Ny40NTM5IDE3Ni4xNjggNTYuNjE5NkMxNzYuNTUgNTUuNzQ2NSAxNzYuNzQyIDU0LjU0MyAxNzYuNzQyIDUzLjAwOTFWNDYuOTkxNUMxNzYuNzQyIDQ1LjQ1NzcgMTc2LjU1IDQ0LjI2NiAxNzYuMTY4IDQzLjQxNjRDMTc1LjgxMSA0Mi41Njc5IDE3NS4xMjggNDEuODkzNSAxNzQuMjY5IDQxLjU0MDRDMTczLjQwOCA0MS4xNjI4IDE3Mi4yMDIgNDAuOTc0IDE3MC42NDkgNDAuOTc0SDE2My41MTZWNTkuMDI2NkgxNzAuNjQ5Wk0yMTguOTMyIDM4LjAwMDZDMjE5Ljc0NCAzOC4wMDA2IDIyMC4xNSAzOC40OTYyIDIyMC4xNSAzOS40ODczVjYwLjUxMzNDMjIwLjE1IDYwLjk4NTMgMjIwLjAxOSA2MS4zNTEgMjE5Ljc1NiA2MS42MTA2QzIxOS40OTMgNjEuODcwMiAyMTkuMTIzIDYyIDIxOC42NDUgNjJDMjE4LjE2NyA2MiAyMTcuNzk3IDYxLjg3MDIgMjE3LjUzNCA2MS42MTA2QzIxNy4yNzEgNjEuMzUxIDIxNy4xNCA2MC45ODUzIDIxNy4xNCA2MC41MTMzVjQ0LjEyNDRMMjEwLjU0NSA1My43MTdDMjEwLjMwNiA1NC4wNDc0IDIxMC4wNDMgNTQuMjk1MiAyMDkuNzU3IDU0LjQ2MDRDMjA5LjQzMiA1NC42MTAxIDIwOS4wNzYgNTQuNjgyOCAyMDguNzE3IDU0LjY3MjhDMjA4LjQzIDU0LjY3MjggMjA4LjE2OCA1NC42MDIgMjA3LjkyOSA1NC40NjA0QzIwNy42NjcgNTQuMjQ1NSAyMDcuNDM4IDUzLjk5NTIgMjA3LjI0OCA1My43MTdMMjAwLjYxNyA0NC4wODlWNjAuNTEzM0MyMDAuNjE3IDYwLjk4NTMgMjAwLjQ4NiA2MS4zNTEgMjAwLjIyMyA2MS42MTA2QzE5OS45NiA2MS44NzAyIDE5OS41OSA2MiAxOTkuMTEyIDYyQzE5OC42MzQgNjIgMTk4LjI2NCA2MS44NzAyIDE5OC4wMDEgNjEuNjEwNkMxOTcuNzM4IDYxLjM1MSAxOTcuNjA3IDYwLjk4NTMgMTk3LjYwNyA2MC41MTMzVjM5LjQ4NzNDMTk3LjYwNyAzOS4wMTU0IDE5Ny43MzggMzguNjQ5NiAxOTguMDAxIDM4LjM5QzE5OC4yNjQgMzguMTMwNCAxOTguNjM0IDM4LjAwMDYgMTk5LjExMiAzOC4wMDA2QzE5OS43ODEgMzguMDAwNiAyMDAuMzMxIDM4LjMxOTIgMjAwLjc2MSAzOC45NTY0TDIwOC45MzIgNTEuMDk3NkwyMTcuMTA0IDM4Ljk1NjRDMjE3LjUxIDM4LjMxOTIgMjE4LjExOSAzOC4wMDA2IDIxOC45MzIgMzguMDAwNlpNMjQ0LjMwNCAzOC4zNTQ2QzI0NC44MjkgMzguNjg1IDI0NS4wOTIgMzkuMDc0NCAyNDUuMDkyIDM5LjUyMjdDMjQ1LjA5MiAzOS44MDU5IDI0NC45ODUgNDAuMDg5MSAyNDQuNzcgNDAuMzcyM0wyMzYuMjQgNTMuMjkyM1Y2MC41MTMzQzIzNi4yNCA2MC45ODUzIDIzNi4xMDggNjEuMzUxIDIzNS44NDUgNjEuNjEwNkMyMzUuNTgzIDYxLjg3MDIgMjM1LjIxMiA2MiAyMzQuNzM0IDYyQzIzNC4yNTYgNjIgMjMzLjg4NiA2MS44NzAyIDIzMy42MjMgNjEuNjEwNkMyMzMuMzYgNjEuMzUxIDIzMy4yMjkgNjAuOTg1MyAyMzMuMjI5IDYwLjUxMzNWNTMuMjkyM0wyMjUuMDIyIDQwLjM3MjNDMjI0LjgzIDQwLjA0MTkgMjI0LjczNSAzOS43NDY5IDIyNC43MzUgMzkuNDg3M0MyMjQuNzM1IDM4Ljk5MTggMjI0Ljk4NiAzOC41OTA2IDIyNS40ODggMzguMjgzOEMyMjUuODIyIDM4LjA5NSAyMjYuMTIxIDM4LjAwMDYgMjI2LjM4NCAzOC4wMDA2QzIyNi44MzcgMzguMDAwNiAyMjcuMjMyIDM4LjI0ODQgMjI3LjU2NiAzOC43NDRMMjM0LjczNCA1MC4xMDY1TDI0Mi4yNjEgMzguNzQ0QzI0Mi41NDggMzguMjcyIDI0Mi45MyAzOC4wMzYgMjQzLjQwOCAzOC4wMzZDMjQzLjY5NCAzOC4wMzYgMjQzLjk5MyAzOC4xNDIyIDI0NC4zMDQgMzguMzU0NlpNMjc2LjE5IDQ4LjM3MkMyNzguMDc3IDQ5LjQ1NzYgMjc5LjAyMSA1MS4zODA4IDI3OS4wMjEgNTQuMTQxOFY1NS4zNDUzQzI3OS4wMjEgNTcuNTE2NCAyNzguNDM2IDU5LjE2ODIgMjc3LjI2NSA2MC4zMDA5QzI3Ni4xMTggNjEuNDMzNyAyNzQuNDQ1IDYyIDI3Mi4yNDcgNjJIMjYyLjQyN0MyNjEuOTQ5IDYyIDI2MS41NzkgNjEuODcwMiAyNjEuMzE2IDYxLjYxMDZDMjYxLjA1MyA2MS4zNTEgMjYwLjkyMiA2MC45ODUzIDI2MC45MjIgNjAuNTEzM1YzOS40ODczQzI2MC45MjIgMzkuMDE1NCAyNjEuMDUzIDM4LjY0OTYgMjYxLjMxNiAzOC4zOUMyNjEuNTc5IDM4LjEzMDQgMjYxLjk0OSAzOC4wMDA2IDI2Mi40MjcgMzguMDAwNkgyNzEuNzgxQzI3My42NjkgMzguMDAwNiAyNzUuMTI2IDM4LjQ5NjIgMjc2LjE1NCAzOS40ODczQzI3Ny4xODEgNDAuNDc4NCAyNzcuNjk1IDQxLjg5NDMgMjc3LjY5NSA0My43MzVWNDQuNjkwN0MyNzcuNjk1IDQ1LjQ0NTkgMjc3LjU2NCA0Ni4xNDIgMjc3LjMwMSA0Ni43NzkyQzI3Ny4wNTggNDcuMzg3IDI3Ni42NzggNDcuOTMxOSAyNzYuMTkgNDguMzcyWk0yNjMuOTMyIDQ3LjUyMjVIMjcyLjg5MkMyNzMuNTE0IDQ3LjQ1MTcgMjczLjk2OCA0Ny4xNjg1IDI3NC4yNTQgNDYuNjczQzI3NC41NDEgNDYuMTUzOCAyNzQuNjg0IDQ1LjQ5MzEgMjc0LjY4NCA0NC42OTA3VjQzLjczNUMyNzQuNjg0IDQyLjcyMDMgMjc0LjQ2OSA0Mi4wMTIzIDI3NC4wMzkgNDEuNjExMkMyNzMuNjA5IDQxLjE4NjQgMjcyLjg1NyA0MC45NzQgMjcxLjc4MSA0MC45NzRIMjYzLjkzMlY0Ny41MjI1Wk0yNzYuMDEgNTQuMTQxOEMyNzYuMDEgNTIuODIwMyAyNzUuNzI0IDUxLjg4ODIgMjc1LjE1IDUxLjM0NTRDMjc0LjU3NyA1MC43NzkxIDI3My42MDkgNTAuNDk1OSAyNzIuMjQ3IDUwLjQ5NTlIMjYzLjkzMlY1OS4wMjY2SDI3Mi4yNDdDMjczLjU4NSA1OS4wMjY2IDI3NC41NDEgNTguNzQzNSAyNzUuMTE0IDU4LjE3NzFDMjc1LjcxMiA1Ny42MTA3IDI3Ni4wMSA1Ni42NjY4IDI3Ni4wMSA1NS4zNDUzVjU0LjE0MThaTTI4Ni41NDMgNjJDMjg1LjU0IDYyIDI4NS4wMzggNjEuNTA0NCAyODUuMDM4IDYwLjUxMzNWMzkuNDg3M0MyODUuMDM4IDM4LjQ5NjIgMjg1LjU0IDM4LjAwMDYgMjg2LjU0MyAzOC4wMDA2QzI4Ny41NDcgMzguMDAwNiAyODguMDQ4IDM4LjQ5NjIgMjg4LjA0OCAzOS40ODczVjU5LjAyNjZIMjk3Ljk3NkMyOTguOTggNTkuMDI2NiAyOTkuNDgxIDU5LjUyMjIgMjk5LjQ4MSA2MC41MTMzQzI5OS40ODEgNjEuNTA0NCAyOTguOTggNjIgMjk3Ljk3NiA2MkgyODYuNTQzWk0zMTAuODk3IDYyQzMwOC4xNDkgNjIgMzA2LjExOCA2MS4zNjI4IDMwNC44MDQgNjAuMDg4NUMzMDMuNTEzIDU4Ljc5MDYgMzAyLjg2NyA1Ni43ODQ4IDMwMi44NjcgNTQuMDcxVjQ1Ljg5NDJDMzAyLjg2NyA0My4xODA0IDMwMy41MjUgNDEuMTg2NCAzMDQuODQgMzkuOTEyMUMzMDYuMTU0IDM4LjYxNDIgMzA4LjE3MyAzNy45NzcgMzEwLjg5NyAzOC4wMDA2SDMxNS4xOTZDMzE3Ljk0NCAzOC4wMDA2IDMxOS45NjMgMzguNjQ5NiAzMjEuMjUzIDM5Ljk0NzVDMzIyLjU2OSA0MS4yMjE4IDMyMy4yMjYgNDMuMjE1OCAzMjMuMjI2IDQ1LjkyOTZWNTQuMDcxQzMyMy4yMjYgNTYuNzg0OCAzMjIuNTY5IDU4Ljc5MDYgMzIxLjI1MyA2MC4wODg1QzMxOS45NjMgNjEuMzYyOCAzMTcuOTQ0IDYyIDMxNS4xOTYgNjJIMzEwLjg5N1pNMzE1LjE5NiA1OS4wMjY2QzMxNi41MTIgNTkuMDI2NiAzMTcuNTE0IDU4Ljg3MzIgMzE4LjIwOCA1OC41NjY1QzMxOC44OTcgNTguMjg2MyAzMTkuNDQ5IDU3Ljc1MzQgMzE5Ljc0OCA1Ny4wNzk4QzMyMC4wNiA1Ni4zNzE4IDMyMC4yMTQgNTUuMzY4OSAzMjAuMjE0IDU0LjA3MVY0NS45Mjk2QzMyMC4yMTQgNDQuNjU1MyAzMjAuMDYgNDMuNjY0MiAzMTkuNzQ4IDQyLjk1NjNDMzE5LjQ1OCA0Mi4yNjgyIDMxOC45MDQgNDEuNzIxMiAzMTguMjA4IDQxLjQzNDJDMzE3LjQ5MSA0MS4xMjc0IDMxNi40ODYgNDAuOTc0IDMxNS4xOTYgNDAuOTc0SDMxMC44OTdDMzA5LjYwNiA0MC45NTA0IDMwOC42MDEgNDEuMDkyIDMwNy44ODUgNDEuMzk4OEMzMDcuMTg4IDQxLjY4NTggMzA2LjYzNSA0Mi4yMzI4IDMwNi4zNDUgNDIuOTIwOUMzMDYuMDM0IDQzLjYyODggMzA1Ljg3OSA0NC42MTk5IDMwNS44NzkgNDUuODk0MlY1NC4wNzFDMzA1Ljg3OSA1NS4zNjg5IDMwNi4wMzQgNTYuMzcxOCAzMDYuMzQ1IDU3LjA3OThDMzA2LjY1NCA1Ny43NjQxIDMwNy4xNTYgNTguMjU5NyAzMDcuODQ5IDU4LjU2NjVDMzA4LjU2NSA1OC44NzMyIDMwOS41ODIgNTkuMDI2NiAzMTAuODk3IDU5LjAyNjZIMzE1LjE5NlpNMzM2Ljk3IDYyQzMzNC4yMjMgNjIgMzMyLjE5MiA2MS4zNjI4IDMzMC44NzggNjAuMDg4NUMzMjkuNTg3IDU4Ljc5MDYgMzI4Ljk0MiA1Ni43ODQ4IDMyOC45NDIgNTQuMDcxVjQ1LjkyOTZDMzI4Ljk0MiA0My4yMTU4IDMyOS41ODcgNDEuMjEgMzMwLjg3OCAzOS45MTIxQzMzMi4xOTIgMzguNjE0MiAzMzQuMjExIDM3Ljk3NyAzMzYuOTM1IDM4LjAwMDZIMzQxLjI3MUMzNDMuNTE3IDM4LjAwMDYgMzQ1LjIyNiAzOC40NjA4IDM0Ni4zOTcgMzkuMzgxMUMzNDcuNTkxIDQwLjMwMTUgMzQ4LjI4NCA0MS43NDEgMzQ4LjQ3NSA0My42OTk2QzM0OC41NDcgNDQuMTk1MiAzNDguNDUxIDQ0LjU3MjcgMzQ4LjE4OSA0NC44MzIzQzM0Ny45MjYgNDUuMDkxOSAzNDcuNTQzIDQ1LjIyMTcgMzQ3LjA0MiA0NS4yMjE3QzM0Ni41NjQgNDUuMjIxNyAzNDYuMTkzIDQ1LjEwMzcgMzQ1LjkzMSA0NC44Njc3QzM0NS42OTIgNDQuNjA4MSAzNDUuNTM2IDQ0LjIzMDYgMzQ1LjQ2NSA0My43MzVDMzQ1LjM0NSA0Mi42NzMxIDM0NC45NzUgNDEuOTUzMyAzNDQuMzU0IDQxLjU3NThDMzQzLjczMiA0MS4xNzQ2IDM0Mi43MDUgNDAuOTc0IDM0MS4yNzEgNDAuOTc0SDMzNi45MzVDMzM1LjY0NCA0MC45NTA0IDMzNC42NDEgNDEuMDkyIDMzMy45MjQgNDEuMzk4OEMzMzMuMjA3IDQxLjcwNTUgMzMyLjY5NCA0Mi4yMTI5IDMzMi4zODMgNDIuOTIwOUMzMzIuMDk2IDQzLjYyODggMzMxLjk1MyA0NC42MzE3IDMzMS45NTMgNDUuOTI5NlY1NC4wNzFDMzMxLjk1MyA1NS4zNjg5IDMzMi4xMDggNTYuMzcxOCAzMzIuNDE5IDU3LjA3OThDMzMyLjcyOSA1Ny43NjQxIDMzMy4yMzEgNTguMjU5NyAzMzMuOTI0IDU4LjU2NjVDMzM0LjY0MSA1OC44NzMyIDMzNS42NTYgNTkuMDI2NiAzMzYuOTcgNTkuMDI2NkgzNDEuMjcxQzM0Mi43MDUgNTkuMDI2NiAzNDMuNzMyIDU4LjgzNzggMzQ0LjM1NCA1OC40NjAzQzM0NC45NzUgNTguMDU5MSAzNDUuMzQ1IDU3LjMyNzYgMzQ1LjQ2NSA1Ni4yNjU2QzM0NS41MzYgNTUuNzcwMSAzNDUuNjkyIDU1LjQwNDMgMzQ1LjkzMSA1NS4xNjgzQzM0Ni4xOTMgNTQuOTA4NyAzNDYuNTY0IDU0Ljc3OSAzNDcuMDQyIDU0Ljc3OUMzNDcuNTQzIDU0Ljc3OSAzNDcuOTI2IDU0LjkwODcgMzQ4LjE4OSA1NS4xNjgzQzM0OC40NTEgNTUuNDI3OSAzNDguNTQ3IDU1LjgwNTUgMzQ4LjQ3NSA1Ni4zMDFDMzQ4LjI4NCA1OC4yNTk3IDM0Ny41OTEgNTkuNjk5MiAzNDYuMzk3IDYwLjYxOTVDMzQ1LjIyNiA2MS41Mzk4IDM0My41MTcgNjIgMzQxLjI3MSA2MkgzMzYuOTdaTTM3MC40MiA1OS40MTZDMzcwLjY4MyA1OS43NDY0IDM3MC44MTQgNjAuMDc2NyAzNzAuODE0IDYwLjQwNzFDMzcwLjgxNCA2MC44MzE5IDM3MC42MTEgNjEuMTk3NyAzNzAuMjA1IDYxLjUwNDRDMzY5LjkzNCA2MS43NTc5IDM2OS41NzQgNjEuODk3NSAzNjkuMjAxIDYxLjg5MzhDMzY4Ljc3MSA2MS44OTM4IDM2OC40MDEgNjEuNjkzMiAzNjguMDkgNjEuMjkyMUwzNTkuMzEgNTAuNTY2N0wzNTcuNzY4IDUyLjE1OTZWNjAuNTEzM0MzNTcuNzY4IDYwLjk4NTMgMzU3LjYzNyA2MS4zNTEgMzU3LjM3NCA2MS42MTA2QzM1Ny4xMTEgNjEuODcwMiAzNTYuNzQxIDYyIDM1Ni4yNjMgNjJDMzU1Ljc4NSA2MiAzNTUuNDE1IDYxLjg3MDIgMzU1LjE1MiA2MS42MTA2QzM1NC44ODkgNjEuMzUxIDM1NC43NTggNjAuOTg1MyAzNTQuNzU4IDYwLjUxMzNWMzkuNDg3M0MzNTQuNzU4IDM5LjAxNTQgMzU0Ljg4OSAzOC42NDk2IDM1NS4xNTIgMzguMzlDMzU1LjQxNSAzOC4xMzA0IDM1NS43ODUgMzguMDAwNiAzNTYuMjYzIDM4LjAwMDZDMzU2Ljc0MSAzOC4wMDA2IDM1Ny4xMTEgMzguMTMwNCAzNTcuMzc0IDM4LjM5QzM1Ny42MzcgMzguNjQ5NiAzNTcuNzY4IDM5LjAxNTQgMzU3Ljc2OCAzOS40ODczVjQ3LjkxMTlMMzY2LjkwOCAzOC41NjdDMzY3LjI2NiAzOC4yMTMgMzY3LjYyNCAzOC4wMzYgMzY3Ljk4MyAzOC4wMzZDMzY4LjM0MSAzOC4wMzYgMzY4LjY4OCAzOC4yMDEyIDM2OS4wMjIgMzguNTMxNkMzNjkuMzgxIDM4Ljg4NTYgMzY5LjU2IDM5LjIzOTUgMzY5LjU2IDM5LjU5MzVDMzY5LjU2IDM5Ljk0NzUgMzY5LjM5MyA0MC4yODk3IDM2OS4wNTggNDAuNjJMMzYxLjQ2IDQ4LjQwNzRMMzcwLjQyIDU5LjQxNlpNMzgxLjg1IDYyQzM3OS43OTUgNjIgMzc4LjE5NCA2MS41OTg4IDM3Ny4wNDggNjAuNzk2NUMzNzUuOTI1IDU5Ljk3MDYgMzc1LjIyIDU4LjcwOCAzNzQuOTMzIDU3LjAwOUMzNzQuODg1IDU2LjUxMzQgMzc0Ljk5MyA1Ni4xMzU5IDM3NS4yNTUgNTUuODc2M0MzNzUuNTE4IDU1LjU5MzEgMzc1LjkwMSA1NS40NTE1IDM3Ni40MDIgNTUuNDUxNUMzNzYuODggNTUuNDUxNSAzNzcuMjM5IDU1LjU2OTUgMzc3LjQ3OCA1NS44MDU1QzM3Ny43MTcgNTYuMDE3OSAzNzcuODg0IDU2LjM4MzYgMzc3Ljk3OSA1Ni45MDI4QzM3OC4xNDcgNTcuNzA1MSAzNzguNTE3IDU4LjI1OTcgMzc5LjA5IDU4LjU2NjVDMzc5LjY4OCA1OC44NzMyIDM4MC42MDggNTkuMDI2NiAzODEuODUgNTkuMDI2NkgzODcuMDExQzM4OC4wNjIgNTkuMDI2NiAzODguODYzIDU4LjkwODYgMzg5LjQxMiA1OC42NzI3QzM4OS42ODQgNTguNTY3NiAzODkuOTMyIDU4LjQxMDIgMzkwLjE0MSA1OC4yMDk3QzM5MC4zNSA1OC4wMDkxIDM5MC41MTcgNTcuNzY5NCAzOTAuNjMxIDU3LjUwNDVDMzkwLjg3IDU2LjkzODIgMzkwLjk4OSA1Ni4xNDc2IDM5MC45ODkgNTUuMTMyOUMzOTAuOTg5IDUzLjYyMjYgMzkwLjcwMyA1Mi41ODQzIDM5MC4xMjkgNTIuMDE4QzM4OS41NTYgNTEuNDUxNiAzODguNTE2IDUxLjE2ODQgMzg3LjAxMSA1MS4xNjg0SDM4Mi41NjdDMzgwLjMyMSA1MS4xNjg0IDM3OC42NDggNTAuNjI1NyAzNzcuNTQ5IDQ5LjU0MDJDMzc2LjQ1IDQ4LjQ1NDYgMzc1LjkwMSA0Ni43OTEgMzc1LjkwMSA0NC41NDkxQzM3NS45MDEgNDIuMzMwOSAzNzYuNDM4IDQwLjY5MDggMzc3LjUxMyAzOS42Mjg5QzM3OC42MTMgMzguNTQzNCAzODAuMjg1IDM4LjAwMDYgMzgyLjUzMSAzOC4wMDA2SDM4Ni43OTZDMzkwLjU3MSAzOC4wMDA2IDM5Mi43NDYgMzkuNTU4MSAzOTMuMzE5IDQyLjY3MzFDMzkzLjM5MSA0My4xNjg2IDM5My4yOTUgNDMuNTU4IDM5My4wMzIgNDMuODQxMkMzOTIuNzcgNDQuMTAwOCAzOTIuMzc1IDQ0LjIzMDYgMzkxLjg1IDQ0LjIzMDZDMzkxLjM3MiA0NC4yMzA2IDM5MS4wMTMgNDQuMTEyNiAzOTAuNzc0IDQzLjg3NjZDMzkwLjUzNSA0My42NDA2IDM5MC4zOCA0My4yNzQ4IDM5MC4zMDggNDIuNzc5M0MzOTAuMTE3IDQyLjA5NDkgMzg5Ljc1OSA0MS42MjMgMzg5LjIzMyA0MS4zNjM0QzM4OC43MDggNDEuMTAzOCAzODcuODk1IDQwLjk3NCAzODYuNzk2IDQwLjk3NEgzODIuNTMxQzM4MS41NTEgNDAuOTc0IDM4MC43OTkgNDEuMDgwMiAzODAuMjczIDQxLjI5MjZDMzgwLjAyOCA0MS4zOTQzIDM3OS44MDcgNDEuNTQzOSAzNzkuNjIyIDQxLjczMjVDMzc5LjQzNyA0MS45MjExIDM3OS4yOTMgNDIuMTQ0NyAzNzkuMTk4IDQyLjM4OTlDMzc5LjAwNyA0Mi44ODU1IDM3OC45MTEgNDMuNjA1MiAzNzguOTExIDQ0LjU0OTFDMzc4LjkxMSA0NS41MTY3IDM3OS4wMTkgNDYuMjYgMzc5LjIzNCA0Ni43NzkyQzM3OS40NDkgNDcuMjc0NyAzNzkuODA3IDQ3LjY0MDUgMzgwLjMwOSA0Ny44NzY1QzM4MC44MzUgNDguMDg4OSAzODEuNTg3IDQ4LjE5NTEgMzgyLjU2NyA0OC4xOTUxSDM4Ny4wMTFDMzg5LjM3NyA0OC4xOTUxIDM5MS4xMzMgNDguNzYxNCAzOTIuMjggNDkuODk0MUMzOTMuNDI3IDUxLjAyNjggMzk0IDUyLjc3MzEgMzk0IDU1LjEzMjlDMzk0IDU3LjQ2OTEgMzkzLjQyNyA1OS4yMDM2IDM5Mi4yOCA2MC4zMzYzQzM5MS4xMzMgNjEuNDQ1NCAzODkuMzc3IDYyIDM4Ny4wMTEgNjJIMzgxLjg1WiIgZmlsbD0iI0UyMkYyMiIvPgo8cGF0aCBkPSJNMzYuNzM2IDBMMCAxOS4yNThMMC40NzA5OTMgNjMuNTczTDIyLjg0MSA3Ni4zMzRMMzYuOTcyIDEwMEw1MC42MyA3Ni4zMzRMNzMgNjMuNjlWMTkuNDlMMzYuNzM2IDBaTTI5LjY3IDY0LjI3TDE0LjM2NCA1NS42ODVWMzUuNDk4TDI5LjY3IDQ0LjU0N1Y2NC4yNjhWNjQuMjdaTTIxLjkgMjMuNDMzTDM2LjczNSAxNS43NzZMNTEuMzM1IDIzLjQzM0wzNi43MzUgMzIuMDE4TDIxLjkgMjMuNDMzWk01OC44NzEgNTUuNjgzTDQzLjggNjQuMjdWNDQuNTQ4TDU4Ljg3MSAzNS43MzFWNTUuNjgzWiIgZmlsbD0iI0UyMkYyMiIvPgo8L3N2Zz4K\";","// extracted by mini-css-extract-plugin\nexport default {\"navigation\":\"kiMVxg7uvmObzH9y5Nf7\",\"subtitle\":\"lh6Gp5uMZoFjdsD0piCQ\",\"active\":\"IHgUS1orY8DkWO_fbRhQ\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Ub1Qwzm7eiO9i1pfS4JA\",\"header\":\"MHfJiF9ZtWnpmRSznlsA\",\"container\":\"bDqx83XSEFfGnp0RCn6r\",\"logo\":\"s2jFJ3kbxHqVjcXOAa_e\",\"headerNavigation\":\"O0TgIPrk1w9xxx2FS7rI\"};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"BBrTfwaRpiXTsfXQotgf\",\"help\":\"eiQPya4NGNSbJXhlQrFG\",\"default\":\"Qrwn2ZFHSg4CzQ5B2Hju\",\"info\":\"dK0gZ8H42AMHDmiT90gt\",\"warning\":\"Iq2GVHFXIvyadiMTJhPA\",\"error\":\"IAqnveipCAc7HoEDOSlg\",\"label\":\"g0nlWBX7OmQcFqR6UoAB\",\"icon\":\"wLv8qHa44_fOcOtj0hCA\"};","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","import { useState } from \"@wordpress/element\";\nimport { useFindMyBlocks } from \"../../context/FindMyBlocksContext.js\";\nimport style from \"./BlockNavigation.module.css\";\nimport { __ } from \"@wordpress/i18n\";\n\nconst BlockNavigation = ({}) => {\n const { finder, preferences } = useFindMyBlocks();\n const { setSelectedBlock } = preferences;\n const { foundBlocks, withFilters } = finder;\n const [currentActive, setCurrentActive] = useState(null);\n\n const filteredBlocks = withFilters(foundBlocks);\n\n const handleLinkClick = (blockName) => {\n setSelectedBlock(blockName);\n setCurrentActive(blockName);\n };\n\n return (\n <nav className={style.navigation}>\n <ul>\n {filteredBlocks.map((block) => (\n <li\n key={block.name}\n className={currentActive === block.name ? style.active : \"\"}\n onClick={() => handleLinkClick(block.name)}\n >\n {block.name}{\" \"}\n <span className={style.subtitle}>\n {__(\"Found in\", \"find-my-blocks\")} {block.posts.length}{\" \"}\n {block.posts.length > 1\n ? __(\"locations\", \"find-my-blocks\")\n : __(\"location\", \"find-my-blocks\")}\n </span>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n\nexport default BlockNavigation;\n","import {\n Button,\n DropdownMenu,\n MenuGroup,\n MenuItem,\n} from \"@wordpress/components\";\nimport style from \"./PageHeader.module.css\";\nimport { __ } from \"@wordpress/i18n\";\nimport Logo from \"../../../images/find-my-blocks-logo-full.svg\";\nimport { useFindMyBlocks } from \"../../context/FindMyBlocksContext.js\";\n\nconst PageHeader = ({ children }) => {\n const { finder } = useFindMyBlocks();\n const { isLoading, reset, startSearch, foundBlocks } = finder;\n\n return (\n <div className={style.wrapper}>\n <div className={style.header}>\n <div className={style.container}>\n <img\n className={style.logo}\n src={Logo}\n alt=\"Find My Blocks Logo\"\n onClick={() => (foundBlocks.length > 0 ? reset() : false)}\n />\n <div className={style.headerNavigation}>\n <Button\n onClick={() => (foundBlocks.length > 0 ? reset() : startSearch())}\n icon={foundBlocks.length > 0 ? \"update-alt\" : null}\n isPrimary\n disabled={isLoading}\n >\n {foundBlocks.length > 0 // If there are found blocks, show \"Search Again\"\n ? __(\"Re-scan\", \"find-my-blocks\")\n : __(\"Search\", \"find-my-blocks\")}\n </Button>\n <DropdownMenu icon=\"menu\" label=\"Select a direction\">\n {({ onClose }) => (\n <>\n <MenuGroup label={__(\"Quick Links\", \"find-my-blocks\")}>\n <MenuItem\n href={\n fmbGlobal.admin_url + \"/edit.php?post_type=wp_block\"\n }\n >\n {__(\"Reusable Patterns\", \"find-my-blocks\")}\n </MenuItem>\n </MenuGroup>\n <MenuGroup label={__(\"Support\", \"find-my-blocks\")}>\n <MenuItem\n icon=\"star-filled\"\n href=\"https://wordpress.org/support/plugin/find-my-blocks/reviews/\"\n target=\"_blank\"\n >\n {__(\"Review on wp.org\", \"find-my-blocks\")}\n </MenuItem>\n <MenuItem\n icon=\"sos\"\n href=\"https://wordpress.org/support/plugin/find-my-blocks/\"\n target=\"_blank\"\n >\n {__(\"Support forum\", \"find-my-blocks\")}\n </MenuItem>\n <MenuItem\n icon=\"external\"\n href=\"https://findmyblocks.com/?utm_source=wordpress_site&utm_medium=navigation&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n findmyblocks.com\n </MenuItem>\n </MenuGroup>\n </>\n )}\n </DropdownMenu>\n </div>\n </div>\n </div>\n {children}\n </div>\n );\n};\n\nexport default PageHeader;\n","import {\n Card as WPCard,\n CardBody,\n CardDivider,\n CardHeader,\n Button,\n ExternalLink,\n} from \"@wordpress/components\";\nimport { __ } from \"@wordpress/i18n\";\n\nimport { Tag } from \"../Tag/Tag.js\";\n\nexport const Card = ({ post, blockName }) => {\n const tags = getTags(post);\n\n return (\n <WPCard size=\"small\" className=\"fmb-card\">\n <CardHeader isBorderless>\n <div>\n <span className=\"fmb-card-title\">{post.title}</span>\n <span className=\"fmb-card-meta\">\n <code>{post?.postType}</code>{\" \"}\n {post?.isThirdPartyTemplate && (\n <code>{post?.templateProvider}</code>\n )}{\" \"}\n </span>\n </div>\n <div>\n <Button\n target=\"_blank\"\n isTertiary\n href={post.post_url}\n size={\"small\"}\n >\n {__(\"Preview\", \"find-my-blocks\")}\n </Button>\n <Button\n target=\"_blank\"\n isTertiary\n href={post.edit_url}\n size={\"small\"}\n >\n {__(\"Edit\", \"find-my-blocks\")}\n </Button>\n </div>\n </CardHeader>\n {tags.length > 0 && (\n <>\n <CardDivider />\n <CardBody>\n {tags.map((tag) => {\n return <Tag key={tag.label} {...tag} />;\n })}\n </CardBody>\n </>\n )}\n </WPCard>\n );\n\n function getTags(post) {\n const tags = [];\n\n if (post.hasConditionalBlocks) {\n tags.push({\n label: __(\"Conditional\", \"find-my-blocks\"),\n help: (\n <span>\n {__(\"via\", \"find-my-blocks\")}{\" \"}\n <ExternalLink target=\"_blank\" href=\"https://conditionalblocks.com/\">\n Conditional Blocks\n </ExternalLink>\n </span>\n ),\n icon: \"randomize\",\n variation: \"info\",\n });\n }\n\n if (post.isSyncedPattern) {\n tags.push({\n label: __(\"Synced Pattern\", \"find-my-blocks\"),\n icon: \"networking\",\n variation: \"warning\",\n });\n }\n\n if (post.count > 1) {\n tags.push({\n label: `${post.count}x ` + blockName,\n icon: \"list-view\",\n variation: \"info\",\n });\n }\n\n if (post.isNested) {\n tags.push({\n label: __(\"Nested in: \", \"find-my-blocks\") + post.nestedBlockType,\n icon: \"align-center\",\n variation: \"info\",\n });\n }\n\n return tags;\n }\n};\n\nexport function CardGrid({ posts, blockName = \"\" }) {\n if (!posts || posts.length < 1) {\n return (\n <div>\n <h2>{__(\"No locations found\", \"find-my-blocks\")}</h2>\n {__(\n \"Please select a block from the menu, or check the filters.\",\n \"find-my-blocks\"\n )}\n </div>\n );\n }\n\n return (\n <div className=\"fmb-card-grid\">\n {posts.map((post, index) => {\n return (\n <Card key={blockName + post?.id} post={post} blockName={blockName} />\n );\n })}\n </div>\n );\n}\n","import classes from \"./Tag.module.css\";\nimport { Icon } from \"@wordpress/components\";\n\nconst classNames = (...classes) => classes.filter(Boolean).join(\" \");\n\n/**\n * Tag\n * @param {string} variations - \"info\" | \"warning\" | \"error\" | \"default\";\n * @returns\n */\nexport const Tag = ({ variation = \"default\", icon, label, help }) => {\n const tagClass = classNames(classes.tag, classes[variation]);\n\n return (\n <div className={tagClass}>\n {icon && <Icon icon={icon} className={classes.Icon} />}\n <div className={classes.label}>{label}</div>\n {help && <div className={classes.help}> {help}</div>}\n </div>\n );\n};\n","import React, { createContext, useContext } from \"@wordpress/element\";\n\nimport { usePreferences } from \"../hooks/usePreferences.js\";\nimport { useFinder } from \"../hooks/useFinder.js\";\n\n// Create a context for the app state.\nconst FindMyBlocksContext = createContext();\n\n// Create a provider component.\nexport const FindMyBlocksProvider = ({ children }) => {\n const preferences = usePreferences();\n\n const searchArgs = {\n posts_per_page: preferences.postsPerRun,\n };\n\n const finder = useFinder({\n searchArgs,\n cachedFoundBlocks: preferences?.cachedFoundBlocks ?? [],\n setCachedFoundBlocks: preferences.setCachedFoundBlocks,\n });\n\n const contextValue = {\n preferences: preferences,\n finder: finder,\n };\n\n return (\n <FindMyBlocksContext.Provider value={contextValue}>\n {children}\n </FindMyBlocksContext.Provider>\n );\n};\n\n// Create a custom hook to use the app state context.\nexport const useFindMyBlocks = () => {\n const context = useContext(FindMyBlocksContext);\n if (!context) {\n throw new Error(\n \"useFindMyBlocks must be used within an FindMyBlocksProvider\"\n );\n }\n return context;\n};\n","/**\n * Global fmbGlobal\n */\nimport { useState, useEffect, useRef } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport apiFetch from \"@wordpress/api-fetch\";\n/**\n * Fetch the blocks from the server.\n * the blocks contain the following fields.\n *\n * count, edit_url, id, isNested, isReusable, nestedBlockType, postType, post_url, status, title\n */\nexport const useFinder = ({\n searchArgs = {},\n cachedFoundBlocks = [],\n setCachedFoundBlocks,\n}) => {\n const filtersDefault = {\n name: false,\n blockProvider: false,\n hasConditionalBlocks: false,\n };\n\n const [foundBlocks, setFoundBlocks] = useState([]);\n const [filters, setFilters] = useState(filtersDefault);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(null);\n const [progress, setProgress] = useState({\n currentPage: 0,\n totalPages: 0,\n percentage: 0,\n totalPosts: 0,\n totalBlocks: 0,\n totalScannedPosts: 0,\n });\n\n const [sortOrder, setSortOrder] = useState(\"asc\"); // 'asc' for ascending, 'desc' for descending.\n\n const abortControllerRef = useRef(null);\n\n /**\n * Abort the search.\n */\n const abortSearch = () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n console.log(\"Search aborted by user.\");\n setError(new Error(__(\"Search aborted by user\", \"find-my-blocks\"))); // Set an error state indicating the search was aborted\n }\n };\n\n /**\n * Get the posts with a specific block.\n * @param {string} blockName - The name of the block.\n * @returns {Array} The posts with the block.\n */\n const postsWithBlock = (blockName) => {\n const block = withFilters(foundBlocks).find(\n (block) => block.name === blockName\n );\n\n return block ? block.posts : [];\n };\n\n /**\n * Start the search.\n */\n const startSearch = async () => {\n reset();\n setIsLoading(true);\n // Create a new instance of AbortController for the entire batch search\n const controller = new AbortController();\n abortControllerRef.current = controller; // Keep a reference to the controller\n\n let currentPage = 1;\n let totalPages = 0;\n let totalPosts = 0;\n let totalScannedPosts = 0;\n let localBatchResults = []; // Local variable to keep track of batch results.\n let totalBlockInstances = 0; // Keep track of total block instances detected.\n let searchStatus = \"in_process\"; // Track the search status\n\n try {\n while (\n (currentPage <= totalPages || currentPage === 1) &&\n !abortControllerRef.current.signal.aborted &&\n searchStatus === \"in_process\" // Check if the search is still in process\n ) {\n const timeoutId = setTimeout(() => controller.abort(), 15000); // Abort the search after 15 seconds of inactivity.\n\n const queryString = new URLSearchParams({\n ...searchArgs,\n paged: currentPage,\n }).toString();\n\n try {\n const searchResponse = await apiFetch({\n path: `find-my-blocks/v1/search?${queryString}`,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n // Add a 1 second delay between requests to avoid server overload.\n await new Promise((resolve) => setTimeout(resolve, 1000));\n\n // Exit early if no data is returned.\n if (!searchResponse?.data) {\n throw new Error(\"No data returned from the server.\");\n }\n\n const { blocks, scanned_posts, total_posts, total_pages } =\n searchResponse.data;\n\n if (currentPage === 1) {\n totalPages = total_pages;\n totalPosts = total_posts;\n }\n\n totalBlockInstances += blocks.reduce(\n (sum, block) => sum + block.posts.length,\n 0\n );\n\n totalScannedPosts += scanned_posts;\n\n setProgress({\n currentPage,\n totalPages: totalPages,\n percentage: Math.round((currentPage / totalPages) * 100),\n totalBlocks: totalBlockInstances,\n totalPosts: totalPosts,\n totalScannedPosts: totalScannedPosts, // Some might have been skipped server side.\n });\n\n localBatchResults = localBatchResults.concat(blocks);\n\n currentPage++;\n\n if (currentPage > total_pages) {\n searchStatus = \"completed\"; // All pages of the WP_Query has been scanned.\n break;\n }\n } catch (error) {\n clearTimeout(timeoutId);\n\n if (error.name === \"AbortError\") {\n console.error(\n \"Search aborted or timeout reached - Please try lower the amount of posts to search per request.\",\n error\n );\n setError(\n new Error(\n \"Abort/timeout error. Try choosing a lower amount of posts to search per request.\"\n )\n );\n } else {\n console.error(\"Error fetching blocks:\", error);\n setError(error);\n }\n\n searchStatus = \"failed\"; // Update the search status to failed\n break;\n }\n }\n } finally {\n abortControllerRef.current = null;\n\n if (searchStatus === \"completed\" && localBatchResults.length > 0) {\n const mergedBlocks = mergeBlocks(localBatchResults);\n const sortedBlocks = changeBlockSorting(sortOrder, mergedBlocks);\n\n setFilters(filtersDefault);\n setFoundBlocks(sortedBlocks);\n setCachedFoundBlocks(sortedBlocks);\n } else {\n setError(\n new Error(\"Search completed with no results or an error occurred.\")\n );\n\n reset();\n }\n\n // Add a 1 second delay to view the finished search stats.\n await new Promise((resolve) => setTimeout(resolve, 1000));\n\n setIsLoading(false);\n }\n };\n\n /**\n * Reset the search state to its initial values.\n */\n const reset = () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n setFoundBlocks([]);\n setCachedFoundBlocks([]);\n setIsLoading(false);\n setError(null);\n setProgress({\n currentPage: 0,\n totalPages: 0,\n percentage: 0,\n totalPosts: 0,\n totalBlocks: 0,\n totalScannedPosts: 0,\n });\n setSortOrder(\"asc\");\n };\n\n let firstLoad = true;\n\n useEffect(() => {\n if (firstLoad && cachedFoundBlocks && cachedFoundBlocks.length > 0) {\n firstLoad = false;\n setFoundBlocks(changeBlockSorting(sortOrder, cachedFoundBlocks));\n }\n }, [cachedFoundBlocks]);\n\n const changeBlockSorting = (order, foundBlocks) => {\n // First, sort the blocks\n const sortedBlocks = [...foundBlocks].sort((a, b) => {\n if (order === \"asc\") {\n return a.name.localeCompare(b.name);\n } else {\n return b.name.localeCompare(a.name);\n }\n });\n\n // Then, sort the posts within each block\n sortedBlocks.forEach((block) => {\n if (block.posts && Array.isArray(block.posts)) {\n block.posts.sort((a, b) => {\n if (order === \"asc\") {\n return a.title.localeCompare(b.title);\n } else {\n return b.title.localeCompare(a.title);\n }\n });\n }\n });\n\n return sortedBlocks;\n };\n\n const withFilters = (blocks) => {\n if (filters.name) {\n blocks = blocks.filter((block) =>\n block.name.toLowerCase().includes(filters.name.toLowerCase())\n );\n }\n\n if (filters.blockProvider) {\n blocks = blocks.filter((block) =>\n block.name\n .split(\"/\")[0]\n .toLowerCase()\n .includes(filters.blockProvider.toLowerCase())\n );\n }\n\n /**\n * Conditional Blocks Integration.\n */\n if (filters.hasConditionalBlocks) {\n blocks = blocks\n .map((block) => {\n // Filter out posts that do not have hasConditionalBlocks\n const filteredPosts = block.posts.filter(\n (post) => post.hasConditionalBlocks\n );\n // Return the block with the filtered posts, or null if no posts left\n return filteredPosts.length > 0\n ? { ...block, posts: filteredPosts }\n : null;\n })\n .filter((block) => block !== null); // Remove blocks that have no posts left\n }\n\n return blocks;\n };\n\n return {\n reset,\n foundBlocks,\n withFilters,\n setFilters,\n isLoading,\n error,\n startSearch,\n abortSearch,\n progress,\n postsWithBlock,\n };\n};\n\n/**\n * Merge blocks from different requests.\n * @param {Array} blocks - The blocks to merge.\n * @returns {Array} The merged blocks.\n */\nconst mergeBlocks = (blocks) => {\n const blockMap = new Map();\n\n blocks.forEach((newBlock) => {\n if (blockMap.has(newBlock.name)) {\n // Merge posts if the block already exists\n const existingBlock = blockMap.get(newBlock.name);\n newBlock.posts.forEach((newPost) => {\n const existingPostIndex = existingBlock.posts.findIndex(\n (post) => post.id === newPost.id\n );\n if (existingPostIndex !== -1) {\n // Combine the count if the post already exists\n existingBlock.posts[existingPostIndex].count += newPost.count;\n } else {\n // Add the new post if it doesn't exist\n existingBlock.posts.push(newPost);\n }\n });\n } else {\n // Add the new block if it doesn't exist\n blockMap.set(newBlock.name, {\n ...newBlock,\n posts: [...newBlock.posts],\n });\n }\n });\n\n // Convert the map back to an array\n return Array.from(blockMap.values());\n};\n","import { useState, useEffect, useCallback } from \"@wordpress/element\";\n/**\n * Helper for setting local storage. useEffect to prevent hydration errors.\n * @param {*} key\n * @returns\n */\n// A simple pub-sub mechanism for preferences\nconst preferenceSubscribers = new Map();\n\nconst notifyPreferenceSubscribers = (key, value) => {\n const callbacks = preferenceSubscribers.get(key) || [];\n callbacks.forEach((callback) => callback(value));\n};\n\nconst subscribeToPreference = (key, callback) => {\n if (!preferenceSubscribers.has(key)) {\n preferenceSubscribers.set(key, []);\n }\n preferenceSubscribers.get(key).push(callback);\n};\n\nconst unsubscribeFromPreference = (key, callback) => {\n const callbacks = preferenceSubscribers.get(key) || [];\n const index = callbacks.indexOf(callback);\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n};\n\n/**\n * Helper for setting local storage. useEffect to prevent hydration errors.\n * @param {*} key\n * @returns\n */\nexport const useLocalStorage = (key, defaultValue) => {\n const [data, setData] = useState(defaultValue);\n const [initialLoad, setInitialLoad] = useState(true);\n\n useEffect(() => {\n if (initialLoad) {\n setInitialLoad(false);\n const existingData = JSON.parse(localStorage.getItem(key));\n setData(existingData ?? defaultValue);\n }\n }, [initialLoad, key, defaultValue]);\n\n useEffect(() => {\n const handleDataChange = (newData) => {\n setData(newData);\n };\n\n subscribeToPreference(key, handleDataChange);\n\n return () => {\n unsubscribeFromPreference(key, handleDataChange);\n };\n }, [key]);\n\n const saveDataToLocalStorage = useCallback(\n (newData) => {\n localStorage.setItem(key, JSON.stringify(newData));\n notifyPreferenceSubscribers(key, newData);\n },\n [key]\n );\n\n return [data, saveDataToLocalStorage];\n};\n","/**\n * Global fmbGlobal\n */\nimport { useLocalStorage } from \"./useLocalStorage.js\";\n/**\n * Store preferences & settings in local storage.\n */\nexport const usePreferences = () => {\n const [selectedBlock, setSelectedBlock] = useLocalStorage(\n \"fmb_selected_block\",\n \"\"\n );\n const [postsPerRun, setPostsPerRun] = useLocalStorage(\n \"fmb_posts_per_run\",\n 10\n );\n const [cachedFoundBlocks, setCachedFoundBlocks] = useLocalStorage(\n \"fmb_found_blocks\",\n false\n );\n const [selectedProvider, setSelectedProvider] = useLocalStorage(\n \"fmb_selected_provider\",\n false\n );\n const [versionCache, setVersionCache] = useLocalStorage(\n \"fmb_version_cache\",\n false\n );\n const [conditionalBlocks, setConditionalBlocks] = useLocalStorage(\n \"fmb_conditional_blocks\",\n false\n );\n\n return {\n cachedFoundBlocks:\n fmbGlobal.version === versionCache ? cachedFoundBlocks : false,\n setCachedFoundBlocks: (value) => {\n setVersionCache(fmbGlobal.version);\n setSelectedProvider(false);\n setSelectedBlock(false);\n setConditionalBlocks(false);\n setCachedFoundBlocks(value);\n },\n selectedBlock,\n setSelectedBlock,\n selectedProvider,\n setSelectedProvider,\n postsPerRun: parseInt(postsPerRun),\n setPostsPerRun,\n conditionalBlocks,\n setConditionalBlocks,\n };\n};\n","/**\n * global fmbGlobal\n */\nimport { Fragment, useState } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport { CardGrid } from \"../components/PostCards/PostCards.js\";\nimport BlockNavigation from \"../components/BlockNavigation/index.js\";\nimport { useFindMyBlocks } from \"../context/FindMyBlocksContext.js\";\nimport { getUniqueProviders } from \"../utils/functions.js\";\nimport {\n Button,\n ExternalLink,\n RadioControl,\n Notice,\n ComboboxControl,\n SearchControl,\n CheckboxControl,\n} from \"@wordpress/components\";\n\n/**\n * Overview Page.\n */\nfunction SearchPage() {\n const { finder, preferences } = useFindMyBlocks();\n\n const {\n foundBlocks,\n startSearch,\n abortSearch,\n progress,\n isLoading,\n error,\n postsWithBlock,\n } = finder;\n\n const { selectedBlock, postsPerRun, setPostsPerRun } = preferences;\n\n if (isLoading)\n return (\n <div className=\"fmb-bento-container\">\n <div className=\"fmb-bento-grid\">\n <div className=\"fmb-box fmb-box-full\">\n <h2>{__(\"Searching for your blocks...\", \"find-my-blocks\")}</h2>\n <p>\n {__(\"Progress:\", \"find-my-blocks\")} {progress.percentage}%\n </p>\n <p>\n {__(\"Scanning batch\", \"find-my-blocks\")} {progress.currentPage}{\" \"}\n {__(\"out of\", \"find-my-blocks\")} {progress.totalPages}\n </p>\n <p>\n {__(\"Total block instances detected:\", \"find-my-blocks\")}{\" \"}\n {progress.totalBlocks}\n {\" \" + __(\"in\", \"find-my-blocks\")} {progress.totalScannedPosts}\n {\" \" + __(\"locations.\", \"find-my-blocks\")}\n </p>\n <Button\n onClick={() => abortSearch()}\n isDestructive\n isPrimary\n disabled={!isLoading}\n >\n {__(\"Abort Search\", \"find-my-blocks\")}\n </Button>\n </div>\n </div>\n </div>\n );\n\n const posts = postsWithBlock(selectedBlock);\n\n if (!error && foundBlocks.length > 0) {\n return (\n <Fragment>\n <div className=\"fmb-container\">\n <div className=\"fmb-grid-results-page\">\n <div className=\"fmb-box\">\n <h2>{__(\"Filters\", \"find-my-blocks\")}</h2>\n <div className=\"fmb-search-filters\">\n <SearchFilter />\n <BlockProviderFilter />\n {fmbGlobal?.conditional_blocks_installed && (\n <ConditionalBlocksFilter />\n )}\n </div>\n <h2>{__(\"Found Blocks\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"The below blocks have been detected during the scan.\",\n \"find-my-blocks\"\n )}\n </p>\n <nav className=\"fmb-side-navigation\">\n <BlockNavigation />\n </nav>\n </div>\n\n <div>\n {selectedBlock && (\n <Fragment>\n <h2>\n <span className=\"fmb-badge\">{selectedBlock}</span>\n </h2>\n {posts?.length > 0 && (\n <p>\n {__(\"Instances of the\", \"find-my-blocks\")}{\" \"}\n <b>{selectedBlock}</b>{\" \"}\n {__(\"block has been found in these\", \"find-my-blocks\")}{\" \"}\n {posts.length ?? 0} {__(\"locations.\", \"find-my-blocks\")}\n </p>\n )}\n </Fragment>\n )}\n <CardGrid blockName={selectedBlock} posts={posts}></CardGrid>\n </div>\n </div>\n </div>\n </Fragment>\n );\n }\n\n return (\n <Fragment>\n <ErrorNotice error={error} />\n <div className=\"fmb-bento-container\">\n <div className=\"fmb-bento-grid\">\n <div className=\"fmb-box fmb-box-full\">\n <h2>{__(\"Get Started\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"Find My Blocks will search through all your templates, posts and pages to find the WordPress blocks.\",\n \"find-my-blocks\"\n )}\n </p>\n\n <RadioControl\n className=\"fmb-performance-control\"\n label=\"Performance\"\n help={__(\n \"Warning! Choose the performance level that matches your server. Fetching too may posts at once may temporarily crash your site.\",\n \"find-my-blocks\"\n )}\n onChange={(val) => {\n setPostsPerRun(val);\n }}\n options={[\n {\n label: __(\n \"Low (Recommended for most sites, 10 post per run)\",\n \"find-my-blocks\"\n ),\n value: 10,\n },\n {\n label: __(\"Standard (100 posts per run)\", \"find-my-blocks\"),\n value: 100,\n },\n {\n label: __(\"Ultra (500 posts per run)\", \"find-my-blocks\"),\n value: 500,\n },\n ]}\n selected={postsPerRun ?? 10}\n />\n\n <Button\n onClick={() => startSearch()}\n isPrimary\n disabled={isLoading}\n >\n {__(\"Start Search\", \"find-my-blocks\")}\n </Button>\n </div>\n <div className=\"fmb-box\">\n <h2>{__(\"Block Tools & Resources\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"Create faster & better WordPress sites with block tutorials from experts.\",\n \"find-my-blocks\"\n )}\n </p>\n <ul>\n <li>\n <ExternalLink\n href=\"https://findmyblocks.com?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n findmyblocks.com\n </ExternalLink>\n </li>\n <li>\n <ExternalLink\n href=\"https://conditionalblocks.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n Conditional Blocks plugin\n </ExternalLink>\n </li>\n <li>\n <ExternalLink\n href=\"https://morganhvidt.com/?utm_source=wordpress_site&utm_medium=start&utm_campaign=find_my_blocks_active_install\"\n target=\"_blank\"\n >\n @MorganHvidt\n </ExternalLink>\n {__(\"(Developer) \", \"find-my-blocks\")}\n </li>\n </ul>\n </div>\n <div className=\"fmb-box\">\n <h2>{__(\"Support Development\", \"find-my-blocks\")}</h2>\n <p>\n {__(\n \"I'm building Find My Blocks in my free time. If you find it useful, please consider donating, or contributing to the project.\",\n \"find-my-blocks\"\n )}{\" \"}\n <em>- Morgan Hvidt</em>\n </p>\n <div style={{ marginTop: \"30px\" }}>\n <Button\n isSecondary\n target=\"_blank\"\n href=\"https://github.com/morganhvidt/find-my-blocks/\"\n >\n {__(\"Contribute on Github\", \"find-my-blocks\")}\n </Button>{\" \"}\n <Button\n style={{ marginLeft: \"10px\" }}\n isSecondary\n target=\"_blank\"\n href=\"https://morganhvidt.com/donate/\"\n >\n {__(\"Donate to development\", \"find-my-blocks\")}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Fragment>\n );\n}\n\nconst ErrorNotice = ({ error }) => {\n if (error) {\n return <Notice status=\"error\">{error.message}</Notice>;\n }\n\n return null;\n};\n\nfunction SearchFilter({ className }) {\n const { finder, preferences } = useFindMyBlocks();\n\n const [searchInput, setSearchInput] = useState(\"\");\n\n const handleSearch = (value) => {\n setSearchInput(value);\n finder.setFilters((prev) => ({\n ...prev,\n name: value.length ? value : false,\n }));\n };\n\n return <SearchControl value={searchInput} onChange={handleSearch} />;\n}\n\n/**\n * Component for filtering block providers.\n */\nfunction BlockProviderFilter() {\n const { finder, preferences } = useFindMyBlocks();\n\n const [blockProvider, setBlockProvider] = useState(\n preferences?.selectedProvider ?? false\n );\n\n const handleChange = (value) => {\n setBlockProvider(value);\n preferences?.setSelectedProvider(value);\n finder.setFilters((prev) => ({\n ...prev,\n blockProvider: value ?? false,\n }));\n };\n\n const providers = getUniqueProviders(finder.foundBlocks);\n\n return (\n <ComboboxControl\n allowReset\n label=\"Block Provider\"\n help=\"Core or third-party block providers\"\n value={blockProvider}\n onChange={handleChange}\n options={providers}\n onFilterValueChange={(inputValue) =>\n setBlockProvider(\n providers.filter((option) =>\n option.label.toLowerCase().startsWith(inputValue.toLowerCase())\n )\n )\n }\n />\n );\n}\n/**\n * Conditional Blocks Integration.\n */\nconst ConditionalBlocksFilter = () => {\n const { finder, preferences } = useFindMyBlocks();\n\n const [isChecked, setChecked] = useState(\n preferences?.conditionalBlocks ? true : false\n );\n\n const handleChange = (value) => {\n setChecked(value ? true : false);\n preferences?.setConditionalBlocks(value ? true : false);\n finder.setFilters((prev) => ({\n ...prev,\n hasConditionalBlocks: value ? true : false,\n }));\n };\n\n return (\n <CheckboxControl\n label=\"Conditional Blocks\"\n help={__(\n \"Only blocks with visibility changed by the Conditional Blocks plugin\",\n \"find-my-blocks\"\n )}\n checked={isChecked}\n onChange={handleChange}\n />\n );\n};\n\nexport default SearchPage;\n","/**\n * Get unique providers from a list of blocks.\n * @param {Array} blocks - The list of blocks.\n * @returns {Array} The unique providers.\n */\nexport function getUniqueProviders(blocks) {\n return blocks.reduce((uniqueProviders, block) => {\n const provider = block.name.split(\"/\")[0] ?? false;\n if (!uniqueProviders.some((prov) => prov.value === provider)) {\n uniqueProviders.push({ value: provider, label: provider });\n }\n return uniqueProviders;\n }, []);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * global fmbGlobal\n */\nimport { Fragment, render, createRoot } from \"@wordpress/element\";\nimport { __ } from \"@wordpress/i18n\";\nimport SearchPage from \"./pages/SearchPage.js\";\nimport { FindMyBlocksProvider } from \"./context/FindMyBlocksContext.js\";\nimport PageHeader from \"./components/PageHeader/PageHeader.js\";\n\n/**\n * Embed our App to the HTML.\n */\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const target = document.getElementById(\"find-my-blocks-app\");\n\n if (target) {\n if (createRoot) {\n createRoot(target).render(<App />);\n } else {\n render(<App />, target);\n }\n }\n});\n\n/**\n * Render Our App.\n */\nexport function App() {\n return (\n <Fragment>\n <FindMyBlocksProvider>\n <PageHeader />\n <SearchPage />\n </FindMyBlocksProvider>\n </Fragment>\n );\n}\n"],"names":["module","exports","window","BlockNavigation","finder","preferences","useFindMyBlocks","setSelectedBlock","foundBlocks","withFilters","currentActive","setCurrentActive","useState","filteredBlocks","createElement","className","style","navigation","map","block","key","name","active","onClick","handleLinkClick","blockName","subtitle","__","posts","length","PageHeader","children","isLoading","reset","startSearch","wrapper","header","container","logo","src","Logo","alt","headerNavigation","Button","icon","isPrimary","disabled","DropdownMenu","label","onClose","Fragment","MenuGroup","MenuItem","href","fmbGlobal","admin_url","target","Card","post","tags","hasConditionalBlocks","push","help","ExternalLink","variation","isSyncedPattern","count","isNested","nestedBlockType","getTags","WPCard","size","CardHeader","isBorderless","title","postType","isThirdPartyTemplate","templateProvider","isTertiary","post_url","edit_url","CardDivider","CardBody","tag","Tag","CardGrid","index","id","tagClass","classNames","classes","filter","Boolean","join","Icon","FindMyBlocksContext","createContext","FindMyBlocksProvider","_preferences$cachedFo","usePreferences","searchArgs","posts_per_page","postsPerRun","contextValue","useFinder","cachedFoundBlocks","setCachedFoundBlocks","Provider","value","context","useContext","Error","filtersDefault","blockProvider","setFoundBlocks","filters","setFilters","setIsLoading","error","setError","progress","setProgress","currentPage","totalPages","percentage","totalPosts","totalBlocks","totalScannedPosts","sortOrder","setSortOrder","abortControllerRef","useRef","current","abort","firstLoad","useEffect","changeBlockSorting","order","sortedBlocks","sort","a","b","localeCompare","forEach","Array","isArray","blocks","toLowerCase","includes","split","filteredPosts","async","controller","AbortController","localBatchResults","totalBlockInstances","searchStatus","signal","aborted","timeoutId","setTimeout","queryString","URLSearchParams","paged","toString","searchResponse","apiFetch","path","clearTimeout","Promise","resolve","data","scanned_posts","total_posts","total_pages","reduce","sum","Math","round","concat","console","mergedBlocks","mergeBlocks","abortSearch","log","postsWithBlock","find","blockMap","Map","newBlock","has","existingBlock","get","newPost","existingPostIndex","findIndex","set","from","values","preferenceSubscribers","useLocalStorage","defaultValue","setData","initialLoad","setInitialLoad","existingData","JSON","parse","localStorage","getItem","handleDataChange","newData","subscribeToPreference","callback","unsubscribeFromPreference","callbacks","indexOf","splice","useCallback","setItem","stringify","notifyPreferenceSubscribers","selectedBlock","setPostsPerRun","selectedProvider","setSelectedProvider","versionCache","setVersionCache","conditionalBlocks","setConditionalBlocks","version","parseInt","ErrorNotice","Notice","status","message","SearchFilter","searchInput","setSearchInput","SearchControl","onChange","prev","BlockProviderFilter","_preferences$selected","setBlockProvider","providers","getUniqueProviders","ComboboxControl","allowReset","options","onFilterValueChange","inputValue","option","startsWith","ConditionalBlocksFilter","isChecked","setChecked","CheckboxControl","checked","isDestructive","_posts$length","conditional_blocks_installed","RadioControl","val","selected","marginTop","isSecondary","marginLeft","uniqueProviders","_block$name$split$","provider","some","prov","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","App","SearchPage","document","addEventListener","getElementById","createRoot","render"],"sourceRoot":""} -
find-my-blocks/trunk/find-my-blocks.php
r3078392 r3078539 4 4 * Plugin URI: https://findmyblocks.com/ 5 5 * Description: Locate instances of WordPress blocks across your entire site. 6 * Version: 4.0. 06 * Version: 4.0.1 7 7 * Requires at least: 5.0 8 8 * Requires PHP: 7.4 … … 22 22 23 23 if ( ! defined( 'FMB_VERSION' ) ) { 24 define( 'FMB_VERSION', '4.0. 0' );24 define( 'FMB_VERSION', '4.0.1' ); 25 25 } 26 26 -
find-my-blocks/trunk/readme.txt
r3078392 r3078539 3 3 Donate link: https://morganhvidt.com/donate 4 4 Tags: gutenberg, find, blocks, search blocks, locator 5 Stable tag: 4.0. 05 Stable tag: 4.0.1 6 6 Requires at least: 5.0 7 7 Tested up to: 6.5 … … 96 96 == Changelog == 97 97 98 99 = 4.0.1 = 100 101 - Improvement: Reliability during scan - use WP_Query pages instead total scanned posts because some posts might be skipped. 102 98 103 = 4.0.0 = 99 104
Note: See TracChangeset
for help on using the changeset viewer.