Changeset 2833193
- Timestamp:
- 12/13/2022 06:23:00 PM (3 years ago)
- Location:
- content-visibility
- Files:
-
- 16 edited
- 1 copied
-
tags/0.2.9 (copied) (copied from content-visibility/trunk)
-
tags/0.2.9/build/index.asset.php (modified) (1 diff)
-
tags/0.2.9/build/index.css (modified) (7 diffs)
-
tags/0.2.9/build/index.css.map (modified) (1 diff)
-
tags/0.2.9/build/index.js (modified) (126 diffs)
-
tags/0.2.9/build/index.js.map (modified) (1 diff)
-
tags/0.2.9/content-visibility.php (modified) (1 diff)
-
tags/0.2.9/includes/content-visibility.php (modified) (1 diff)
-
tags/0.2.9/readme.txt (modified) (2 diffs)
-
trunk/build/index.asset.php (modified) (1 diff)
-
trunk/build/index.css (modified) (7 diffs)
-
trunk/build/index.css.map (modified) (1 diff)
-
trunk/build/index.js (modified) (126 diffs)
-
trunk/build/index.js.map (modified) (1 diff)
-
trunk/content-visibility.php (modified) (1 diff)
-
trunk/includes/content-visibility.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
content-visibility/tags/0.2.9/build/index.asset.php
r2589501 r2833193 1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => ' c28fdfc67e7a7bafa09326248c260d87');1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '020be447b45cb72d83d4347ab15f2ddd'); -
content-visibility/tags/0.2.9/build/index.css
r2589501 r2833193 58 58 margin-bottom: 0; } 59 59 60 .content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {61 text-align: right; }62 63 60 /* 64 61 Styling for the rule panels … … 70 67 width: 100%; } 71 68 69 /* 70 It seems WP changed to capitalize labels, and that looks weird for us, so 71 we'll normalize that. 72 */ 73 .content-visibility-controls.is-opened .content-visibility-control-panel label { 74 text-transform: none; 75 font-weight: normal; 76 font-size: 1em; } 77 72 78 .content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle { 73 79 border-bottom: 1px solid #e2e4e7; } … … 109 115 height: 24px; 110 116 width: 24px; 111 margin-left: 105%; 112 margin-top: 1%; 113 opacity: 0.25; 117 position: absolute; 118 top: 0; 119 right: -2em; 120 opacity: 0.2; 114 121 box-shadow: none !important; 115 122 content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>') !important; } … … 119 126 height: 24px; 120 127 width: 24px; 121 margin-left: 105%; 122 margin-top: 1%; 123 opacity: 0.25; 128 position: absolute; 129 top: 0; 130 right: -2em; 131 opacity: 0.2; 124 132 box-shadow: none !important; 125 133 content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye-off"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>') !important; } … … 129 137 */ 130 138 .content-visibility-controls-container .content-visibility-help-text { 131 margin: 1rem 0 0 ;139 margin: 1rem 0 0 !important; 132 140 font-size: 12px; 133 141 font-style: normal; … … 143 151 .content-visibility-multi-select { 144 152 width: 100%; 145 margin: 1rem 0 0 0; } 153 margin: 1rem 0 0 0; 154 border: 1px solid #ccc; 155 padding: 0.25em 0.5em; 156 background: white; } 157 158 .content-visibility-multi-select .dropdown-content { 159 background: white; 160 z-index: 999; } 146 161 147 162 /* … … 279 294 .content-visibility-close-popover { 280 295 position: absolute; 281 top: -2rem;282 right: -1rem; }296 top: 0; 297 right: 0; } 283 298 284 299 /* -
content-visibility/tags/0.2.9/build/index.css.map
r2568520 r2833193 1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n display: block; }\n\n/*\n Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n margin: 1rem 0; }\n\n/*\n Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n max-width: none;\n margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n width: 50%;\n margin: 0.5em 0 0;\n display: inline-block; }\n\n/*\n ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n width: 100%; }\n\n/*\n User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n display: block; }\n\n.content-visibility-user-authenticated-control {\n width: 100%;\n display: block;\n float: none;\n clear: both; }\n\n/*\n Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n margin-bottom: 0; }\n\n.content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {\n text-align: right; }\n\n/*\n Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n border: 1px solid #e2e4e7;\n margin-bottom: 1em;\n background: #fcfcfc;\n width: 100%; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n border-bottom: 1px solid #e2e4e7; }\n\n/*\n When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n opacity: 0.2; }\n\n.components-disabled {\n opacity: 0.5; }\n\n/*\n Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n margin-bottom: 0; }\n\n/*\n User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n margin-bottom: 0; }\n\n/*\n When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n display: block;\n height: 24px;\n width: 24px;\n margin-left: 105%;\n margin-top: 1%;\n opacity: 0.25;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n display: block;\n height: 24px;\n width: 24px;\n margin-left: 105%;\n margin-top: 1%;\n opacity: 0.25;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6;\n box-shadow: none; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n display: inline-block;\n height: 12px;\n width: 12px;\n margin-left: 0.5rem;\n line-height: 1; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: -2rem;\n right: -1rem; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n display: block; }\n\n/*\n Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n margin: 1rem 0; }\n\n/*\n Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n max-width: none;\n margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n width: 50%;\n margin: 0.5em 0 0;\n display: inline-block; }\n\n/*\n ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n width: 100%; }\n\n/*\n User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n display: block; }\n\n.content-visibility-user-authenticated-control {\n width: 100%;\n display: block;\n float: none;\n clear: both; }\n\n/*\n Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n margin-bottom: 0; }\n\n/*\n Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n border: 1px solid #e2e4e7;\n margin-bottom: 1em;\n background: #fcfcfc;\n width: 100%; }\n\n/*\n It seems WP changed to capitalize labels, and that looks weird for us, so\n we'll normalize that.\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel label {\n text-transform: none;\n font-weight: normal;\n font-size: 1em; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n border-bottom: 1px solid #e2e4e7; }\n\n/*\n When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n opacity: 0.2; }\n\n.components-disabled {\n opacity: 0.5; }\n\n/*\n Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n margin-bottom: 0; }\n\n/*\n User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n margin-bottom: 0; }\n\n/*\n When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n display: block;\n height: 24px;\n width: 24px;\n position: absolute;\n top: 0;\n right: -2em;\n opacity: 0.2;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n display: block;\n height: 24px;\n width: 24px;\n position: absolute;\n top: 0;\n right: -2em;\n opacity: 0.2;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0 !important;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0;\n border: 1px solid #ccc;\n padding: 0.25em 0.5em;\n background: white; }\n\n.content-visibility-multi-select .dropdown-content {\n background: white;\n z-index: 999; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6;\n box-shadow: none; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n display: inline-block;\n height: 12px;\n width: 12px;\n margin-left: 0.5rem;\n line-height: 1; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: 0;\n right: 0; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""} -
content-visibility/tags/0.2.9/build/index.js
r2589501 r2833193 176 176 \***************************************************************/ 177 177 /*! no static exports found */ 178 /***/ (function(module, exports) { 179 178 /***/ (function(module, exports, __webpack_require__) { 179 180 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/toPropertyKey.js"); 180 181 function _defineProperty(obj, key, value) { 182 key = toPropertyKey(key); 181 183 if (key in obj) { 182 184 Object.defineProperty(obj, key, { … … 189 191 obj[key] = value; 190 192 } 191 192 193 return obj; 193 194 } 194 195 module.exports = _defineProperty; 195 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; 196 196 197 197 /***/ }), … … 205 205 206 206 function _extends() { 207 module.exports = _extends = Object.assign ||function (target) {207 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) { 208 208 for (var i = 1; i < arguments.length; i++) { 209 209 var source = arguments[i]; 210 211 210 for (var key in source) { 212 211 if (Object.prototype.hasOwnProperty.call(source, key)) { … … 215 214 } 216 215 } 217 218 216 return target; 219 }; 220 217 }, module.exports.__esModule = true, module.exports["default"] = module.exports; 221 218 return _extends.apply(this, arguments); 222 219 } 223 224 module.exports = _extends; 220 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports; 221 222 /***/ }), 223 224 /***/ "./node_modules/@babel/runtime/helpers/toPrimitive.js": 225 /*!************************************************************!*\ 226 !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! 227 \************************************************************/ 228 /*! no static exports found */ 229 /***/ (function(module, exports, __webpack_require__) { 230 231 var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]; 232 function _toPrimitive(input, hint) { 233 if (_typeof(input) !== "object" || input === null) return input; 234 var prim = input[Symbol.toPrimitive]; 235 if (prim !== undefined) { 236 var res = prim.call(input, hint || "default"); 237 if (_typeof(res) !== "object") return res; 238 throw new TypeError("@@toPrimitive must return a primitive value."); 239 } 240 return (hint === "string" ? String : Number)(input); 241 } 242 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; 243 244 /***/ }), 245 246 /***/ "./node_modules/@babel/runtime/helpers/toPropertyKey.js": 247 /*!**************************************************************!*\ 248 !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! 249 \**************************************************************/ 250 /*! no static exports found */ 251 /***/ (function(module, exports, __webpack_require__) { 252 253 var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]; 254 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/toPrimitive.js"); 255 function _toPropertyKey(arg) { 256 var key = toPrimitive(arg, "string"); 257 return _typeof(key) === "symbol" ? key : String(key); 258 } 259 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; 225 260 226 261 /***/ }), … … 236 271 "@babel/helpers - typeof"; 237 272 238 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { 239 module.exports = _typeof = function _typeof(obj) { 240 return typeof obj; 241 }; 242 } else { 243 module.exports = _typeof = function _typeof(obj) { 244 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 245 }; 246 } 247 248 return _typeof(obj); 273 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { 274 return typeof obj; 275 } : function (obj) { 276 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 277 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); 249 278 } 250 251 module.exports = _typeof; 252 253 /***/ }), 254 255 /***/ "./node_modules/goober/dist/goober.module.js": 256 /*!***************************************************!*\ 257 !*** ./node_modules/goober/dist/goober.module.js ***! 258 \***************************************************/ 279 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; 280 281 /***/ }), 282 283 /***/ "./node_modules/goober/dist/goober.esm.js": 284 /*!************************************************!*\ 285 !*** ./node_modules/goober/dist/goober.esm.js ***! 286 \************************************************/ 259 287 /*! exports provided: css, extractCss, glob, keyframes, setup, styled */ 260 288 /***/ (function(module, __webpack_exports__, __webpack_require__) { … … 262 290 "use strict"; 263 291 __webpack_require__.r(__webpack_exports__); 264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; });292 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return u; }); 265 293 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractCss", function() { return r; }); 266 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return d; });267 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return g; });268 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return b; });269 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return h; });270 let e={data:""},t=t=> {try{let e=t?t.querySelector("#_goober"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement("style")),e.innerHTML=" ",e.id="_goober"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data="",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\/\*[\s\S]*?\*\/|\s{2,}|\n/gm,o=(e,t)=>{let r,a="",l="",n="";for(let c in e){let s=e[c];"object"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):c,l+="@"==c[0]?"f"==c[1]?o(s,c):c+"{"+o(s,"k"==c[1]?"":t)+"}":o(s,r)):"@"==c[0]&&"i"==c[1]?a=c+" "+s+";":n+=o.p?o.p(c.replace(/[A-Z]/g,"-$&").toLowerCase(),s):c.replace(/[A-Z]/g,"-$&").toLowerCase()+":"+s+";"}return n[0]?(r=t?t+"{"+n+"}":n,a+r+l):a+l},n={},c=e=>{let t="";for(let r in e)t+=r+("object"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i="object"==typeof e?c(e):e,u=n[i]||(n[i]="go"+i.split("").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t="object"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,""));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):e}return e+a+(null==n?"":n)},"");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/g.test(s),c.className=i.apply(r,a)+(s?" "+s:""),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}294 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return b; }); 295 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return h; }); 296 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return m; }); 297 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return j; }); 298 let e={data:""},t=t=>"object"==typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data="",l},l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,a=/\/\*[^]*?\*\/| +/g,n=/\n+/g,o=(e,t)=>{let r="",l="",a="";for(let n in e){let c=e[n];"@"==n[0]?"i"==n[1]?r=n+" "+c+";":l+="f"==n[1]?o(c,n):n+"{"+o(c,"k"==n[1]?"":t)+"}":"object"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=o.p?o.p(n,c):n+":"+c+";")}return r+(t&&a?t+"{"+a+"}":a)+l},c={},s=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,""));)t[4]?o.shift():t[3]?(r=t[3].replace(n," ").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n," ").trim();return o[0]})(e);c[d]=o(p?{["@keyframes "+d]:t}:t,r?"":"."+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):!1===e?"":e}return e+l+(null==n?"":n)},"");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/.test(s),c.className=u.apply(r,l)+(s?" "+s:""),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}} 271 299 272 300 … … 2174 2202 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; }); 2175 2203 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectPanel", function() { return SelectPanel; }); 2176 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober. module.js");2204 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.esm.js"); 2177 2205 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); 2178 2206 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); … … 2180 2208 2181 2209 2182 var debounce = function debounce(func, wait) { 2183 var timeout; 2184 return function () { 2185 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 2186 args[_key] = arguments[_key]; 2210 const defaultStrings = { 2211 allItemsAreSelected: "All items are selected.", 2212 clearSearch: "Clear Search", 2213 clearSelected: "Clear Selected", 2214 noOptions: "No options", 2215 search: "Search", 2216 selectAll: "Select All", 2217 selectSomeItems: "Select..." 2218 }; 2219 const defaultProps = { 2220 value: [], 2221 focusSearchOnOpen: true, 2222 hasSelectAll: true, 2223 className: "multi-select", 2224 debounceDuration: 200, 2225 options: [] 2226 }; 2227 const MultiSelectContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createContext({}); 2228 const MultiSelectProvider = ({ 2229 props, 2230 children 2231 }) => { 2232 const t = key => { 2233 var _props$overrideString; 2234 2235 return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key]; 2236 }; 2237 2238 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectContext.Provider, { 2239 value: { 2240 t, 2241 ...defaultProps, 2242 ...props 2187 2243 } 2188 2244 }, children); 2245 }; 2246 const useMultiSelect = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.useContext(MultiSelectContext); 2247 2248 /** 2249 * combines classNames in a friendly way 2250 * 2251 * @param {*} classes 2252 */ 2253 const cn = (...classes) => classes.join(" "); 2254 2255 /** 2256 * similar to `useEffect` but gets triggered only when value changes 2257 * @param fn executable function on dependency updates 2258 * @param inputs dependency array 2259 */ 2260 2261 function useDidUpdateEffect(fn, inputs) { 2262 const didMountRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false); 2263 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2264 if (didMountRef.current) fn();else didMountRef.current = true; 2265 }, inputs); 2266 } 2267 2268 const debounce = (func, wait) => { 2269 let timeout; 2270 return function (...args) { 2189 2271 clearTimeout(timeout); 2190 timeout = setTimeout( function (){2272 timeout = setTimeout(() => { 2191 2273 func.apply(null, args); 2192 2274 }, wait); … … 2213 2295 } 2214 2296 2215 varcleanFilter = cleanUpText(filter, substitutions);2297 const cleanFilter = cleanUpText(filter, substitutions); 2216 2298 return options // Filter out undefined or null Options. 2217 .filter(function (_ref) { 2218 var label = _ref.label, 2219 value = _ref.value; 2220 return label != null && value != null; 2221 }) // Create a {score, Option} pair for each Option based on its label's 2299 .filter(({ 2300 label, 2301 value 2302 }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's 2222 2303 // similarity to the filter text. 2223 .map(function (option) { 2224 return { 2225 option: option, 2226 score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter) 2227 }; 2228 }) // Only include matches of the entire substring, with a slight 2304 .map(option => ({ 2305 option: option, 2306 score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter) 2307 })) // Only include matches of the entire substring, with a slight 2229 2308 // affordance for transposition or extra characters. 2230 .filter(function (pair) { 2231 return pair.score >= cleanFilter.length - 2; 2232 }) // Sort 'em by order of their score. 2233 .sort(function (a, b) { 2234 return b.score - a.score; 2235 }) // …and grab the original Options back from their pairs. 2236 .map(function (pair) { 2237 return pair.option; 2238 }); 2309 .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score. 2310 .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs. 2311 .map(pair => pair.option); 2239 2312 } 2240 2313 /** … … 2254 2327 2255 2328 function typeaheadSimilarity(a, b) { 2256 varaLength = a.length;2257 varbLength = b.length;2258 vartable = [];2329 const aLength = a.length; 2330 const bLength = b.length; 2331 const table = []; 2259 2332 2260 2333 if (!aLength || !bLength) { … … 2264 2337 2265 2338 if (aLength < bLength) { 2266 var _ref2 = [b, a]; 2267 a = _ref2[0]; 2268 b = _ref2[1]; 2339 [a, b] = [b, a]; 2269 2340 } // Early exit if `a` includes `b`; these will be scored higher than any 2270 2341 // other options with the same `b` (filter string), with a preference for … … 2286 2357 2287 2358 2288 for ( varx = 0; x <= aLength; ++x) {2359 for (let x = 0; x <= aLength; ++x) { 2289 2360 table[x] = [0]; 2290 2361 } 2291 2362 2292 for ( vary = 0; y <= bLength; ++y) {2363 for (let y = 0; y <= bLength; ++y) { 2293 2364 table[0][y] = 0; 2294 2365 } // Populate the rest of the table with a dynamic programming algorithm. 2295 2366 2296 2367 2297 for ( var _x = 1; _x <= aLength; ++_x) {2298 for ( var _y = 1; _y <= bLength; ++_y) {2299 table[ _x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);2368 for (let x = 1; x <= aLength; ++x) { 2369 for (let y = 1; y <= bLength; ++y) { 2370 table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]); 2300 2371 } 2301 2372 } … … 2330 2401 } 2331 2402 2332 varsafeSubstitutions = substitutions; // For Flow.2403 const safeSubstitutions = substitutions; // For Flow. 2333 2404 // Replace all strings in `safeSubstitutions` with their standardized 2334 2405 // counterparts. 2335 2406 2336 return Object.keys(safeSubstitutions).reduce( function (output, substitution){2337 varunsubbed = new RegExp(substitution, "g");2407 return Object.keys(safeSubstitutions).reduce((output, substitution) => { 2408 const unsubbed = new RegExp(substitution, "g"); 2338 2409 return output.replace(unsubbed, safeSubstitutions[substitution]); 2339 2410 }, input); 2340 2411 } 2341 2412 2342 var strings = { 2343 selectSomeItems: "Select...", 2344 allItemsAreSelected: "All items are selected.", 2345 selectAll: "Select All", 2346 search: "Search", 2347 clearSearch: "Clear Search", 2348 clearSelected: "Clear Selected" 2349 }; 2350 function getString(key, overrideStrings) { 2351 return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key]; 2352 } 2353 2354 var Cross = function Cross() { 2355 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2356 width: "24", 2357 height: "24", 2358 fill: "none", 2359 stroke: "currentColor", 2360 strokeWidth: "2", 2361 className: "dropdown-search-clear-icon gray" 2362 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2363 x1: "18", 2364 y1: "6", 2365 x2: "6", 2366 y2: "18" 2367 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2368 x1: "6", 2369 y1: "6", 2370 x2: "18", 2371 y2: "18" 2372 })); 2373 }; 2374 2375 var DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2413 const Cross = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2414 width: "24", 2415 height: "24", 2416 fill: "none", 2417 stroke: "currentColor", 2418 strokeWidth: "2", 2419 className: "dropdown-search-clear-icon gray" 2420 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2421 x1: "18", 2422 y1: "6", 2423 x2: "6", 2424 y2: "18" 2425 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2426 x1: "6", 2427 y1: "6", 2428 x2: "18", 2429 y2: "18" 2430 })); 2431 2432 const DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2376 2433 "& input,& span": { 2377 2434 verticalAlign: "middle", … … 2387 2444 }); 2388 2445 2389 var DefaultItemRenderer = function DefaultItemRenderer(_ref) { 2390 var checked = _ref.checked, 2391 option = _ref.option, 2392 onClick = _ref.onClick, 2393 disabled = _ref.disabled; 2394 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2395 className: DefaultRenderer + " item-renderer " + (disabled && "disabled") 2396 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2397 type: "checkbox", 2398 onChange: onClick, 2399 checked: checked, 2400 tabIndex: -1, 2401 disabled: disabled 2402 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label)); 2403 }; 2446 const DefaultItemRenderer = ({ 2447 checked, 2448 option, 2449 onClick, 2450 disabled 2451 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2452 className: cn(DefaultRenderer, "item-renderer", disabled && "disabled") 2453 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2454 type: "checkbox", 2455 onChange: onClick, 2456 checked: checked, 2457 tabIndex: -1, 2458 disabled: disabled 2459 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label)); 2404 2460 2405 2461 /** 2406 2462 * This component represents an individual item in the multi-select drop-down 2407 2463 */ 2408 varItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2464 const ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2409 2465 boxSizing: "border-box", 2410 2466 cursor: "pointer", … … 2420 2476 }); 2421 2477 2422 var SelectItem = function SelectItem(_ref){2423 var _ref$itemRenderer = _ref.itemRenderer,2424 ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,2425 option = _ref.option,2426 checked = _ref.checked,2427 focused = _ref.focused,2428 tabIndex = _ref.tabIndex,2429 disabled = _ref.disabled,2430 onSelectionChanged = _ref.onSelectionChanged,2431 onClick = _ref.onClick; 2432 varitemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();2433 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])( function (){2478 const SelectItem = ({ 2479 itemRenderer: ItemRenderer = DefaultItemRenderer, 2480 option, 2481 checked, 2482 focused, 2483 tabIndex, 2484 disabled, 2485 onSelectionChanged, 2486 onClick 2487 }) => { 2488 const itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2489 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2434 2490 updateFocus(); // eslint-disable-next-line 2435 }, [ focused]);2436 2437 var toggleChecked = function toggleChecked(){2491 }, [checked, focused]); 2492 2493 const toggleChecked = () => { 2438 2494 onSelectionChanged(!checked); 2439 2495 }; 2440 2496 2441 var handleClick = function handleClick(e){2497 const handleClick = e => { 2442 2498 toggleChecked(); 2443 2499 onClick(e); 2444 2500 }; 2445 2501 2446 var updateFocus = function updateFocus(){2502 const updateFocus = () => { 2447 2503 if (focused && !disabled && itemRef) { 2448 2504 itemRef.current.focus(); … … 2450 2506 }; 2451 2507 2452 var handleKeyDown = function handleKeyDown(e){2508 const handleKeyDown = e => { 2453 2509 switch (e.which) { 2454 2510 case 13: // Enter … … 2467 2523 2468 2524 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", { 2469 className: ItemContainer + " select-item " + (checked && "selected"),2525 className: cn(ItemContainer, "select-item", checked && "selected"), 2470 2526 role: "option", 2471 2527 "aria-selected": checked, … … 2484 2540 * This component represents an unadorned list of SelectItem (s). 2485 2541 */ 2486 varSelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2542 const SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2487 2543 margin: 0, 2488 2544 paddingLeft: 0, … … 2492 2548 } 2493 2549 }); 2494 var skipIndex = 2; 2495 2496 var SelectList = function SelectList(_ref) { 2497 var value = _ref.value, 2498 onChange = _ref.onChange, 2499 disabled = _ref.disabled, 2500 ItemRenderer = _ref.ItemRenderer, 2501 options = _ref.options, 2502 focusIndex = _ref.focusIndex, 2503 _onClick = _ref.onClick; 2504 2505 var handleSelectionChanged = function handleSelectionChanged(option, checked) { 2550 const skipIndex = 2; 2551 2552 const SelectList = ({ 2553 options, 2554 focusIndex, 2555 onClick 2556 }) => { 2557 const { 2558 disabled, 2559 value, 2560 onChange, 2561 ItemRenderer 2562 } = useMultiSelect(); 2563 2564 const handleSelectionChanged = (option, checked) => { 2506 2565 if (disabled) { 2507 2566 return; 2508 2567 } 2509 2568 2510 onChange(checked ? [].concat(value, [option]) : value.filter(function (o) { 2511 return o.value !== option.value; 2512 })); 2569 onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value)); 2513 2570 }; 2514 2571 2515 2572 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", { 2516 2573 className: SelectListUl 2517 }, options.map( function (o, i){2518 vartabIndex = i + skipIndex;2574 }, options.map((o, i) => { 2575 const tabIndex = i + skipIndex; 2519 2576 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", { 2520 key: o.hasOwnProperty("key") ? o.key :i2577 key: (o == null ? void 0 : o.key) || i 2521 2578 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2522 2579 focused: focusIndex === tabIndex, 2523 2580 tabIndex: tabIndex, 2524 2581 option: o, 2525 onSelectionChanged: function onSelectionChanged(c) { 2526 return handleSelectionChanged(o, c); 2527 }, 2528 checked: value.find(function (s) { 2529 return s.value === o.value; 2530 }) ? true : false, 2531 onClick: function onClick(e) { 2532 return _onClick(e, tabIndex); 2533 }, 2582 onSelectionChanged: c => handleSelectionChanged(o, c), 2583 checked: value.find(s => s.value === o.value) ? true : false, 2584 onClick: e => onClick(e, tabIndex), 2534 2585 itemRenderer: ItemRenderer, 2535 2586 disabled: o.disabled || disabled … … 2550 2601 })(FocusType || (FocusType = {})); 2551 2602 2552 varSelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2603 const SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2553 2604 width: "100%", 2554 2605 position: "relative", … … 2562 2613 } 2563 2614 }); 2564 varSearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2615 const SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2565 2616 cursor: "pointer", 2566 2617 position: "absolute", … … 2575 2626 } 2576 2627 }); 2577 var SelectPanel = function SelectPanel(props) { 2578 var onChange = props.onChange, 2579 options = props.options, 2580 value = props.value, 2581 customFilterOptions = props.filterOptions, 2582 selectAllLabel = props.selectAllLabel, 2583 ItemRenderer = props.ItemRenderer, 2584 disabled = props.disabled, 2585 disableSearch = props.disableSearch, 2586 focusSearchOnOpen = props.focusSearchOnOpen, 2587 hasSelectAll = props.hasSelectAll, 2588 overrideStrings = props.overrideStrings, 2589 ClearIcon = props.ClearIcon, 2590 debounceDuration = props.debounceDuration; 2591 2592 var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""), 2593 searchText = _useState[0], 2594 setSearchText = _useState[1]; 2595 2596 var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""), 2597 searchTextForFilter = _useState2[0], 2598 setSearchTextForFilter = _useState2[1]; 2599 2600 var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE), 2601 focusIndex = _useState3[0], 2602 setFocusIndex = _useState3[1]; 2603 2604 var debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(function (query) { 2605 return setSearchTextForFilter(query); 2606 }, debounceDuration), []); 2607 var selectAllOption = { 2608 label: selectAllLabel || getString("selectAll", overrideStrings), 2628 const NoOptions = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2629 padding: "var(--rmsc-p)", 2630 textAlign: "center", 2631 color: "var(--rmsc-gray)" 2632 }); 2633 2634 const SelectPanel = () => { 2635 const { 2636 t, 2637 onChange, 2638 options, 2639 value, 2640 filterOptions: customFilterOptions, 2641 selectAllLabel, 2642 ItemRenderer, 2643 disabled, 2644 disableSearch, 2645 focusSearchOnOpen, 2646 hasSelectAll, 2647 ClearIcon, 2648 debounceDuration 2649 } = useMultiSelect(); 2650 const searchInputRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2651 const [searchText, setSearchText] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""); 2652 const [filteredOptions, setFilteredOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(options); 2653 const [searchTextForFilter, setSearchTextForFilter] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""); 2654 const [focusIndex, setFocusIndex] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE); 2655 const debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(query => setSearchTextForFilter(query), debounceDuration), []); 2656 const selectAllOption = { 2657 label: selectAllLabel || t("selectAll"), 2609 2658 value: "" 2610 2659 }; 2611 2660 2612 var selectAllValues = function selectAllValues(checked) { 2613 var filteredValues = filteredOptions().filter(function (o) { 2614 return !o.disabled; 2615 }).map(function (o) { 2616 return o.value; 2617 }); 2661 const selectAllValues = checked => { 2662 const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value); 2618 2663 2619 2664 if (checked) { 2620 var selectedValues = value.map(function (o) { 2621 return o.value; 2622 }); 2623 var finalSelectedValues = [].concat(selectedValues, filteredValues); 2624 return options.filter(function (_ref) { 2625 var value = _ref.value; 2626 return finalSelectedValues.includes(value); 2627 }); 2665 const selectedValues = value.map(o => o.value); 2666 const finalSelectedValues = [...selectedValues, ...filteredValues]; 2667 return filteredOptions.filter(o => finalSelectedValues.includes(o.value)); 2628 2668 } 2629 2669 2630 return value.filter(function (o) { 2631 return !filteredValues.includes(o.value); 2632 }); 2670 return value.filter(o => !filteredValues.includes(o.value)); 2633 2671 }; 2634 2672 2635 var selectAllChanged = function selectAllChanged(checked){2636 varnewOptions = selectAllValues(checked);2673 const selectAllChanged = checked => { 2674 const newOptions = selectAllValues(checked); 2637 2675 onChange(newOptions); 2638 2676 }; 2639 2677 2640 var handleSearchChange = function handleSearchChange(e){2678 const handleSearchChange = e => { 2641 2679 debouncedSearch(e.target.value); 2642 2680 setSearchText(e.target.value); … … 2644 2682 }; 2645 2683 2646 var handleClear = function handleClear() { 2684 const handleClear = () => { 2685 var _searchInputRef$curre; 2686 2647 2687 setSearchTextForFilter(""); 2648 2688 setSearchText(""); 2689 searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus(); 2649 2690 }; 2650 2691 2651 var handleItemClicked = function handleItemClicked(index) { 2652 return setFocusIndex(index); 2653 }; 2654 2655 var handleKeyDown = function handleKeyDown(e) { 2692 const handleItemClicked = index => setFocusIndex(index); 2693 2694 const handleKeyDown = e => { 2656 2695 switch (e.which) { 2657 2696 case 38: … … 2681 2720 }; 2682 2721 2683 var handleSearchFocus = function handleSearchFocus(){2722 const handleSearchFocus = () => { 2684 2723 setFocusIndex(FocusType.SEARCH); 2685 2724 }; 2686 2725 2687 var filteredOptions = function filteredOptions() { 2688 return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter); 2689 }; 2690 2691 var updateFocus = function updateFocus(offset) { 2692 var newFocus = focusIndex + offset; 2726 const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter); 2727 2728 const updateFocus = offset => { 2729 let newFocus = focusIndex + offset; 2693 2730 newFocus = Math.max(1, newFocus); 2694 2731 newFocus = Math.min(newFocus, options.length + 1); … … 2696 2733 }; 2697 2734 2698 var _useMemo = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () { 2699 var filteredOptionsList = filteredOptions().filter(function (o) { 2700 return !o.disabled; 2701 }); 2702 return [filteredOptionsList.every(function (o) { 2703 return value.findIndex(function (v) { 2704 return v.value === o.value; 2705 }) !== -1; 2706 }), filteredOptionsList.length !== 0]; // eslint-disable-next-line 2707 }, [searchText, value]), 2708 isAllOptionSelected = _useMemo[0], 2709 hasSelectableOptions = _useMemo[1]; 2710 2735 const [isAllOptionSelected, hasSelectableOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => { 2736 const filteredOptionsList = filteredOptions.filter(o => !o.disabled); 2737 return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line 2738 }, [filteredOptions, value]); 2739 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2740 getFilteredOptions().then(setFilteredOptions); 2741 }, [searchTextForFilter, options]); 2711 2742 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2712 2743 className: "select-panel", … … 2717 2748 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2718 2749 autoFocus: focusSearchOnOpen, 2719 placeholder: getString("search", overrideStrings),2750 placeholder: t("search"), 2720 2751 type: "text", 2721 "aria-describedby": getString("search", overrideStrings), 2722 onKeyDown: function onKeyDown(e) { 2723 return e.stopPropagation(); 2724 }, 2752 "aria-describedby": t("search"), 2753 onKeyDown: e => e.stopPropagation(), 2725 2754 onChange: handleSearchChange, 2726 2755 onFocus: handleSearchFocus, 2727 value: searchText 2756 value: searchText, 2757 ref: searchInputRef 2728 2758 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 2729 2759 type: "button", 2730 className: SearchClearButton + " search-clear-button",2760 className: cn(SearchClearButton, "search-clear-button"), 2731 2761 hidden: !searchText, 2732 2762 onClick: handleClear, 2733 "aria-label": getString("clearSearch", overrideStrings)2763 "aria-label": t("clearSearch") 2734 2764 }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2735 2765 focused: focusIndex === 1, … … 2738 2768 option: selectAllOption, 2739 2769 onSelectionChanged: selectAllChanged, 2740 onClick: function onClick() { 2741 return handleItemClicked(0); 2742 }, 2770 onClick: () => handleItemClicked(1), 2743 2771 itemRenderer: ItemRenderer, 2744 2772 disabled: disabled 2745 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, {2746 options: filteredOptions (),2773 }), filteredOptions.length ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, { 2774 options: filteredOptions, 2747 2775 focusIndex: focusIndex, 2748 onClick: function onClick(_e, index) { 2749 return handleItemClicked(index); 2750 }, 2751 ItemRenderer: ItemRenderer, 2752 disabled: disabled 2753 }))); 2776 onClick: (_e, index) => handleItemClicked(index) 2777 }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2778 className: cn(NoOptions, "no-options") 2779 }, t("noOptions"))); 2754 2780 }; 2755 2781 2756 function Arrow(_ref) { 2757 var expanded = _ref.expanded; 2758 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2759 width: "24", 2760 height: "24", 2761 fill: "none", 2762 stroke: "currentColor", 2763 strokeWidth: "2", 2764 className: "dropdown-heading-dropdown-arrow gray" 2765 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", { 2766 d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9" 2767 })); 2768 } 2769 2770 var Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2782 const Arrow = ({ 2783 expanded 2784 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2785 width: "24", 2786 height: "24", 2787 fill: "none", 2788 stroke: "currentColor", 2789 strokeWidth: "2", 2790 className: "dropdown-heading-dropdown-arrow gray" 2791 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", { 2792 d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9" 2793 })); 2794 2795 const DropdownHeader = () => { 2796 const { 2797 t, 2798 value, 2799 options, 2800 valueRenderer 2801 } = useMultiSelect(); 2802 const noneSelected = value.length === 0; 2803 const allSelected = value.length === options.length; 2804 const customText = valueRenderer && valueRenderer(value, options); 2805 2806 const getSelectedText = () => value.map(s => s.label).join(", "); 2807 2808 return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2809 className: "gray" 2810 }, customText || t("selectSomeItems")) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? t("allItemsAreSelected") : getSelectedText())); 2811 }; 2812 2813 const Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2771 2814 animation: "rotate 2s linear infinite", 2772 2815 "& .path": { … … 2796 2839 } 2797 2840 }); 2798 2799 function Loading(_ref) { 2800 var _ref$size = _ref.size, 2801 size = _ref$size === void 0 ? 24 : _ref$size; 2802 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2803 style: { 2804 width: size, 2805 marginRight: "0.2rem" 2806 } 2807 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2841 const Loading = ({ 2842 size = 24 2843 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2844 style: { 2808 2845 width: size, 2809 height: size, 2810 className: Spinner, 2811 viewBox: "0 0 50 50", 2812 style: { 2813 display: "inline", 2814 verticalAlign: "middle" 2815 } 2816 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", { 2817 cx: "25", 2818 cy: "25", 2819 r: "20", 2820 fill: "none", 2821 className: "path" 2822 }))); 2823 } 2846 marginRight: "0.2rem" 2847 } 2848 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2849 width: size, 2850 height: size, 2851 className: Spinner, 2852 viewBox: "0 0 50 50", 2853 style: { 2854 display: "inline", 2855 verticalAlign: "middle" 2856 } 2857 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", { 2858 cx: "25", 2859 cy: "25", 2860 r: "20", 2861 fill: "none", 2862 className: "path" 2863 }))); 2824 2864 2825 2865 /** … … 2828 2868 * drops-down the contentComponent and applies the contentProps. 2829 2869 */ 2830 varPanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2870 const PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2831 2871 position: "absolute", 2832 2872 zIndex: 1, … … 2842 2882 } 2843 2883 }); 2844 varDropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2884 const DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2845 2885 position: "relative", 2846 2886 outline: 0, … … 2853 2893 } 2854 2894 }); 2855 varDropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2895 const DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2856 2896 position: "relative", 2857 2897 padding: "0 var(--rmsc-p)", … … 2869 2909 } 2870 2910 }); 2871 varClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2911 const ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2872 2912 cursor: "pointer", 2873 2913 background: "none", … … 2877 2917 }); 2878 2918 2879 var Dropdown = function Dropdown(_ref) { 2880 var children = _ref.children, 2881 ContentComponent = _ref.contentComponent, 2882 contentProps = _ref.contentProps, 2883 isLoading = _ref.isLoading, 2884 disabled = _ref.disabled, 2885 shouldToggleOnHover = _ref.shouldToggleOnHover, 2886 labelledBy = _ref.labelledBy, 2887 onMenuToggle = _ref.onMenuToggle, 2888 ArrowRenderer = _ref.ArrowRenderer, 2889 ClearSelectedIcon = _ref.ClearSelectedIcon, 2890 defaultIsOpen = _ref.defaultIsOpen, 2891 isOpen = _ref.isOpen; 2892 2893 var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true), 2894 isInternalExpand = _useState[0], 2895 setIsInternalExpand = _useState[1]; 2896 2897 var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen), 2898 expanded = _useState2[0], 2899 setExpanded = _useState2[1]; 2900 2901 var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 2902 hasFocus = _useState3[0], 2903 setHasFocus = _useState3[1]; 2904 2905 var FinalArrow = ArrowRenderer || Arrow; 2906 var wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2907 /* eslint-disable react-hooks/exhaustive-deps */ 2908 2909 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () { 2919 const Dropdown = () => { 2920 const { 2921 t, 2922 onMenuToggle, 2923 ArrowRenderer, 2924 shouldToggleOnHover, 2925 isLoading, 2926 disabled, 2927 onChange, 2928 labelledBy, 2929 value, 2930 isOpen, 2931 defaultIsOpen, 2932 ClearSelectedIcon 2933 } = useMultiSelect(); 2934 const [isInternalExpand, setIsInternalExpand] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true); 2935 const [expanded, setExpanded] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen); 2936 const [hasFocus, setHasFocus] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false); 2937 const FinalArrow = ArrowRenderer || Arrow; 2938 const wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2939 useDidUpdateEffect(() => { 2910 2940 onMenuToggle && onMenuToggle(expanded); 2911 2941 }, [expanded]); 2912 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])( function (){2942 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2913 2943 if (defaultIsOpen === undefined && typeof isOpen === "boolean") { 2914 2944 setIsInternalExpand(false); … … 2917 2947 }, [isOpen]); 2918 2948 2919 var handleKeyDown = function handleKeyDown(e){2949 const handleKeyDown = e => { 2920 2950 var _wrapper$current; 2921 2951 … … 2947 2977 }; 2948 2978 2949 var handleHover = function handleHover(iexpanded){2979 const handleHover = iexpanded => { 2950 2980 isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded); 2951 2981 }; 2952 2982 2953 var handleFocus = function handleFocus() { 2954 return !hasFocus && setHasFocus(true); 2955 }; 2956 2957 var handleBlur = function handleBlur(e) { 2983 const handleFocus = () => !hasFocus && setHasFocus(true); 2984 2985 const handleBlur = e => { 2958 2986 if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) { 2959 2987 setHasFocus(false); … … 2962 2990 }; 2963 2991 2964 var handleMouseEnter = function handleMouseEnter() { 2965 return handleHover(true); 2966 }; 2967 2968 var handleMouseLeave = function handleMouseLeave() { 2969 return handleHover(false); 2970 }; 2971 2972 var toggleExpanded = function toggleExpanded() { 2992 const handleMouseEnter = () => handleHover(true); 2993 2994 const handleMouseLeave = () => handleHover(false); 2995 2996 const toggleExpanded = () => { 2973 2997 isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded); 2974 2998 }; 2975 2999 2976 var handleClearSelected = function handleClearSelected(e){3000 const handleClearSelected = e => { 2977 3001 e.stopPropagation(); 2978 contentProps["onChange"]([]);3002 onChange([]); 2979 3003 isInternalExpand && setExpanded(false); 2980 3004 }; … … 2982 3006 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2983 3007 tabIndex: 0, 2984 className: DropdownContainer + " dropdown-container",3008 className: cn(DropdownContainer, "dropdown-container"), 2985 3009 "aria-labelledby": labelledBy, 2986 3010 "aria-expanded": expanded, … … 2994 3018 onMouseLeave: handleMouseLeave 2995 3019 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2996 className: DropdownHeading + " dropdown-heading",3020 className: cn(DropdownHeading, "dropdown-heading"), 2997 3021 onClick: toggleExpanded 2998 3022 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2999 3023 className: "dropdown-heading-value" 3000 }, children), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), contentProps["value"].length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {3024 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, null)), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), value.length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 3001 3025 type: "button", 3002 className: ClearSelectedButton + " clear-selected-button",3026 className: cn(ClearSelectedButton, "clear-selected-button"), 3003 3027 onClick: handleClearSelected, 3004 "aria-label": getString("clearSelected", contentProps["overrideStrings"]) 3028 disabled: disabled, 3029 "aria-label": t("clearSelected") 3005 3030 }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, { 3006 3031 expanded: expanded 3007 3032 })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3008 className: PanelContainer + " dropdown-content"3033 className: cn(PanelContainer, "dropdown-content") 3009 3034 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3010 3035 className: "panel-content" 3011 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement( ContentComponent, Object.assign({}, contentProps)))));3036 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectPanel, null)))); 3012 3037 }; 3013 3038 3014 var DropdownHeader = function DropdownHeader(_ref) { 3015 var value = _ref.value, 3016 options = _ref.options, 3017 valueRenderer = _ref.valueRenderer, 3018 overrideStrings = _ref.overrideStrings; 3019 var noneSelected = value.length === 0; 3020 var allSelected = value.length === options.length; 3021 var customText = valueRenderer && valueRenderer(value, options); 3022 3023 var getSelectedText = function getSelectedText() { 3024 return value.map(function (s) { 3025 return s.label; 3026 }).join(", "); 3027 }; 3028 3029 return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 3030 className: "gray" 3031 }, customText || getString("selectSomeItems", overrideStrings)) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? getString("allItemsAreSelected", overrideStrings) : getSelectedText())); 3032 }; 3033 3034 var MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 3039 const MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 3035 3040 "--rmscMain": "#4285f4", 3036 3041 "--rmscHover": "#f1f3f5", … … 3051 3056 }); 3052 3057 3053 var MultiSelect = function MultiSelect(_ref) { 3054 var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen, 3055 focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe, 3056 _ref$hasSelectAll = _ref.hasSelectAll, 3057 hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll, 3058 shouldToggleOnHover = _ref.shouldToggleOnHover, 3059 _ref$className = _ref.className, 3060 className = _ref$className === void 0 ? "multi-select" : _ref$className, 3061 options = _ref.options, 3062 value = _ref.value, 3063 valueRenderer = _ref.valueRenderer, 3064 overrideStrings = _ref.overrideStrings, 3065 onChange = _ref.onChange, 3066 disabled = _ref.disabled, 3067 ItemRenderer = _ref.ItemRenderer, 3068 ArrowRenderer = _ref.ArrowRenderer, 3069 selectAllLabel = _ref.selectAllLabel, 3070 isLoading = _ref.isLoading, 3071 disableSearch = _ref.disableSearch, 3072 filterOptions = _ref.filterOptions, 3073 labelledBy = _ref.labelledBy, 3074 onMenuToggle = _ref.onMenuToggle, 3075 ClearIcon = _ref.ClearIcon, 3076 _ref$debounceDuration = _ref.debounceDuration, 3077 debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration, 3078 ClearSelectedIcon = _ref.ClearSelectedIcon, 3079 defaultIsOpen = _ref.defaultIsOpen, 3080 isOpen = _ref.isOpen; 3081 var nvalue = value || []; 3082 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3083 className: MultiSelectBox + " " + className 3084 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, { 3085 isLoading: isLoading, 3086 contentComponent: SelectPanel, 3087 shouldToggleOnHover: shouldToggleOnHover, 3088 contentProps: { 3089 ItemRenderer: ItemRenderer, 3090 options: options, 3091 value: nvalue, 3092 hasSelectAll: hasSelectAll, 3093 selectAllLabel: selectAllLabel, 3094 onChange: onChange, 3095 disabled: disabled, 3096 disableSearch: disableSearch, 3097 focusSearchOnOpen: focusSearchOnOpen, 3098 filterOptions: filterOptions, 3099 overrideStrings: overrideStrings, 3100 ClearIcon: ClearIcon, 3101 debounceDuration: debounceDuration 3102 }, 3103 disabled: disabled, 3104 labelledBy: labelledBy, 3105 onMenuToggle: onMenuToggle, 3106 ArrowRenderer: ArrowRenderer, 3107 ClearSelectedIcon: ClearSelectedIcon, 3108 defaultIsOpen: defaultIsOpen, 3109 isOpen: isOpen 3110 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, { 3111 value: nvalue, 3112 options: options, 3113 valueRenderer: valueRenderer, 3114 overrideStrings: overrideStrings 3115 }))); 3116 }; 3058 const MultiSelect = props => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectProvider, { 3059 props: props 3060 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3061 className: cn(MultiSelectBox, props.className || "multi-select") 3062 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, null))); 3117 3063 3118 3064 /* harmony default export */ __webpack_exports__["default"] = (MultiSelect); … … 3237 3183 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) { 3238 3184 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props); 3239 } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. 3185 } 3186 3187 // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. 3240 3188 // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's 3241 3189 // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both 3242 3190 // get updated when a block is updated. 3243 3244 3245 3191 var showControls = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? 'show-controls' : 'hide-controls'; 3246 3192 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_blockEditor__WEBPACK_IMPORTED_MODULE_4__["InspectorControls"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 3265 3211 }, 'contentVisibilityControls'); 3266 3212 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls); 3213 3267 3214 /** 3268 3215 * Filters registered block settings, extending attributes with our custom data. … … 3272 3219 * @return {Object} Filtered block settings. 3273 3220 */ 3274 3275 3221 function addContentVisibilityRulesAttribute(settings) { 3276 3222 // If this is a valid block … … 3280 3226 contentVisibilityRulesEnabled: false, 3281 3227 userAuthenticated: '' 3282 }); // Use Lodash's assign to gracefully handle if attributes are undefined 3283 3228 }); 3229 3230 // Use Lodash's assign to gracefully handle if attributes are undefined 3284 3231 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, { 3285 3232 contentVisibilityRules: { … … 3289 3236 }); 3290 3237 } 3291 3292 3238 return settings; 3293 3239 } // end addContentVisibilityRulesAttribute() … … 3303 3249 * @return {Object} Filtered props applied to save element. 3304 3250 */ 3305 3306 3251 function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) { 3307 3252 // If the current block is valid, add our prop. … … 3309 3254 extraProps.contentVisibilityRules = attributes.contentVisibilityRules; 3310 3255 } 3311 3312 3256 return extraProps; 3313 3257 } // end addContentVisibilityRulesPropOnSave() … … 3315 3259 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute); 3316 3260 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave); 3261 3317 3262 /* -------------- 3318 3263 … … 3374 3319 })(function (_ref) { 3375 3320 var option = _ref.option, 3376 setState = _ref.setState,3377 props = _ref.props;3321 setState = _ref.setState, 3322 props = _ref.props; 3378 3323 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 3379 3380 3324 if (!rulesEnabled) { 3381 3325 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], { … … 3383 3327 })); 3384 3328 } 3385 3386 3329 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], { 3387 3330 props: props 3388 3331 }); 3389 3332 }); 3333 3390 3334 /** 3391 3335 * Filters registered block settings, extending attributes with our custom data. … … 3395 3339 * @return {Object} Filtered block settings. 3396 3340 */ 3397 3398 3341 function addContentVisibilityAttribute(settings) { 3399 3342 // If this is a valid block … … 3406 3349 }); 3407 3350 } 3408 3409 3351 return settings; 3410 3352 } // end addContentVisibilityAttribute() … … 3420 3362 * @return {Object} Filtered props applied to save element. 3421 3363 */ 3422 3423 3364 function addBlockVisibilityPropOnSave(extraProps, blockType, attributes) { 3424 3365 // If the current block is valid, add our prop. … … 3426 3367 extraProps.contentVisibility = attributes.contentVisibility; 3427 3368 } 3428 3429 3369 return extraProps; 3430 3370 } // end addBlockVisibilityPropOnSave() … … 3467 3407 3468 3408 3469 3470 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 3471 3472 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 3473 3409 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 3410 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 3474 3411 3475 3412 … … 3482 3419 })(function (_ref) { 3483 3420 var rulesEnabled = _ref.rulesEnabled, 3484 setState = _ref.setState,3485 props = _ref.props;3421 setState = _ref.setState, 3422 props = _ref.props; 3486 3423 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__["ToggleControl"], { 3487 3424 label: props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Enabled', 'content-visibility') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Disabled', 'content-visibility'), … … 3490 3427 return setState(function (state) { 3491 3428 var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules); 3492 3493 3429 newBVRules.contentVisibilityRulesEnabled = rulesEnabled; 3494 3430 props.setAttributes({ 3495 3431 contentVisibilityRules: newBVRules 3496 }); // Fire an action so we can see what's happened in other controls. This can be useful, 3432 }); 3433 3434 // Fire an action so we can see what's happened in other controls. This can be useful, 3497 3435 // for example when setting rules for roles - pointless if a user isn't signed in. 3498 3499 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); // Sets the state 3500 3436 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); 3437 3438 // Sets the state 3501 3439 return { 3502 3440 rulesEnabled: !state.rulesEnabled … … 3506 3444 }); 3507 3445 }); 3446 3508 3447 /** 3509 3448 * Filters registered block settings, extending attributes with our custom data. … … 3513 3452 * @return {Object} Filtered block settings. 3514 3453 */ 3515 3516 3454 function addContentVisibilityRulesEnabledAttribute(settings) { 3517 3455 // If this is a valid block … … 3524 3462 }); 3525 3463 } 3526 3527 3464 return settings; 3528 3465 } // end addContentVisibilityRulesEnabledAttribute() … … 3538 3475 * @return {Object} Filtered props applied to save element. 3539 3476 */ 3540 3541 3477 function addContentVisibilityRulesEnabledPropOnSave(extraProps, blockType, attributes) { 3542 3478 // If the current block is valid, add our prop. … … 3544 3480 extraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled; 3545 3481 } 3546 3547 3482 return extraProps; 3548 3483 } // end addContentVisibilityRulesEnabledPropOnSave() … … 3555 3490 * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise. 3556 3491 */ 3557 3558 3492 var withCustomClassName = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["createHigherOrderComponent"])(function (BlockListBlock) { 3559 3493 return function (props) { … … 3561 3495 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, props); 3562 3496 } 3563 3564 3497 var iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility; 3565 3498 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, props, { … … 3605 3538 })(function (_ref) { 3606 3539 var option = _ref.option, 3607 setState = _ref.setState,3608 props = _ref.props;3540 setState = _ref.setState, 3541 props = _ref.props; 3609 3542 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 3610 3543 var contentVisibility = props.attributes.hasOwnProperty('contentVisibility'); 3611 3612 3544 if (!rulesEnabled || !contentVisibility) { 3613 3545 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], { … … 3615 3547 })); 3616 3548 } 3617 3618 3549 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], { 3619 3550 props: props 3620 3551 }); 3621 3552 }); 3553 3622 3554 /** 3623 3555 * Render the <ContentVisibilityUserAuthenticationControl> component by adding … … 3626 3558 * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component. 3627 3559 */ 3628 3629 3560 function BlockVisibilityUserAuthenitcationFill() { 3630 3561 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], { … … 3635 3566 }); 3636 3567 }); 3637 } // Add our component to the Slot provided by BlockVisibilityControls3638 3639 3568 } 3569 3570 // Add our component to the Slot provided by BlockVisibilityControls 3640 3571 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', { 3641 3572 render: BlockVisibilityUserAuthenitcationFill … … 3663 3594 3664 3595 3665 3666 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 3667 3668 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 3596 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 3597 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 3669 3598 3670 3599 … … 3708 3637 })(function (_ref) { 3709 3638 var option = _ref.option, 3710 setState = _ref.setState, 3711 props = _ref.props, 3712 data = _ref.data, 3713 labelledBy = _ref.labelledBy, 3714 type = _ref.type; 3715 3639 setState = _ref.setState, 3640 props = _ref.props, 3641 data = _ref.data, 3642 labelledBy = _ref.labelledBy, 3643 type = _ref.type; 3716 3644 /** 3717 3645 * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for … … 3731 3659 }); 3732 3660 }; 3733 3734 3661 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3735 3662 className: "content-visibility-multi-select" … … 3741 3668 ItemRenderer: function ItemRenderer(_ref2) { 3742 3669 var checked = _ref2.checked, 3743 option = _ref2.option,3744 onClick = _ref2.onClick,3745 disabled = _ref2.disabled;3670 option = _ref2.option, 3671 onClick = _ref2.onClick, 3672 disabled = _ref2.disabled; 3746 3673 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3747 3674 className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled") … … 3753 3680 disabled: disabled 3754 3681 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label)); 3755 } // isOpen={ true }3756 3682 } 3683 // isOpen={ true } 3757 3684 })); 3758 3685 }); … … 3786 3713 })(function (_ref) { 3787 3714 var option = _ref.option, 3788 setState = _ref.setState,3789 props = _ref.props;3715 setState = _ref.setState, 3716 props = _ref.props; 3790 3717 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 3791 3718 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Shown or Hidden', 'content-visibility-user-role'), … … 3851 3778 })(function (_ref) { 3852 3779 var isVisible = _ref.isVisible, 3853 setState = _ref.setState, 3854 props = _ref.props; 3855 3780 setState = _ref.setState, 3781 props = _ref.props; 3856 3782 /** 3857 3783 * Our data, passed from PHP and manipulated to be useful here in JS. 3858 3784 */ 3859 3785 var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3786 3860 3787 /** 3861 3788 * This controls the key used where the data is stored. 3862 3789 */ 3863 3864 3790 var type = 'pages'; 3791 3865 3792 /** 3866 3793 * Helps with the content of the inserter button. 3867 3794 */ 3868 3869 3795 var niceName = { 3870 3796 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'), 3871 3797 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility') 3872 3798 }; 3799 3873 3800 /** 3874 3801 * Toggle the visible state. Detemines whether the popup is open or not. 3875 3802 */ 3876 3877 3803 var toggleVisible = function toggleVisible() { 3878 3804 setState(function (state) { … … 3882 3808 }); 3883 3809 }; 3884 3885 3810 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3886 3811 className: "content-visibility-special-page-inserter" … … 3960 3885 })(function (_ref) { 3961 3886 var isVisible = _ref.isVisible, 3962 setState = _ref.setState, 3963 props = _ref.props; 3964 3887 setState = _ref.setState, 3888 props = _ref.props; 3965 3889 /** 3966 3890 * Our data, passed from PHP and manipulated to be useful here in JS. 3967 3891 */ 3968 3892 var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3893 3969 3894 /** 3970 3895 * This controls the key used where the data is stored. 3971 3896 */ 3972 3973 3897 var type = 'posts'; 3898 3974 3899 /** 3975 3900 * Helps with the content of the inserter button. 3976 3901 */ 3977 3978 3902 var niceName = { 3979 3903 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'), 3980 3904 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility') 3981 3905 }; 3906 3982 3907 /** 3983 3908 * Toggle the visible state. Detemines whether the popup is open or not. 3984 3909 */ 3985 3986 3910 var toggleVisible = function toggleVisible() { 3987 3911 setState(function (state) { … … 3991 3915 }); 3992 3916 }; 3993 3994 3917 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3995 3918 className: "content-visibility-special-page-inserter" … … 4069 3992 })(function (_ref) { 4070 3993 var isVisible = _ref.isVisible, 4071 setState = _ref.setState, 4072 props = _ref.props; 4073 3994 setState = _ref.setState, 3995 props = _ref.props; 4074 3996 /** 4075 3997 * Our data, passed from PHP and manipulated to be useful here in JS. 4076 3998 */ 4077 3999 var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4000 4078 4001 /** 4079 4002 * This controls the key used where the data is stored. 4080 4003 */ 4081 4082 4004 var type = 'categories'; 4005 4083 4006 /** 4084 4007 * Helps with the content of the inserter button. 4085 4008 */ 4086 4087 4009 var niceName = { 4088 4010 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'), 4089 4011 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility') 4090 4012 }; 4013 4091 4014 /** 4092 4015 * Toggle the visible state. Detemines whether the popup is open or not. 4093 4016 */ 4094 4095 4017 var toggleVisible = function toggleVisible() { 4096 4018 setState(function (state) { … … 4100 4022 }); 4101 4023 }; 4102 4103 4024 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4104 4025 className: "content-visibility-special-page-inserter" … … 4174 4095 })(function (_ref) { 4175 4096 var option = _ref.option, 4176 setState = _ref.setState,4177 props = _ref.props;4097 setState = _ref.setState, 4098 props = _ref.props; 4178 4099 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 4179 4100 var contentVisibility = props.attributes.hasOwnProperty('contentVisibility'); 4180 4181 4101 if (!rulesEnabled || !contentVisibility) { 4182 4102 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], { … … 4184 4104 })); 4185 4105 } 4186 4187 4106 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], { 4188 4107 props: props 4189 4108 }); 4190 4109 }); 4110 4191 4111 /** 4192 4112 * Render the <ContentVisibilitySpecialPageControls> component by adding … … 4195 4115 * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component. 4196 4116 */ 4197 4198 4117 function ContentVisibilitySpecialPageFill() { 4199 4118 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], { … … 4204 4123 }); 4205 4124 }); 4206 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.4207 4208 4125 } 4126 4127 // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug. 4209 4128 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) { 4210 4129 // Add our component to the Slot provided by BlockVisibilityControls … … 4251 4170 })(function (_ref) { 4252 4171 var isVisible = _ref.isVisible, 4253 setState = _ref.setState, 4254 props = _ref.props; 4255 4172 setState = _ref.setState, 4173 props = _ref.props; 4256 4174 /** 4257 4175 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages … … 4259 4177 */ 4260 4178 var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4179 4261 4180 /** 4262 4181 * This controls the key used where the data is stored. 4263 4182 */ 4264 4265 4183 var type = 'specialPages'; 4184 4266 4185 /** 4267 4186 * Helps with the content of the inserter button. 4268 4187 */ 4269 4270 4188 var niceName = { 4271 4189 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'), 4272 4190 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility') 4273 4191 }; 4192 4274 4193 /** 4275 4194 * Toggle the visible state. Detemines whether the popup is open or not. 4276 4195 */ 4277 4278 4196 var toggleVisible = function toggleVisible() { 4279 4197 setState(function (state) { … … 4283 4201 }); 4284 4202 }; 4285 4286 4203 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4287 4204 className: "content-visibility-special-page-inserter" … … 4369 4286 })(function (_ref) { 4370 4287 var option = _ref.option, 4371 setState = _ref.setState,4372 props = _ref.props;4288 setState = _ref.setState, 4289 props = _ref.props; 4373 4290 var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : ''; 4374 4291 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 4391 4308 className: "special-page-help-intro content-visibility-help-text" 4392 4309 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility'))); 4393 }); // Register our visibility rule in the main rules object. 4394 4310 }); 4311 4312 // Register our visibility rule in the main rules object. 4395 4313 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule); 4396 4397 4314 function registerSpecialPageVisibilityRule(defaultRules) { 4398 4315 defaultRules.specialPage = { … … 4443 4360 })(function (_ref) { 4444 4361 var isVisible = _ref.isVisible, 4445 setState = _ref.setState, 4446 props = _ref.props; 4447 4362 setState = _ref.setState, 4363 props = _ref.props; 4448 4364 /** 4449 4365 * Our data, passed from PHP and manipulated to be useful here in JS. 4450 4366 */ 4451 4367 var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4368 4452 4369 /** 4453 4370 * This controls the key used where the data is stored. 4454 4371 */ 4455 4456 4372 var type = 'tags'; 4373 4457 4374 /** 4458 4375 * Helps with the content of the inserter button. 4459 4376 */ 4460 4461 4377 var niceName = { 4462 4378 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'), 4463 4379 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility') 4464 4380 }; 4381 4465 4382 /** 4466 4383 * Toggle the visible state. Detemines whether the popup is open or not. 4467 4384 */ 4468 4469 4385 var toggleVisible = function toggleVisible() { 4470 4386 setState(function (state) { … … 4474 4390 }); 4475 4391 }; 4476 4477 4392 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4478 4393 className: "content-visibility-special-page-inserter" … … 4541 4456 4542 4457 4543 4544 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 4545 4546 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 4547 4458 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 4459 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 4548 4460 4549 4461 … … 4554 4466 })(function (_ref) { 4555 4467 var option = _ref.option, 4556 setState = _ref.setState,4557 props = _ref.props;4468 setState = _ref.setState, 4469 props = _ref.props; 4558 4470 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["RadioControl"], { 4559 4471 label: "", … … 4573 4485 option: option 4574 4486 }); 4575 4576 4487 var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules); 4577 4578 4488 newBVRules.userAuthenticated = option; 4579 4489 props.setAttributes({ 4580 4490 contentVisibilityRules: newBVRules 4581 }); // Fire an action so we can see what's happened in other controls. This can be useful, 4491 }); 4492 4493 // Fire an action so we can see what's happened in other controls. This can be useful, 4582 4494 // for example when setting rules for roles - pointless if a user isn't signed in. 4583 4584 4495 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props); 4585 4496 } … … 4617 4528 })(function (_ref) { 4618 4529 var option = _ref.option, 4619 setState = _ref.setState,4620 props = _ref.props;4530 setState = _ref.setState, 4531 props = _ref.props; 4621 4532 var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : ''; 4622 4533 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 4656 4567 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4657 4568 4569 4658 4570 /** 4659 4571 * PHP sends through a list of all the categories on the site. We massage that data to be … … 4661 4573 * 4662 4574 */ 4663 4664 4575 function getCategories() { 4665 4576 var categories = []; 4666 4667 4577 if (ContentVisibility.categories.length === 0) { 4668 4578 return [{ … … 4672 4582 }]; 4673 4583 } 4674 4675 4584 for (var category in ContentVisibility.categories) { 4676 4585 categories.push({ … … 4680 4589 }); 4681 4590 } 4682 4683 4591 return categories; 4684 4592 } // end getCategories() 4685 4686 4593 4687 4594 /* harmony default export */ __webpack_exports__["default"] = (getCategories); … … 4701 4608 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4702 4609 4610 4703 4611 /** 4704 4612 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be … … 4706 4614 * 4707 4615 */ 4708 4709 4616 function getPages() { 4710 4617 var pages = []; 4711 4712 4618 if (ContentVisibility.pages.length === 0) { 4713 4619 return [{ … … 4717 4623 }]; 4718 4624 } 4719 4720 4625 for (var page in ContentVisibility.pages) { 4721 4626 pages.push({ … … 4725 4630 }); 4726 4631 } 4727 4728 4632 return pages; 4729 4633 } // end getPages() 4730 4731 4634 4732 4635 /* harmony default export */ __webpack_exports__["default"] = (getPages); … … 4746 4649 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4747 4650 4651 4748 4652 /** 4749 4653 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be … … 4751 4655 * 4752 4656 */ 4753 4754 4657 function getPosts() { 4755 4658 var posts = []; 4756 4757 4659 if (ContentVisibility.posts.length === 0) { 4758 4660 return [{ … … 4762 4664 }]; 4763 4665 } 4764 4765 4666 for (var post in ContentVisibility.posts) { 4766 4667 posts.push({ … … 4770 4671 }); 4771 4672 } 4772 4773 4673 return posts; 4774 4674 } // end getPosts() 4775 4776 4675 4777 4676 /* harmony default export */ __webpack_exports__["default"] = (getPosts); … … 4794 4693 4795 4694 4695 4796 4696 /** 4797 4697 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages … … 4799 4699 * 4800 4700 */ 4801 4802 4701 function getSpecialPages() { 4803 4702 var specialPages = []; 4804 4805 4703 for (var specialPage in ContentVisibility.specialPages) { 4806 4704 specialPages.push({ … … 4814 4712 }); 4815 4713 } 4816 4817 4714 return specialPages; 4818 4715 } // end getSpecialPages() 4819 4820 4716 4821 4717 /* harmony default export */ __webpack_exports__["default"] = (getSpecialPages); … … 4835 4731 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4836 4732 4733 4837 4734 /** 4838 4735 * PHP sends through a list of all the tags on the site. We massage that data to be … … 4840 4737 * 4841 4738 */ 4842 4843 4739 function getTags() { 4844 4740 var tags = []; 4845 4846 4741 if (ContentVisibility.tags.length === 0) { 4847 4742 return [{ … … 4851 4746 }]; 4852 4747 } 4853 4854 4748 for (var tag in ContentVisibility.tags) { 4855 4749 tags.push({ … … 4859 4753 }); 4860 4754 } 4861 4862 4755 return tags; 4863 4756 } // end getTags() 4864 4865 4757 4866 4758 /* harmony default export */ __webpack_exports__["default"] = (getTags); … … 4879 4771 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js"); 4880 4772 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__); 4881 4882 4773 4883 4774 /** … … 4900 4791 } //end hasParentWithClass() 4901 4792 4902 4903 4793 /* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass); 4904 4794 … … 4917 4807 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__); 4918 4808 4809 4919 4810 /** 4920 4811 * Determine if the passed block props contain rules of the passed type. … … 4925 4816 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise. 4926 4817 */ 4927 4928 4818 function hasRules(props, type) { 4929 4819 if (!props.attributes.contentVisibilityRules) { 4930 4820 return false; 4931 4821 } 4932 4933 4822 if (!props.attributes.contentVisibilityRules[type]) { 4934 4823 return false; 4935 } // Default to false. Passed through a filter later.4936 4937 4824 } 4825 4826 // Default to false. Passed through a filter later. 4938 4827 var hasRules = false; 4939 4940 4828 switch (type) { 4941 4829 case 'userAuthenticated': … … 4943 4831 hasRules = true; 4944 4832 } 4945 4946 4833 break; 4947 4948 4834 case 'specialPage': 4949 var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; // If *any* of the special pages contains rules, then this is true. Is an array of arrays. 4950 4951 var specialPageRulesValues = Object.values(allSpecialPageRules); // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules. 4952 4835 var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; 4836 4837 // If *any* of the special pages contains rules, then this is true. Is an array of arrays. 4838 var specialPageRulesValues = Object.values(allSpecialPageRules); 4839 4840 // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules. 4953 4841 hasRules = specialPageRulesValues.some(function (el) { 4954 4842 return el.length > 0; 4955 4843 }); 4956 4844 break; 4957 4958 4845 default: 4959 4846 break; 4960 4847 } 4961 4962 4848 return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type); 4963 4849 } // end hasRules() 4964 4965 4850 4966 4851 /* harmony default export */ __webpack_exports__["default"] = (hasRules); … … 4987 4872 } // end isValidBlockType() 4988 4873 4989 4990 4874 /* harmony default export */ __webpack_exports__["default"] = (isValidBlockType); 4991 4875 … … 5003 4887 /* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js"); 5004 4888 4889 5005 4890 /** 5006 4891 * The Popup component closes if it loses focus by default. For us, we want to ensure it … … 5011 4896 * @return null 5012 4897 */ 5013 5014 4898 var keepPopupOpen = function keepPopupOpen(event) { 5015 4899 if (false === event) { 5016 4900 return; 5017 } // Determine if what has been clicked on is in the popover or not.5018 5019 4901 } 4902 4903 // Determine if what has been clicked on is in the popover or not. 5020 4904 var eTarget = event.target; 5021 5022 4905 if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) { 5023 4906 event.stopPropagation(); 5024 4907 } 5025 5026 4908 return; 5027 4909 }; 5028 5029 4910 /* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen); 5030 4911 … … 5043 4924 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 5044 4925 4926 5045 4927 /** 5046 4928 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are … … 5055 4937 * @return string the text to be used for the button. 5056 4938 */ 5057 5058 4939 var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) { 5059 4940 // if nothing is set, return a prompt to select special pages. … … 5061 4942 return defaultVal; 5062 4943 } 5063 5064 4944 var shownOrHidden = props.attributes.contentVisibility; 5065 4945 var specialPages = props.attributes.contentVisibilityRules.specialPage[type]; … … 5069 4949 return insertText; 5070 4950 }; 5071 5072 4951 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText); 5073 4952 … … 5093 4972 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 5094 4973 return 'content-visibility-special-page-inserter-toggle'; 5095 } // We have some items selected, so we have a couple classes.5096 5097 4974 } 4975 4976 // We have some items selected, so we have a couple classes. 5098 4977 return 'content-visibility-special-page-inserter-toggle has-items'; 5099 4978 }; 5100 5101 4979 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass); 5102 4980 -
content-visibility/tags/0.2.9/build/index.js.map
r2589501 r2833193 1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/t ypeof.js","webpack:///./node_modules/goober/dist/goober.module.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,a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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;;AAEA;AACA;AACA;AACA,iCAAiC,kDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAM;AACtB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,gCAAgC,kDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,wBAAwB,yDAAW;AACnC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,qDAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK,qCAAqC;AAC1C,GAAG;AACH;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,GAAG,4CAAK,2CAA2C;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG;AACH;;AAEA,2BAA2B,kDAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA;AACA,gBAAgB,oDAAM;AACtB;;AAEA,EAAE,uDAAS;AACX;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,0BAA0B,4CAAK,mEAAmE,4CAAK;AAC1G;AACA;AACA;AACA;AACA,GAAG,uBAAuB,4CAAK,8BAA8B,4CAAK;AAClE;AACA,GAAG,gBAAgB,4CAAK;AACxB;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,iDAAiD;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,iEAAiE,4CAAK;AACzE;;AAEA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEe,0EAAW,EAAC;AACkB;AAC7C;;;;;;;;;;;;AC76BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAK,CAAEC,4EAAgB,CAAED,KAAK,CAACE,IAAR,CAAvB,EAAwC;AACpC,aAAO,yEAAC,SAAD,EAAeF,KAAf,CAAP;AACH,KAJa,CAMd;AACA;AACA;AACA;;;AACA,QAAIG,YAAY,GAAIH,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAzC,GAA0E,eAA1E,GAA4F,eAA/G;AAEA,WACI,yEAAC,2DAAD,QACI,yEAAC,SAAD,EAAeN,KAAf,CADJ,EAEI,yEAAC,wEAAD,QACI,yEAAC,+DAAD;AAAW,WAAK,EAAEO,0DAAE,CAAC,YAAD,EAAe,oBAAf,CAApB;AAA0D,eAAS,EAAC,6BAApE;AAAkG,iBAAW,EAAE;AAA/G,OAEI,yEAAC,8DAAD;AAAU,eAAS,EAAC;AAApB,OACI,yEAAC,+FAAD;AAA+B,WAAK,EAAEP;AAAtC,MADJ,CAFJ,EAMI;AAAK,eAAS,EAAEG,YAAY,GAAG;AAA/B,OACI,yEAAC,8DAAD;AAAU,eAAS,EAAC;AAApB,OACI,yEAAC,wGAAD;AAAmC,WAAK,EAAEH;AAA1C,MADJ,CADJ,EAKI,yEAAC,0DAAD;AAAM,UAAI,EAAC,mCAAX;AAA+C,eAAS,EAAEA;AAA1D,MALJ,CANJ,CADJ,CAFJ,CADJ;AAuBH,GAnCD;AAoCH,CAtCkE,EAsChE,2BAtCgE,CAA5D;AAwCPQ,kEAAS,CAAE,kBAAF,EAAsB,gDAAtB,EAAwEX,yBAAxE,CAAT;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASY,kCAAT,CAA4CC,QAA5C,EAAsD;AAEzD;AACA,MAAIT,4EAAgB,CAACS,QAAQ,CAACR,IAAV,CAApB,EAAqC;AAEjC;AACA,QAAIS,YAAY,GAAGC,qEAAY,CAAC,iDAAD,EAAoD;AAC/EN,mCAA6B,EAAE,KADgD;AAE/EO,uBAAiB,EAAE;AAF4D,KAApD,CAA/B,CAHiC,CAQjC;;AACAH,YAAQ,CAACN,UAAT,GAAsBU,oDAAM,CAACJ,QAAQ,CAACN,UAAV,EAAsB;AAC9CC,4BAAsB,EAAE;AACpBU,YAAI,EAAE,QADc;AAEpBC,eAAO,EAAEL;AAFW;AADsB,KAAtB,CAA5B;AAMH;;AAED,SAAOD,QAAP;AAEH,C,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASO,mCAAT,CAA6CC,UAA7C,EAAyDC,SAAzD,EAAoEf,UAApE,EAAgF;AAEnF;AACA,MAAIH,4EAAgB,CAACkB,SAAS,CAACjB,IAAX,CAApB,EAAsC;AAClCgB,cAAU,CAACb,sBAAX,GAAoCD,UAAU,CAACC,sBAA/C;AACH;;AAED,SAAOa,UAAP;AAEH,C,CAAA;;AAEDV,kEAAS,CAAE,0BAAF,EAA8B,uDAA9B,EAAuFC,kCAAvF,CAAT;AACAD,kEAAS,CAAE,kCAAF,EAAsC,wDAAtC,EAAgGS,mCAAhG,CAAT;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpIA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEO,IAAMG,iCAAiC,GAAGC,oEAAS,CAAE;AACxDC,QAAM,EAAE;AADgD,CAAF,CAAT,CAE5C,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,MAAIwB,YAAY,GAAGxB,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAA3D;;AAEA,MAAK,CAAEkB,YAAP,EAAsB;AAClB,WACI,yEAAC,8DAAD,QACI,yEAAC,4HAAD;AAAqC,WAAK,EAAGxB;AAA7C,MADJ,CADJ;AAKH;;AAED,SACI,yEAAC,4HAAD;AAAqC,SAAK,EAAGA;AAA7C,IADJ;AAIH,CAlBgD,CAA1C;AAoBP;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASyB,6BAAT,CAAwCf,QAAxC,EAAmD;AAEzD;AACA,MAAKT,2EAAgB,CAAES,QAAQ,CAACR,IAAX,CAArB,EAAyC;AAExC;AACAQ,YAAQ,CAACN,UAAT,GAAsBU,oDAAM,CAAEJ,QAAQ,CAACN,UAAX,EAAuB;AAClDsB,uBAAiB,EAAE;AAClBX,YAAI,EAAE;AADY;AAD+B,KAAvB,CAA5B;AAKA;;AAED,SAAOL,QAAP;AAEA,C,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASiB,4BAAT,CAAuCT,UAAvC,EAAmDC,SAAnD,EAA8Df,UAA9D,EAA2E;AAEjF;AACA,MAAKH,2EAAgB,CAAEkB,SAAS,CAACjB,IAAZ,CAArB,EAA0C;AACzCgB,cAAU,CAACQ,iBAAX,GAA+BtB,UAAU,CAACsB,iBAA1C;AACA;;AAED,SAAOR,UAAP;AAEA,C,CAAA;;AAEDV,kEAAS,CAAE,0BAAF,EAA8B,kDAA9B,EAAkFiB,6BAAlF,CAAT;AACAjB,kEAAS,CAAE,kCAAF,EAAsC,iDAAtC,EAAyFmB,4BAAzF,CAAT,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AAEA;AAEA;AAEO,IAAMC,6BAA6B,GAAGP,oEAAS,CAAE;AACpDG,cAAY,EAAE;AADsC,CAAF,CAAT,CAExC;AAAA,MAAIA,YAAJ,QAAIA,YAAJ;AAAA,MAAkBD,QAAlB,QAAkBA,QAAlB;AAAA,MAA4BvB,KAA5B,QAA4BA,KAA5B;AAAA,SACD,yEAAC,mEAAD;AACI,SAAK,EAAGA,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAxC,GAAwEC,0DAAE,CAAE,eAAF,EAAmB,oBAAnB,CAA1E,GAAsHA,0DAAE,CAAE,gBAAF,EAAoB,oBAApB,CADpI;AAEI,WAAO,EAAGP,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAxC,IAAyEkB,YAFvF;AAGI,YAAQ,EAAG,kBAAEA,YAAF;AAAA,aAAoBD,QAAQ,CAAE,UAAEM,KAAF,EAAa;AAElD,YAAIC,UAAU,qBAAQ9B,KAAK,CAACI,UAAN,CAAiBC,sBAAzB,CAAd;;AACAyB,kBAAU,CAACxB,6BAAX,GAA2CkB,YAA3C;AAEAxB,aAAK,CAAC+B,aAAN,CAAqB;AACjB1B,gCAAsB,EAAEyB;AADP,SAArB,EALkD,CASlD;AACA;;AACAE,yEAAQ,CAAE,0DAAF,EAA8D,6BAA9D,EAA6FR,YAA7F,EAA2GxB,KAA3G,CAAR,CAXkD,CAalD;;AACA,eACI;AAAEwB,sBAAY,EAAE,CAAEK,KAAK,CAACL;AAAxB,SADJ;AAGH,OAjBsC,CAA5B;AAAA;AAHf,IADC;AAAA,CAFwC,CAAtC;AA4BP;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASS,yCAAT,CAAoDvB,QAApD,EAA+D;AAErE;AACA,MAAKT,2EAAgB,CAAES,QAAQ,CAACR,IAAX,CAArB,EAAyC;AAExC;AACAQ,YAAQ,CAACN,UAAT,GAAsBU,oDAAM,CAAEJ,QAAQ,CAACN,UAAX,EAAuB;AAClDE,mCAA6B,EAAE;AAC9BS,YAAI,EAAE;AADwB;AADmB,KAAvB,CAA5B;AAKA;;AAED,SAAOL,QAAP;AAEA,C,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASwB,0CAAT,CAAqDhB,UAArD,EAAiEC,SAAjE,EAA4Ef,UAA5E,EAAyF;AAE/F;AACA,MAAKH,2EAAgB,CAAEkB,SAAS,CAACjB,IAAZ,CAArB,EAA0C;AACzCgB,cAAU,CAACZ,6BAAX,GAA2CF,UAAU,CAACE,6BAAtD;AACG;;AAEJ,SAAOY,UAAP;AAEA,C,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMiB,mBAAmB,GAAGrC,qFAA0B,CAAE,UAAEsC,cAAF,EAAsB;AAE1E,SAAO,UAAEpC,KAAF,EAAa;AAEhB,QAAK,CAAEA,KAAK,CAACI,UAAN,CAAiBsB,iBAAnB,IAAwC,CAAE1B,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAvF,EAAuH;AACnH,aAAO,yEAAC,cAAD,EAAoBN,KAApB,CAAP;AACH;;AAED,QAAIqC,aAAa,GAAG,sCAAsCrC,KAAK,CAACI,UAAN,CAAiBsB,iBAA3E;AAEA,WAAO,yEAAC,cAAD,4EAAoB1B,KAApB;AAA2B,eAAS,EAAGqC;AAAvC,OAAP;AAEH,GAVD;AAWH,CAbqD,EAanD,qBAbmD,CAAtD;AAeA7B,kEAAS,CAAE,0BAAF,EAA8B,8DAA9B,EAA8FyB,yCAA9F,EAAyI,GAAzI,CAAT;AACAzB,kEAAS,CAAE,kCAAF,EAAsC,+DAAtC,EAAuG0B,0CAAvG,EAAmJ,GAAnJ,CAAT;AAEA1B,kEAAS,CAAE,uBAAF,EAA2B,yDAA3B,EAAsF2B,mBAAtF,EAA2G,GAA3G,CAAT,C;;;;;;;;;;;;;;;;;;;;;;;;;;AC3GA;AACA;AACA;AAEA;AACA;AAGO,IAAMG,0CAA0C,GAAGjB,oEAAS,CAAE;AACjEC,QAAM,EAAE;AADyD,CAAF,CAAT,CAErD,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,MAAIwB,YAAY,GAAMxB,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAA9D;AACA,MAAIoB,iBAAiB,GAAG1B,KAAK,CAACI,UAAN,CAAiBmC,cAAjB,CAAiC,mBAAjC,CAAxB;;AAEA,MAAK,CAAEf,YAAF,IAAkB,CAAEE,iBAAzB,EAA6C;AACzC,WACI,yEAAC,8DAAD,QAAU,yEAAC,+IAAD;AAAqD,WAAK,EAAG1B;AAA7D,MAAV,CADJ;AAGH;;AAED,SACI,yEAAC,+IAAD;AAAqD,SAAK,EAAGA;AAA7D,IADJ;AAIH,CAjByD,CAAnD;AAmBP;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwC,qCAAT,GAAiD;AAC7C,SACI,yEAAC,0DAAD;AAAM,QAAI,EAAC;AAAX,KAEQ,UAAEC,SAAF,EAAiB;AACb,WACI,yEAAC,0CAAD;AAA4C,WAAK,EAAGA;AAApD,MADJ;AAGH,GANT,CADJ;AAYH,C,CAED;;;AACAC,yEAAc,CAAE,gDAAF,EAAoD;AAAEC,QAAM,EAAEH;AAAV,CAApD,CAAd,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMI,4BAA4B,GAAGvB,oEAAS,CAAE;AACnDC,QAAM,EAAE;AAD2C,CAAF,CAAT,CAEvC,gBAA2D;AAAA,MAAvDA,MAAuD,QAAvDA,MAAuD;AAAA,MAA/CC,QAA+C,QAA/CA,QAA+C;AAAA,MAArCvB,KAAqC,QAArCA,KAAqC;AAAA,MAA9B6C,IAA8B,QAA9BA,IAA8B;AAAA,MAAxBC,UAAwB,QAAxBA,UAAwB;AAAA,MAAZ/B,IAAY,QAAZA,IAAY;;AAE5D;AACJ;AACA;AACA;AACA;AACA;AACI,MAAMgC,QAAQ,GAAG,SAAXA,QAAW,CAAEzB,MAAF,EAAc;AAE3B;AACAC,YAAQ,CAAE;AAAED,YAAM,EAANA;AAAF,KAAF,CAAR;AAEAtB,SAAK,CAAC+B,aAAN,CAAqB;AACjB1B,4BAAsB,kCACfL,KAAK,CAACI,UAAN,CAAiBC,sBADF;AAElB2C,mBAAW,kCACJhD,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WADpC,wFAENjC,IAFM,EAECO,MAFD;AAFO;AADL,KAArB;AAUH,GAfD;;AAiBA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,oEAAD;AACI,WAAO,EAAGuB,IADd;AAEI,SAAK,EAAG7C,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,KAA6DO,MAFzE;AAGI,YAAQ,EAAGyB,QAHf;AAII,cAAU,EAAGD,UAJjB;AAKI,gBAAY,EAAG,6BAA+C;AAAA,UAA3CG,OAA2C,SAA3CA,OAA2C;AAAA,UAAlC3B,MAAkC,SAAlCA,MAAkC;AAAA,UAA1B4B,OAA0B,SAA1BA,OAA0B;AAAA,UAAjBC,QAAiB,SAAjBA,QAAiB;AAC1D,aACI;AAAK,iBAAS,+DAAwDA,QAAQ,IAAI,UAApE;AAAd,SACI;AAAO,YAAI,EAAC,UAAZ;AAAuB,gBAAQ,EAAGD,OAAlC;AAA4C,eAAO,EAAGD,OAAtD;AAAgE,gBAAQ,EAAG,CAAC,CAA5E;AAAgF,gBAAQ,EAAGE;AAA3F,QADJ,EAEI,uFAAO7B,MAAM,CAAC8B,IAAP,IAAe,EAAtB,OAA2B9B,MAAM,CAAC+B,KAAlC,CAFJ,CADJ;AAMH,KAZL,CAaI;;AAbJ,IADJ,CADJ;AAoBH,CA/C2C,CAArC,C;;;;;;;;;;;;;;;;;;;;;;;ACrCP;AACA;AACA;AAEO,IAAMC,mCAAmC,GAAGjC,oEAAS,CAAE;AAC1DC,QAAM,EAAE;AADkD,CAAF,CAAT,CAE9C,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,SACI,yEAAC,+DAAD;AACI,SAAK,EAAGO,0DAAE,CAAE,iBAAF,EAAqB,8BAArB,CADd;AAEI,eAAW,EAAG,IAFlB;AAGI,aAAS,EAAC;AAHd,KAKI,yEAAC,8DAAD,QACI,yEAAC,kEAAD;AACI,SAAK,EAAGA,0DAAE,CAAE,qDAAF,EAAyD,oBAAzD,CADd;AAEI,QAAI,EAAC,EAFT;AAGI,YAAQ,EAAGP,KAAK,CAACI,UAAN,CAAiBsB,iBAAjB,IAAsCJ,MAHrD;AAII,WAAO,EAAG,CACN;AAAE+B,WAAK,EAAE9C,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAAX;AAA8CgD,WAAK,EAAE;AAArD,KADM,EAEN;AAAEF,WAAK,EAAE9C,0DAAE,CAAE,QAAF,EAAY,oBAAZ,CAAX;AAA+CgD,WAAK,EAAE;AAAtD,KAFM,CAJd;AAQI,YAAQ,EAAG,kBAAEjC,MAAF,EAAc;AAErBC,cAAQ,CAAE;AAAED,cAAM,EAANA;AAAF,OAAF,CAAR;AAEAtB,WAAK,CAAC+B,aAAN,CAAqB;AACjBL,yBAAiB,EAAEJ;AADF,OAArB;AAIH;AAhBL,IADJ,CALJ,CADJ;AA6BH,CAjCkD,CAA5C,C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJP;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA,IAAMkC,gBAAgB,GAAGnC,oEAAS,CAAE;AAChCoC,WAAS,EAAE;AADqB,CAAF,CAAT,CAEpB,gBAAsC;AAAA,MAAlCA,SAAkC,QAAlCA,SAAkC;AAAA,MAAvBlC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;;AAEvC;AACJ;AACA;AACI,MAAM6C,IAAI,GAAGa,kEAAQ,EAArB;AAEA;AACJ;AACA;;AACI,MAAM3C,IAAI,GAAG,OAAb;AAEA;AACJ;AACA;;AACI,MAAM4C,QAAQ,GAAG;AACbC,YAAQ,EAAErD,0DAAE,CAAE,MAAF,EAAU,oBAAV,CADC;AAEbsD,UAAM,EAAEtD,0DAAE,CAAE,OAAF,EAAW,oBAAX;AAFG,GAAjB;AAKA;AACJ;AACA;;AACI,MAAMuD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBvC,YAAQ,CAAE,UAAEM,KAAF;AAAA,aAAe;AAAE4B,iBAAS,EAAE,CAAE5B,KAAK,CAAC4B;AAArB,OAAf;AAAA,KAAF,CAAR;AACH,GAFD;;AAIA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,0DAAD;AAAM,QAAI,EAAC,YAAX;AAAwB,YAAQ,EAAC;AAAjC,IADJ,EAEI,yEAAC,4DAAD;AAAQ,eAAW,MAAnB;AAAoB,WAAO,MAA3B;AAA4B,UAAM,MAAlC;AAAmC,WAAO,EAAGK,aAA7C;AAA6D,aAAS,EAAGC,0FAA6B,CAAE/D,KAAF,EAASe,IAAT;AAAtG,KACMiD,iFAAsB,CAAEhE,KAAF,EAASe,IAAT,EAAeR,0DAAE,CAAE,uBAAF,EAA2B,oBAA3B,CAAjB,EAAoEoD,QAApE,CAD5B,EAEMF,SAAS,IACP,yEAAC,6DAAD;AAAS,YAAQ,EAAC,aAAlB;AAAgC,aAAS,EAAC,2DAA1C;AAAsG,WAAO,EAAEQ,gEAAaA;AAA5H,KAEI,qFAAM1D,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAR,CAFJ,EAII;AAAG,aAAS,EAAC;AAAb,KAA8CA,0DAAE,CAAE,8DAAF,EAAkE,oBAAlE,CAAF,GAA6FP,KAAK,CAACI,UAAN,CAAiBsB,iBAA5J,CAJJ,EAKI,yEAAC,wGAAD;AAA8B,QAAI,EAAGmB,IAArC;AAA4C,cAAU,EAAC,aAAvD;AAAqE,SAAK,EAAG7C,KAA7E;AAAqF,QAAI,EAAGe;AAA5F,IALJ,EAMI;AAAG,aAAS,EAAC;AAAb,KACI,yEAAC,4DAAD;AAAQ,aAAS,MAAjB;AAAkB,aAAS,EAAC,yCAA5B;AAAsE,WAAO,EAAE+C;AAA/E,KAAgGvD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAlG,CADJ,CANJ,EAUI,yEAAC,oEAAD,OAVJ,EAYI,oFAAG,yEAAC,0DAAD;AAAM,QAAI,EAAC,aAAX;AAAyB,YAAQ,EAAC;AAAlC,IAAH,OAA6C,yFAAUA,0DAAE,CAAE,MAAF,EAAU,oBAAV,CAAZ,CAA7C,CAZJ,EAaI,oFAAKA,0DAAE,6FAAuFP,KAAK,CAACI,UAAN,CAAiBsB,iBAAxG,2DAA0K1B,KAAK,CAACI,UAAN,CAAiBsB,iBAA3L,iFAA0R,oBAA1R,CAAP,CAbJ,EAeI,yEAAC,gEAAD;AAAY,aAAS,EAAC,kCAAtB;AAAyD,QAAI,EAAC,IAA9D;AAAmE,SAAK,EAAGnB,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAA7E;AAAiH,WAAO,EAAGuD;AAA3H,IAfJ,CAHR,CAFJ,CADJ;AA2BH,CAxDwB,CAAzB;AA0DeN,+EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA,IAAMU,gBAAgB,GAAG7C,oEAAS,CAAE;AAChCoC,WAAS,EAAE;AADqB,CAAF,CAAT,CAEpB,gBAAsC;AAAA,MAAlCA,SAAkC,QAAlCA,SAAkC;AAAA,MAAvBlC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;;AAEvC;AACJ;AACA;AACI,MAAM6C,IAAI,GAAGsB,kEAAQ,EAArB;AAEA;AACJ;AACA;;AACI,MAAMpD,IAAI,GAAG,OAAb;AAEA;AACJ;AACA;;AACI,MAAM4C,QAAQ,GAAG;AACbC,YAAQ,EAAErD,0DAAE,CAAE,MAAF,EAAU,oBAAV,CADC;AAEbsD,UAAM,EAAEtD,0DAAE,CAAE,OAAF,EAAW,oBAAX;AAFG,GAAjB;AAKA;AACJ;AACA;;AACI,MAAMuD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBvC,YAAQ,CAAE,UAAEM,KAAF;AAAA,aAAe;AAAE4B,iBAAS,EAAE,CAAE5B,KAAK,CAAC4B;AAArB,OAAf;AAAA,KAAF,CAAR;AACH,GAFD;;AAIA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,0DAAD;AAAM,QAAI,EAAC,YAAX;AAAwB,YAAQ,EAAC;AAAjC,IADJ,EAEI,yEAAC,4DAAD;AAAQ,eAAW,MAAnB;AAAoB,WAAO,MAA3B;AAA4B,UAAM,MAAlC;AAAmC,WAAO,EAAGK,aAA7C;AAA6D,aAAS,EAAGC,0FAA6B,CAAE/D,KAAF,EAASe,IAAT;AAAtG,KACMiD,iFAAsB,CAAEhE,KAAF,EAASe,IAAT,EAAeR,0DAAE,CAAE,uBAAF,EAA2B,oBAA3B,CAAjB,EAAoEoD,QAApE,CAD5B,EAEMF,SAAS,IACP,yEAAC,6DAAD;AAAS,YAAQ,EAAC,aAAlB;AAAgC,aAAS,EAAC,2DAA1C;AAAsG,WAAO,EAAEQ,gEAAaA;AAA5H,KAEI,qFAAM1D,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAR,CAFJ,EAII;AAAG,aAAS,EAAC;AAAb,KAA8CA,0DAAE,CAAE,8DAAF,EAAkE,oBAAlE,CAAF,GAA6FP,KAAK,CAACI,UAAN,CAAiBsB,iBAA5J,CAJJ,EAKI,yEAAC,wGAAD;AAA8B,QAAI,EAAGmB,IAArC;AAA4C,cAAU,EAAC,aAAvD;AAAqE,SAAK,EAAG7C,KAA7E;AAAqF,QAAI,EAAGe;AAA5F,IALJ,EAMI;AAAG,aAAS,EAAC;AAAb,KACI,yEAAC,4DAAD;AAAQ,aAAS,MAAjB;AAAkB,aAAS,EAAC,yCAA5B;AAAsE,WAAO,EAAE+C;AAA/E,KAAgGvD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAlG,CADJ,CANJ,EAUI,yEAAC,oEAAD,OAVJ,EAYI,oFAAG,yEAAC,0DAAD;AAAM,QAAI,EAAC,aAAX;AAAyB,YAAQ,EAAC;AAAlC,IAAH,OAA6C,yFAAUA,0DAAE,CAAE,MAAF,EAAU,oBAAV,CAAZ,CAA7C,CAZJ,EAaI,oFAAKA,0DAAE,6FAAuFP,KAAK,CAACI,UAAN,CAAiBsB,iBAAxG,2DAA0K1B,KAAK,CAACI,UAAN,CAAiBsB,iBAA3L,iFAA0R,oBAA1R,CAAP,CAbJ,EAeI,yEAAC,gEAAD;AAAY,aAAS,EAAC,kCAAtB;AAAyD,QAAI,EAAC,IAA9D;AAAmE,SAAK,EAAGnB,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAA7E;AAAiH,WAAO,EAAGuD;AAA3H,IAfJ,CAHR,CAFJ,CADJ;AA2BH,CAxDwB,CAAzB;AA0DeI,+EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA,IAAME,oBAAoB,GAAG/C,oEAAS,CAAE;AACpCoC,WAAS,EAAE;AADyB,CAAF,CAAT,CAExB,gBAAsC;AAAA,MAAlCA,SAAkC,QAAlCA,SAAkC;AAAA,MAAvBlC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;;AAEvC;AACJ;AACA;AACI,MAAM6C,IAAI,GAAGwB,uEAAa,EAA1B;AAEA;AACJ;AACA;;AACI,MAAMtD,IAAI,GAAG,YAAb;AAEA;AACJ;AACA;;AACI,MAAM4C,QAAQ,GAAG;AACbC,YAAQ,EAAErD,0DAAE,CAAE,UAAF,EAAc,oBAAd,CADC;AAEbsD,UAAM,EAAEtD,0DAAE,CAAE,YAAF,EAAgB,oBAAhB;AAFG,GAAjB;AAKA;AACJ;AACA;;AACI,MAAMuD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBvC,YAAQ,CAAE,UAAEM,KAAF;AAAA,aAAe;AAAE4B,iBAAS,EAAE,CAAE5B,KAAK,CAAC4B;AAArB,OAAf;AAAA,KAAF,CAAR;AACH,GAFD;;AAIA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,0DAAD;AAAM,QAAI,EAAC,UAAX;AAAsB,YAAQ,EAAC;AAA/B,IADJ,EAEI,yEAAC,4DAAD;AAAQ,eAAW,MAAnB;AAAoB,WAAO,MAA3B;AAA4B,UAAM,MAAlC;AAAmC,WAAO,EAAGK,aAA7C;AAA6D,aAAS,EAAGC,0FAA6B,CAAE/D,KAAF,EAASe,IAAT;AAAtG,KACMiD,iFAAsB,CAAEhE,KAAF,EAASe,IAAT,EAAeR,0DAAE,CAAE,4BAAF,EAAgC,oBAAhC,CAAjB,EAAyEoD,QAAzE,CAD5B,EAEMF,SAAS,IACP,yEAAC,6DAAD;AAAS,YAAQ,EAAC,aAAlB;AAAgC,aAAS,EAAC,2DAA1C;AAAsG,WAAO,EAAEQ,gEAAaA;AAA5H,KAEI,qFAAM1D,0DAAE,CAAE,mBAAF,EAAuB,oBAAvB,CAAR,CAFJ,EAII;AAAG,aAAS,EAAC;AAAb,KAA8CA,0DAAE,CAAE,mEAAF,EAAuE,oBAAvE,CAAF,GAAkGP,KAAK,CAACI,UAAN,CAAiBsB,iBAAjK,CAJJ,EAKI,yEAAC,wGAAD;AAA8B,QAAI,EAAGmB,IAArC;AAA4C,cAAU,EAAC,iBAAvD;AAAyE,SAAK,EAAG7C,KAAjF;AAAyF,QAAI,EAAGe;AAAhG,IALJ,EAMI;AAAG,aAAS,EAAC;AAAb,KACI,yEAAC,4DAAD;AAAQ,aAAS,MAAjB;AAAkB,aAAS,EAAC,sCAA5B;AAAmE,WAAO,EAAE+C;AAA5E,KAA6FvD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAA/F,CADJ,CANJ,EAUI,yEAAC,oEAAD,OAVJ,EAYI,oFAAG,yEAAC,0DAAD;AAAM,QAAI,EAAC,aAAX;AAAyB,YAAQ,EAAC;AAAlC,IAAH,OAA6C,yFAAUA,0DAAE,CAAE,MAAF,EAAU,oBAAV,CAAZ,CAA7C,CAZJ,EAaI,oFAAKA,0DAAE,kGAA4FP,KAAK,CAACI,UAAN,CAAiBsB,iBAA7G,2FAA+M1B,KAAK,CAACI,UAAN,CAAiBsB,iBAAhO,0FAAwU,oBAAxU,CAAP,CAbJ,EAeI,yEAAC,gEAAD;AAAY,aAAS,EAAC,kCAAtB;AAAyD,QAAI,EAAC,IAA9D;AAAmE,SAAK,EAAGnB,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAA7E;AAAiH,WAAO,EAAGuD;AAA3H,IAfJ,CAHR,CAFJ,CADJ;AA2BH,CAxD4B,CAA7B;AA0DeM,mFAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AAEA;AACA;AAGO,IAAME,oCAAoC,GAAGjD,oEAAS,CAAE;AAC3DC,QAAM,EAAE;AADmD,CAAF,CAAT,CAE/C,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,MAAIwB,YAAY,GAAMxB,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAA9D;AACA,MAAIoB,iBAAiB,GAAG1B,KAAK,CAACI,UAAN,CAAiBmC,cAAjB,CAAiC,mBAAjC,CAAxB;;AAEA,MAAK,CAAEf,YAAF,IAAkB,CAAEE,iBAAzB,EAA6C;AACzC,WACI,yEAAC,8DAAD,QACI,yEAAC,mHAAD;AAA8C,WAAK,EAAG1B;AAAtD,MADJ,CADJ;AAKH;;AAED,SACI,yEAAC,mHAAD;AAA8C,SAAK,EAAGA;AAAtD,IADJ;AAIH,CAnBmD,CAA7C;AAqBP;AACA;AACA;AACA;AACA;AACA;;AACA,SAASuE,gCAAT,GAA4C;AAExC,SACI,yEAAC,0DAAD;AAAM,QAAI,EAAC;AAAX,KAEQ,UAAE9B,SAAF,EAAiB;AACb,WACI,yEAAC,oCAAD;AAAsC,WAAK,EAAGA;AAA9C,MADJ;AAGH,GANT,CADJ;AAYH,C,CAED;;;AACA,IAAK,wCAAwC+B,iBAAiB,CAACC,MAA1D,IAAoE,cAAcD,iBAAiB,CAACC,MAApG,IAA8G,QAAQD,iBAAiB,CAACE,KAA7I,EAAqJ;AACjJ;AACAhC,2EAAc,CAAE,yCAAF,EAA6C;AAAEC,UAAM,EAAE4B;AAAV,GAA7C,CAAd;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDD;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA,IAAMI,uBAAuB,GAAGtD,oEAAS,CAAE;AACvCoC,WAAS,EAAE;AAD4B,CAAF,CAAT,CAE3B,gBAAsC;AAAA,MAAlCA,SAAkC,QAAlCA,SAAkC;AAAA,MAAvBlC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;;AAEvC;AACJ;AACA;AACA;AACI,MAAM4E,YAAY,GAAGC,0EAAe,EAApC;AAEA;AACJ;AACA;;AACI,MAAM9D,IAAI,GAAG,cAAb;AAEA;AACJ;AACA;;AACI,MAAM4C,QAAQ,GAAG;AACbC,YAAQ,EAAErD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CADC;AAEbsD,UAAM,EAAEtD,0DAAE,CAAE,eAAF,EAAmB,oBAAnB;AAFG,GAAjB;AAKA;AACJ;AACA;;AACI,MAAMuD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBvC,YAAQ,CAAE,UAAEM,KAAF;AAAA,aAAe;AAAE4B,iBAAS,EAAE,CAAE5B,KAAK,CAAC4B;AAArB,OAAf;AAAA,KAAF,CAAR;AACH,GAFD;;AAIA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,0DAAD;AAAM,QAAI,EAAC,WAAX;AAAuB,YAAQ,EAAC;AAAhC,IADJ,EAEI,yEAAC,4DAAD;AAAQ,eAAW,MAAnB;AAAoB,WAAO,MAA3B;AAA4B,UAAM,MAAlC;AAAmC,WAAO,EAAGK,aAA7C;AAA6D,aAAS,EAAGC,0FAA6B,CAAE/D,KAAF,EAASe,IAAT;AAAtG,KACMiD,iFAAsB,CAAEhE,KAAF,EAASe,IAAT,EAAeR,0DAAE,CAAE,sBAAF,EAA0B,oBAA1B,CAAjB,EAAmEoD,QAAnE,CAD5B,EAEMF,SAAS,IACP,yEAAC,6DAAD;AAAS,YAAQ,EAAC,aAAlB;AAAgC,aAAS,EAAC,2DAA1C;AAAsG,WAAO,EAAEQ,gEAAaA;AAA5H,KAEI,qFAAM1D,0DAAE,CAAE,sBAAF,EAA0B,oBAA1B,CAAR,CAFJ,EAII;AAAG,aAAS,EAAC;AAAb,KAA8CA,0DAAE,CAAE,sEAAF,EAA0E,oBAA1E,CAAF,GAAqGP,KAAK,CAACI,UAAN,CAAiBsB,iBAApK,CAJJ,EAKI,yEAAC,wGAAD;AAA8B,QAAI,EAAGkD,YAArC;AAAoD,cAAU,EAAC,kBAA/D;AAAkF,SAAK,EAAG5E,KAA1F;AAAkG,QAAI,EAAGe;AAAzG,IALJ,EAMI;AAAG,aAAS,EAAC;AAAb,KACI,yEAAC,4DAAD;AAAQ,aAAS,MAAjB;AAAkB,aAAS,EAAC,yCAA5B;AAAsE,WAAO,EAAE+C;AAA/E,KAAgGvD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAlG,CADJ,CANJ,EAUI,yEAAC,oEAAD,OAVJ,EAYI,oFAAG,yEAAC,0DAAD;AAAM,QAAI,EAAC,aAAX;AAAyB,YAAQ,EAAC;AAAlC,IAAH,OAA6C,yFAAUA,0DAAE,CAAE,yBAAF,EAA6B,oBAA7B,CAAZ,CAA7C,CAZJ,EAaI,oFAAKA,0DAAE,CAAE,+PAAF,EAAmQ,iCAAnQ,CAAP,CAbJ,EAeMqE,YAAY,CAACE,GAAb,CAAkB,UAAA9B,WAAW;AAAA,WAC3B,oFAAG,uFAAQA,WAAW,CAACK,KAApB,CAAH,QAAyCL,WAAW,CAAC+B,KAArD,CAD2B;AAAA,GAA7B,CAfN,EAmBI,yEAAC,gEAAD;AAAY,aAAS,EAAC,kCAAtB;AAAyD,QAAI,EAAC,IAA9D;AAAmE,SAAK,EAAGxE,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAA7E;AAAiH,WAAO,EAAGuD;AAA3H,IAnBJ,CAHR,CAFJ,CADJ;AA+BH,CA7D+B,CAAhC;AA+Dea,sFAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEO,IAAMK,4CAA4C,GAAG3D,oEAAS,CAAE;AACnEC,QAAM,EAAE;AAD2D,CAAF,CAAT,CAEvD,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,MAAIiF,aAAa,GAAKC,mEAAQ,CAAElF,KAAF,EAAS,aAAT,CAAV,GAAuC,mBAAvC,GAA6D,EAAjF;AAEA,SACI,yEAAC,+DAAD;AACI,SAAK,EAAGO,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CADd;AAEI,eAAW,EAAG,KAFlB;AAGI,aAAS,EAAE,4EAA4E0E;AAH3F,KAMI,yEAAC,8DAAD;AAAU,aAAS,EAAC;AAApB,KACI,yEAAC,sFAAD;AAAyB,SAAK,EAAGjF;AAAjC,IADJ,EAEI,yEAAC,8EAAD;AAAkB,SAAK,EAAGA;AAA1B,IAFJ,EAGI,yEAAC,8EAAD;AAAkB,SAAK,EAAGA;AAA1B,IAHJ,EAII,yEAAC,0FAAD;AAAsB,SAAK,EAAGA;AAA9B,IAJJ,EAKI,yEAAC,qFAAD;AAAiB,SAAK,EAAGA;AAAzB,IALJ,CANJ,EAcMA,KAAK,CAACI,UAAN,CAAiBsB,iBAAjB,IACE;AAAG,aAAS,EAAC;AAAb,KACMnB,0DAAE,CAAE,+DAA+DP,KAAK,CAACI,UAAN,CAAiBsB,iBAAhF,GAAoG,GAAtG,EAA2G,oBAA3G,CADR,CAfR,CADJ;AAwBH,CA9B2D,CAArD,C,CAgCP;;AACAlB,kEAAS,CAAE,iDAAF,EAAqD,wDAArD,EAA+G2E,iCAA/G,CAAT;;AAEA,SAASA,iCAAT,CAA4CxE,YAA5C,EAA2D;AAEvDA,cAAY,CAACqC,WAAb,GAA2B;AACvBoC,SAAK,EAAE,EADgB;AAEvBR,gBAAY,EAAE,EAFS;AAGvBS,SAAK,EAAE,EAHgB;AAIvBC,cAAU,EAAE,EAJW;AAKvBC,QAAI,EAAE;AALiB,GAA3B;AAQA,SAAO5E,YAAP;AAEH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DD;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA,IAAM6E,eAAe,GAAGnE,oEAAS,CAAE;AAC/BoC,WAAS,EAAE;AADoB,CAAF,CAAT,CAEnB,gBAAsC;AAAA,MAAlCA,SAAkC,QAAlCA,SAAkC;AAAA,MAAvBlC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;;AAEvC;AACJ;AACA;AACI,MAAM6C,IAAI,GAAG4C,iEAAO,EAApB;AAEA;AACJ;AACA;;AACI,MAAM1E,IAAI,GAAG,MAAb;AAEA;AACJ;AACA;;AACI,MAAM4C,QAAQ,GAAG;AACbC,YAAQ,EAAErD,0DAAE,CAAE,KAAF,EAAS,oBAAT,CADC;AAEbsD,UAAM,EAAEtD,0DAAE,CAAE,MAAF,EAAU,oBAAV;AAFG,GAAjB;AAKA;AACJ;AACA;;AACI,MAAMuD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBvC,YAAQ,CAAE,UAAEM,KAAF;AAAA,aAAe;AAAE4B,iBAAS,EAAE,CAAE5B,KAAK,CAAC4B;AAArB,OAAf;AAAA,KAAF,CAAR;AACH,GAFD;;AAIA,SACI;AAAK,aAAS,EAAC;AAAf,KACI,yEAAC,0DAAD;AAAM,QAAI,EAAC,KAAX;AAAiB,YAAQ,EAAC;AAA1B,IADJ,EAEI,yEAAC,4DAAD;AAAQ,eAAW,MAAnB;AAAoB,WAAO,MAA3B;AAA4B,UAAM,MAAlC;AAAmC,WAAO,EAAGK,aAA7C;AAA6D,aAAS,EAAGC,0FAA6B,CAAE/D,KAAF,EAASe,IAAT;AAAtG,KACMiD,iFAAsB,CAAEhE,KAAF,EAASe,IAAT,EAAeR,0DAAE,CAAE,sBAAF,EAA0B,oBAA1B,CAAjB,EAAmEoD,QAAnE,CAD5B,EAEMF,SAAS,IACP,yEAAC,6DAAD;AAAS,YAAQ,EAAC,aAAlB;AAAgC,aAAS,EAAC,2DAA1C;AAAsG,WAAO,EAAEQ,gEAAaA;AAA5H,KAEI,qFAAM1D,0DAAE,CAAE,aAAF,EAAiB,oBAAjB,CAAR,CAFJ,EAII;AAAG,aAAS,EAAC;AAAb,KAA8CA,0DAAE,CAAE,6DAAF,EAAiE,oBAAjE,CAAF,GAA4FP,KAAK,CAACI,UAAN,CAAiBsB,iBAA3J,CAJJ,EAKI,yEAAC,wGAAD;AAA8B,QAAI,EAAGmB,IAArC;AAA4C,cAAU,EAAC,YAAvD;AAAoE,SAAK,EAAG7C,KAA5E;AAAoF,QAAI,EAAGe;AAA3F,IALJ,EAMI;AAAG,aAAS,EAAC;AAAb,KACI,yEAAC,4DAAD;AAAQ,aAAS,MAAjB;AAAkB,aAAS,EAAC,gCAA5B;AAA6D,WAAO,EAAE+C;AAAtE,KAAuFvD,0DAAE,CAAE,cAAF,EAAkB,oBAAlB,CAAzF,CADJ,CANJ,EAUI,yEAAC,oEAAD,OAVJ,EAYI,oFAAG,yEAAC,0DAAD;AAAM,QAAI,EAAC,aAAX;AAAyB,YAAQ,EAAC;AAAlC,IAAH,OAA6C,yFAAUA,0DAAE,CAAE,MAAF,EAAU,oBAAV,CAAZ,CAA7C,CAZJ,EAaI,oFAAKA,0DAAE,4FAAsFP,KAAK,CAACI,UAAN,CAAiBsB,iBAAvG,sFAAoM1B,KAAK,CAACI,UAAN,CAAiBsB,iBAArN,+EAAkT,oBAAlT,CAAP,CAbJ,EAeI,yEAAC,gEAAD;AAAY,aAAS,EAAC,kCAAtB;AAAyD,QAAI,EAAC,IAA9D;AAAmE,SAAK,EAAGnB,0DAAE,CAAE,OAAF,EAAW,oBAAX,CAA7E;AAAiH,WAAO,EAAGuD;AAA3H,IAfJ,CAHR,CAFJ,CADJ;AA2BH,CAxDuB,CAAxB;AA0De0B,8EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AAEO,IAAME,+CAA+C,GAAGrE,oEAAS,CAAE;AACtEC,QAAM,EAAE;AAD8D,CAAF,CAAT,CAE1D,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,SAEI,yEAAC,kEAAD;AACI,SAAK,EAAC,EADV;AAEI,QAAI,EAAC,EAFT;AAGI,aAAS,EAAC,+CAHd;AAII,YAAQ,EAAGA,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCQ,iBAAxC,IAA6DS,MAJ5E;AAKI,WAAO,EAAG,CACN;AAAE+B,WAAK,EAAE9C,0DAAE,CAAE,YAAF,EAAgB,oBAAhB,CAAX;AAAmDgD,WAAK,EAAE;AAA1D,KADM,EAEN;AAAEF,WAAK,EAAE9C,0DAAE,CAAE,WAAF,EAAe,oBAAf,CAAX;AAAkDgD,WAAK,EAAE;AAAzD,KAFM,CALd;AASI,YAAQ,EAAG,kBAAEjC,MAAF,EAAc;AAErB;AACAC,cAAQ,CAAE;AAAED,cAAM,EAANA;AAAF,OAAF,CAAR;;AAEA,UAAIQ,UAAU,qBAAQ9B,KAAK,CAACI,UAAN,CAAiBC,sBAAzB,CAAd;;AACAyB,gBAAU,CAACjB,iBAAX,GAA+BS,MAA/B;AAEAtB,WAAK,CAAC+B,aAAN,CAAqB;AACjB1B,8BAAsB,EAAEyB;AADP,OAArB,EARqB,CAYrB;AACA;;AACAE,uEAAQ,CAAE,8CAAF,EAAkD,6BAAlD,EAAiFV,MAAjF,EAAyFtB,KAAzF,CAAR;AAEH;AAzBL,IAFJ;AAgCH,CApC8D,CAAxD,C;;;;;;;;;;;;;;;;;;;;;;;;ACLP;AACA;AACA;AAEA;AAEO,IAAM2F,mDAAmD,GAAGtE,oEAAS,CAAE;AAC1EC,QAAM,EAAE;AADkE,CAAF,CAAT,CAE9D,gBAAmC;AAAA,MAA/BA,MAA+B,QAA/BA,MAA+B;AAAA,MAAvBC,QAAuB,QAAvBA,QAAuB;AAAA,MAAbvB,KAAa,QAAbA,KAAa;AAEpC,MAAIiF,aAAa,GAAKjF,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,IAA2CL,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCQ,iBAAnF,IAAwGb,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCQ,iBAAxC,KAA8D,EAAxK,GAA+K,mBAA/K,GAAqM,EAAzN;AAEA,SACI,yEAAC,+DAAD;AACI,SAAK,EAAGN,0DAAE,CAAE,qBAAF,EAAyB,oBAAzB,CADd;AAEI,eAAW,EAAG,KAFlB;AAGI,aAAS,EAAE,oFAAoF0E;AAHnG,KAKI,yEAAC,8DAAD,QACI,yEAAC,qIAAD;AAAiD,SAAK,EAAGjF;AAAzD,IADJ,EAGMA,KAAK,CAACI,UAAN,CAAiBsB,iBAAjB,IACE;AAAG,aAAS,EAAC;AAAb,KACMnB,0DAAE,CAAE,uCAAuCP,KAAK,CAACI,UAAN,CAAiBsB,iBAAxD,GAA4E,mFAA5E,GAAkK1B,KAAK,CAACI,UAAN,CAAiBsB,iBAAnL,GAAuM,oDAAzM,EAA+P,8BAA/P,CADR,CAJR,CALJ,CADJ;AAmBH,CAzBkE,CAA5D,C;;;;;;;;;;;ACNP,uC;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AACA,SAAS2C,aAAT,GAAyB;AAErB,MAAMiB,UAAU,GAAG,EAAnB;;AAEA,MAAKd,iBAAiB,CAACc,UAAlB,CAA6BM,MAA7B,KAAwC,CAA7C,EAAiD;AAC7C,WAAO,CAAE;AACLvC,WAAK,EAAE9C,0DAAE,CAAE,sBAAF,EAA0B,oBAA1B,CADJ;AAELgD,WAAK,EAAE,CAFF;AAGLwB,WAAK,EAAE;AAHF,KAAF,CAAP;AAKH;;AAED,OAAM,IAAMc,QAAZ,IAAwBrB,iBAAiB,CAACc,UAA1C,EAAuD;AAEnDA,cAAU,CAACQ,IAAX,CAAiB;AACbzC,WAAK,EAAEmB,iBAAiB,CAACc,UAAlB,CAA6BO,QAA7B,EAAuCxC,KADjC;AAEbE,WAAK,EAAEiB,iBAAiB,CAACc,UAAlB,CAA6BO,QAA7B,EAAuCE,EAFjC;AAGbhB,WAAK,EAAEP,iBAAiB,CAACc,UAAlB,CAA6BO,QAA7B,EAAuCd;AAHjC,KAAjB;AAMH;;AAED,SAAOO,UAAP;AAEH,C,CAAA;;;AAEcjB,4EAAf,E;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASX,QAAT,GAAoB;AAEhB,MAAM0B,KAAK,GAAG,EAAd;;AAEA,MAAKZ,iBAAiB,CAACY,KAAlB,CAAwBQ,MAAxB,KAAmC,CAAxC,EAA4C;AACxC,WAAO,CAAE;AACLvC,WAAK,EAAE9C,0DAAE,CAAE,iBAAF,EAAqB,oBAArB,CADJ;AAELgD,WAAK,EAAE,CAFF;AAGLwB,WAAK,EAAE;AAHF,KAAF,CAAP;AAKH;;AAED,OAAM,IAAMiB,IAAZ,IAAoBxB,iBAAiB,CAACY,KAAtC,EAA8C;AAE1CA,SAAK,CAACU,IAAN,CAAY;AACRzC,WAAK,EAAEmB,iBAAiB,CAACY,KAAlB,CAAwBY,IAAxB,EAA8B3C,KAD7B;AAERE,WAAK,EAAEiB,iBAAiB,CAACY,KAAlB,CAAwBY,IAAxB,EAA8BD,EAF7B;AAGRhB,WAAK,EAAEP,iBAAiB,CAACY,KAAlB,CAAwBY,IAAxB,EAA8BjB;AAH7B,KAAZ;AAMH;;AAED,SAAOK,KAAP;AAEH,C,CAAA;;;AAEc1B,uEAAf,E;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASS,QAAT,GAAoB;AAEhB,MAAMkB,KAAK,GAAG,EAAd;;AAEA,MAAKb,iBAAiB,CAACa,KAAlB,CAAwBO,MAAxB,KAAmC,CAAxC,EAA4C;AACxC,WAAO,CAAE;AACLvC,WAAK,EAAE9C,0DAAE,CAAE,iBAAF,EAAqB,oBAArB,CADJ;AAELgD,WAAK,EAAE,CAFF;AAGLwB,WAAK,EAAE;AAHF,KAAF,CAAP;AAKH;;AAED,OAAM,IAAMkB,IAAZ,IAAoBzB,iBAAiB,CAACa,KAAtC,EAA8C;AAE1CA,SAAK,CAACS,IAAN,CAAY;AACRzC,WAAK,EAAEmB,iBAAiB,CAACa,KAAlB,CAAwBY,IAAxB,EAA8B5C,KAD7B;AAERE,WAAK,EAAEiB,iBAAiB,CAACa,KAAlB,CAAwBY,IAAxB,EAA8BF,EAF7B;AAGRhB,WAAK,EAAEP,iBAAiB,CAACa,KAAlB,CAAwBY,IAAxB,EAA8BlB;AAH7B,KAAZ;AAMH;;AAED,SAAOM,KAAP;AAEH,C,CAAA;;;AAEclB,uEAAf,E;;;;;;;;;;;;;;;;;;ACjCA;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASU,eAAT,GAA2B;AAEvB,MAAMD,YAAY,GAAG,EAArB;;AAEA,OAAM,IAAM5B,WAAZ,IAA2BwB,iBAAiB,CAACI,YAA7C,EAA4D;AAExDA,gBAAY,CAACkB,IAAb,CAAmB;AACfzC,WAAK,EAAEmB,iBAAiB,CAACI,YAAlB,CAA+B5B,WAA/B,EAA4CK,KADpC;AAEfE,WAAK,EAAEiB,iBAAiB,CAACI,YAAlB,CAA+B5B,WAA/B,EAA4CkD,QAFpC;AAGfnB,WAAK,EAAEP,iBAAiB,CAACI,YAAlB,CAA+B5B,WAA/B,EAA4C+B,KAHpC;AAIf3B,UAAI,EAAE,yEAAC,0DAAD;AAAM,YAAI,EAAC,IAAX;AAAgB,YAAI,EAAGoB,iBAAiB,CAACI,YAAlB,CAAgC5B,WAAhC,EAA8CI;AAArE;AAJS,KAAnB;AAOH;;AAED,SAAOwB,YAAP;AAEH,C,CAAA;;;AAEcC,8EAAf,E;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASY,OAAT,GAAmB;AAEf,MAAMF,IAAI,GAAG,EAAb;;AAEA,MAAKf,iBAAiB,CAACe,IAAlB,CAAuBK,MAAvB,KAAkC,CAAvC,EAA2C;AACvC,WAAO,CAAE;AACLvC,WAAK,EAAE9C,0DAAE,CAAE,gBAAF,EAAoB,oBAApB,CADJ;AAELgD,WAAK,EAAE,CAFF;AAGLwB,WAAK,EAAE;AAHF,KAAF,CAAP;AAKH;;AAED,OAAM,IAAMoB,GAAZ,IAAmB3B,iBAAiB,CAACe,IAArC,EAA4C;AAExCA,QAAI,CAACO,IAAL,CAAW;AACPzC,WAAK,EAAEmB,iBAAiB,CAACe,IAAlB,CAAuBY,GAAvB,EAA4B9C,KAD5B;AAEPE,WAAK,EAAEiB,iBAAiB,CAACe,IAAlB,CAAuBY,GAAvB,EAA4BJ,EAF5B;AAGPhB,WAAK,EAAEP,iBAAiB,CAACe,IAAlB,CAAuBY,GAAvB,EAA4BpB;AAH5B,KAAX;AAMH;;AAED,SAAOQ,IAAP;AAEH,C,CAAA;;;AAEcE,sEAAf,E;;;;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,kBAAT,CAA6BC,OAA7B,EAAsCC,SAAtC,EAAkD;AAE9C;AACA,MAAK,qEAAOD,OAAO,CAACE,SAAf,MAA6B,QAA7B,IAAyCF,OAAO,CAACE,SAAR,CAAkBC,KAAlB,CAAwB,GAAxB,EAA6BC,OAA7B,CAAqCH,SAArC,KAAmD,CAAjG,EAAqG;AACjG,WAAO,IAAP;AACH,GAFD,MAEO,IAAKD,OAAO,CAACK,OAAR,KAAoB,MAAzB,EAAkC;AAAE;AACvC,WAAOL,OAAO,CAACM,UAAR,IAAsBP,kBAAkB,CAAEC,OAAO,CAACM,UAAV,EAAsBL,SAAtB,CAA/C;AACH,GAFM,MAEA;AACH,WAAO,KAAP;AACH;AAEJ,C,CAAA;;;AAEcF,iFAAf,E;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,SAASlB,QAAT,CAAmBlF,KAAnB,EAA0Be,IAA1B,EAAiC;AAE9B,MAAK,CAAEf,KAAK,CAACI,UAAN,CAAiBC,sBAAxB,EAAiD;AAC7C,WAAO,KAAP;AACH;;AAED,MAAK,CAAEL,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCU,IAAxC,CAAP,EAAuD;AACnD,WAAO,KAAP;AACH,GAR6B,CAU9B;;;AACA,MAAImE,QAAQ,GAAG,KAAf;;AAEA,UAASnE,IAAT;AAEI,SAAK,mBAAL;AAEI,UAAKf,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCU,IAAxC,MAAkD,EAAvD,EAA4D;AACxDmE,gBAAQ,GAAG,IAAX;AACH;;AAED;;AAEJ,SAAK,aAAL;AAEI,UAAI0B,mBAAmB,GAAG5G,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAlE,CAFJ,CAII;;AACA,UAAI6D,sBAAsB,GAAGC,MAAM,CAACC,MAAP,CAAeH,mBAAf,CAA7B,CALJ,CAOI;;AACA1B,cAAQ,GAAG2B,sBAAsB,CAACG,IAAvB,CAA6B,UAAUC,EAAV,EAAe;AACnD,eAAOA,EAAE,CAACrB,MAAH,GAAY,CAAnB;AACH,OAFU,CAAX;AAIA;;AAEJ;AACI;AAzBR;;AA4BA,SAAOhF,qEAAY,CAAE,8BAAF,EAAkCsE,QAAlC,EAA4ClF,KAA5C,EAAmDe,IAAnD,CAAnB;AAEH,C,CAAA;;;AAEcmE,uEAAf,E;;;;;;;;;;;;ACvDA;AAAA;AACA;AACA;AACA;AACA;AACA,SAASjF,gBAAT,CAA2BC,IAA3B,EAAkC;AAE9B,MAAMgH,iBAAiB,GAAG,CACtB,uBADsB,CAA1B;AAIA,SAAO,CAAEA,iBAAiB,CAACC,QAAlB,CAA4BjH,IAA5B,CAAT;AAEH,C,CAAA;;;AAEcD,+EAAf,E;;;;;;;;;;;;ACfA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMgE,aAAa,GAAG,SAAhBA,aAAgB,CAAEmD,KAAF,EAAa;AAE/B,MAAK,UAAUA,KAAf,EAAuB;AACnB;AACH,GAJ8B,CAM/B;;;AACA,MAAIC,OAAO,GAAGD,KAAK,CAACE,MAApB;;AAEA,MAAKlB,sEAAkB,CAAEiB,OAAF,EAAW,6BAAX,CAAvB,EAAoE;AAChED,SAAK,CAACG,eAAN;AACH;;AAED;AACH,CAdD;;AAgBetD,4EAAf,E;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMD,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAEhE,KAAF,EAASe,IAAT,EAAeyG,UAAf,EAA2B7D,QAA3B,EAAyC;AAEpE;AACA,MAAK3D,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,MAA8D0G,SAA9D,IAA2EzH,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,EAA0D6E,MAA1D,KAAqE,CAArJ,EAAyJ;AACrJ,WAAO4B,UAAP;AACH;;AAED,MAAIE,aAAa,GAAO1H,KAAK,CAACI,UAAN,CAAiBsB,iBAAzC;AACA,MAAIkD,YAAY,GAAQ5E,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,CAAxB;AACA,MAAI4G,iBAAiB,GAAG/C,YAAY,CAACgB,MAArC;AAEA,MAAIgC,QAAQ,GAAKD,iBAAiB,KAAK,CAAxB,GAA8BhE,QAAQ,CAACC,QAAvC,GAAkDD,QAAQ,CAACE,MAA1E;AAEA,MAAIgE,UAAU,GAAGH,aAAa,GAAGnH,0DAAE,CAAE,MAAF,CAAlB,GAA+BoH,iBAA/B,GAAoD,GAApD,GAA0DC,QAA3E;AAEA,SAAOC,UAAP;AAEH,CAjBD;;AAmBe7D,qFAAf,E;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMD,6BAA6B,GAAG,SAAhCA,6BAAgC,CAAE/D,KAAF,EAASe,IAAT,EAAmB;AAErD;AACA,MAAKf,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,MAA8D0G,SAA9D,IAA2EzH,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwC2C,WAAxC,CAAoDjC,IAApD,EAA0D6E,MAA1D,KAAqE,CAArJ,EAAyJ;AACrJ,WAAO,iDAAP;AACH,GALoD,CAOrD;;;AACA,SAAO,2DAAP;AAEH,CAVD;;AAYe7B,4FAAf,E;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;;;;;;;;;;;;ACJA,aAAa,8CAA8C,EAAE,I;;;;;;;;;;;ACA7D,aAAa,6CAA6C,EAAE,I;;;;;;;;;;;ACA5D,aAAa,0CAA0C,EAAE,I;;;;;;;;;;;ACAzD,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,0CAA0C,EAAE,I;;;;;;;;;;;ACAzD,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,uCAAuC,EAAE,I;;;;;;;;;;;ACAtD,aAAa,0CAA0C,EAAE,I;;;;;;;;;;;ACAzD,aAAa,kCAAkC,EAAE,I","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","let e={data:\"\"},t=t=>{try{let e=t?t.querySelector(\"#_goober\"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement(\"style\")),e.innerHTML=\" \",e.id=\"_goober\"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data=\"\",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\\/\\*[\\s\\S]*?\\*\\/|\\s{2,}|\\n/gm,o=(e,t)=>{let r,a=\"\",l=\"\",n=\"\";for(let c in e){let s=e[c];\"object\"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):c,l+=\"@\"==c[0]?\"f\"==c[1]?o(s,c):c+\"{\"+o(s,\"k\"==c[1]?\"\":t)+\"}\":o(s,r)):\"@\"==c[0]&&\"i\"==c[1]?a=c+\" \"+s+\";\":n+=o.p?o.p(c.replace(/[A-Z]/g,\"-$&\").toLowerCase(),s):c.replace(/[A-Z]/g,\"-$&\").toLowerCase()+\":\"+s+\";\"}return n[0]?(r=t?t+\"{\"+n+\"}\":n,a+r+l):a+l},n={},c=e=>{let t=\"\";for(let r in e)t+=r+(\"object\"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i=\"object\"==typeof e?c(e):e,u=n[i]||(n[i]=\"go\"+i.split(\"\").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t=\"object\"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,\"\"));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{[\"@keyframes \"+u]:t}:t,r?\"\":\".\"+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):e}return e+a+(null==n?\"\":n)},\"\");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/g.test(s),c.className=i.apply(r,a)+(s?\" \"+s:\"\"),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}export{i as css,r as extractCss,d as glob,g as keyframes,b as setup,h as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nvar debounce = function debounce(func, wait) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n var cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return label != null && value != null;\n }) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(function (option) {\n return {\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n };\n }) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(function (pair) {\n return pair.score >= cleanFilter.length - 2;\n }) // Sort 'em by order of their score.\n .sort(function (a, b) {\n return b.score - a.score;\n }) // …and grab the original Options back from their pairs.\n .map(function (pair) {\n return pair.option;\n });\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n var aLength = a.length;\n var bLength = b.length;\n var table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n var _ref2 = [b, a];\n a = _ref2[0];\n b = _ref2[1];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (var x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (var y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (var _x = 1; _x <= aLength; ++_x) {\n for (var _y = 1; _y <= bLength; ++_y) {\n table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n var safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce(function (output, substitution) {\n var unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nvar strings = {\n selectSomeItems: \"Select...\",\n allItemsAreSelected: \"All items are selected.\",\n selectAll: \"Select All\",\n search: \"Search\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\"\n};\nfunction getString(key, overrideStrings) {\n return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];\n}\n\nvar Cross = function Cross() {\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n }, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n};\n\nvar DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nvar DefaultItemRenderer = function DefaultItemRenderer(_ref) {\n var checked = _ref.checked,\n option = _ref.option,\n onClick = _ref.onClick,\n disabled = _ref.disabled;\n return React.createElement(\"div\", {\n className: DefaultRenderer + \" item-renderer \" + (disabled && \"disabled\")\n }, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n }), React.createElement(\"span\", null, option.label));\n};\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nvar ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nvar SelectItem = function SelectItem(_ref) {\n var _ref$itemRenderer = _ref.itemRenderer,\n ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,\n option = _ref.option,\n checked = _ref.checked,\n focused = _ref.focused,\n tabIndex = _ref.tabIndex,\n disabled = _ref.disabled,\n onSelectionChanged = _ref.onSelectionChanged,\n onClick = _ref.onClick;\n var itemRef = useRef();\n useEffect(function () {\n updateFocus(); // eslint-disable-next-line\n }, [focused]);\n\n var toggleChecked = function toggleChecked() {\n onSelectionChanged(!checked);\n };\n\n var handleClick = function handleClick(e) {\n toggleChecked();\n onClick(e);\n };\n\n var updateFocus = function updateFocus() {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: ItemContainer + \" select-item \" + (checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nvar SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nvar skipIndex = 2;\n\nvar SelectList = function SelectList(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n options = _ref.options,\n focusIndex = _ref.focusIndex,\n _onClick = _ref.onClick;\n\n var handleSelectionChanged = function handleSelectionChanged(option, checked) {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {\n return o.value !== option.value;\n }));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map(function (o, i) {\n var tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: o.hasOwnProperty(\"key\") ? o.key : i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: function onSelectionChanged(c) {\n return handleSelectionChanged(o, c);\n },\n checked: value.find(function (s) {\n return s.value === o.value;\n }) ? true : false,\n onClick: function onClick(e) {\n return _onClick(e, tabIndex);\n },\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nvar SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nvar SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nvar SelectPanel = function SelectPanel(props) {\n var onChange = props.onChange,\n options = props.options,\n value = props.value,\n customFilterOptions = props.filterOptions,\n selectAllLabel = props.selectAllLabel,\n ItemRenderer = props.ItemRenderer,\n disabled = props.disabled,\n disableSearch = props.disableSearch,\n focusSearchOnOpen = props.focusSearchOnOpen,\n hasSelectAll = props.hasSelectAll,\n overrideStrings = props.overrideStrings,\n ClearIcon = props.ClearIcon,\n debounceDuration = props.debounceDuration;\n\n var _useState = useState(\"\"),\n searchText = _useState[0],\n setSearchText = _useState[1];\n\n var _useState2 = useState(\"\"),\n searchTextForFilter = _useState2[0],\n setSearchTextForFilter = _useState2[1];\n\n var _useState3 = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),\n focusIndex = _useState3[0],\n setFocusIndex = _useState3[1];\n\n var debouncedSearch = useCallback(debounce(function (query) {\n return setSearchTextForFilter(query);\n }, debounceDuration), []);\n var selectAllOption = {\n label: selectAllLabel || getString(\"selectAll\", overrideStrings),\n value: \"\"\n };\n\n var selectAllValues = function selectAllValues(checked) {\n var filteredValues = filteredOptions().filter(function (o) {\n return !o.disabled;\n }).map(function (o) {\n return o.value;\n });\n\n if (checked) {\n var selectedValues = value.map(function (o) {\n return o.value;\n });\n var finalSelectedValues = [].concat(selectedValues, filteredValues);\n return options.filter(function (_ref) {\n var value = _ref.value;\n return finalSelectedValues.includes(value);\n });\n }\n\n return value.filter(function (o) {\n return !filteredValues.includes(o.value);\n });\n };\n\n var selectAllChanged = function selectAllChanged(checked) {\n var newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n var handleSearchChange = function handleSearchChange(e) {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n var handleClear = function handleClear() {\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n };\n\n var handleItemClicked = function handleItemClicked(index) {\n return setFocusIndex(index);\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n var handleSearchFocus = function handleSearchFocus() {\n setFocusIndex(FocusType.SEARCH);\n };\n\n var filteredOptions = function filteredOptions() {\n return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n };\n\n var updateFocus = function updateFocus(offset) {\n var newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n var _useMemo = useMemo(function () {\n var filteredOptionsList = filteredOptions().filter(function (o) {\n return !o.disabled;\n });\n return [filteredOptionsList.every(function (o) {\n return value.findIndex(function (v) {\n return v.value === o.value;\n }) !== -1;\n }), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [searchText, value]),\n isAllOptionSelected = _useMemo[0],\n hasSelectableOptions = _useMemo[1];\n\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: getString(\"search\", overrideStrings),\n type: \"text\",\n \"aria-describedby\": getString(\"search\", overrideStrings),\n onKeyDown: function onKeyDown(e) {\n return e.stopPropagation();\n },\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText\n }), React.createElement(\"button\", {\n type: \"button\",\n className: SearchClearButton + \" search-clear-button\",\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": getString(\"clearSearch\", overrideStrings)\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: function onClick() {\n return handleItemClicked(0);\n },\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), React.createElement(SelectList, Object.assign({}, props, {\n options: filteredOptions(),\n focusIndex: focusIndex,\n onClick: function onClick(_e, index) {\n return handleItemClicked(index);\n },\n ItemRenderer: ItemRenderer,\n disabled: disabled\n })));\n};\n\nfunction Arrow(_ref) {\n var expanded = _ref.expanded;\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n }, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n }));\n}\n\nvar Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\n\nfunction Loading(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size;\n return React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n }, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n })));\n}\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nvar PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nvar DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nvar DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nvar ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nvar Dropdown = function Dropdown(_ref) {\n var children = _ref.children,\n ContentComponent = _ref.contentComponent,\n contentProps = _ref.contentProps,\n isLoading = _ref.isLoading,\n disabled = _ref.disabled,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ArrowRenderer = _ref.ArrowRenderer,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n\n var _useState = useState(true),\n isInternalExpand = _useState[0],\n setIsInternalExpand = _useState[1];\n\n var _useState2 = useState(defaultIsOpen),\n expanded = _useState2[0],\n setExpanded = _useState2[1];\n\n var _useState3 = useState(false),\n hasFocus = _useState3[0],\n setHasFocus = _useState3[1];\n\n var FinalArrow = ArrowRenderer || Arrow;\n var wrapper = useRef();\n /* eslint-disable react-hooks/exhaustive-deps */\n\n useEffect(function () {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(function () {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n var handleKeyDown = function handleKeyDown(e) {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n var handleHover = function handleHover(iexpanded) {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n var handleFocus = function handleFocus() {\n return !hasFocus && setHasFocus(true);\n };\n\n var handleBlur = function handleBlur(e) {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n var handleMouseEnter = function handleMouseEnter() {\n return handleHover(true);\n };\n\n var handleMouseLeave = function handleMouseLeave() {\n return handleHover(false);\n };\n\n var toggleExpanded = function toggleExpanded() {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n var handleClearSelected = function handleClearSelected(e) {\n e.stopPropagation();\n contentProps[\"onChange\"]([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: DropdownContainer + \" dropdown-container\",\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: DropdownHeading + \" dropdown-heading\",\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, children), isLoading && React.createElement(Loading, null), contentProps[\"value\"].length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: ClearSelectedButton + \" clear-selected-button\",\n onClick: handleClearSelected,\n \"aria-label\": getString(\"clearSelected\", contentProps[\"overrideStrings\"])\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: PanelContainer + \" dropdown-content\"\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(ContentComponent, Object.assign({}, contentProps)))));\n};\n\nvar DropdownHeader = function DropdownHeader(_ref) {\n var value = _ref.value,\n options = _ref.options,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings;\n var noneSelected = value.length === 0;\n var allSelected = value.length === options.length;\n var customText = valueRenderer && valueRenderer(value, options);\n\n var getSelectedText = function getSelectedText() {\n return value.map(function (s) {\n return s.label;\n }).join(\", \");\n };\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || getString(\"selectSomeItems\", overrideStrings)) : React.createElement(\"span\", null, customText || (allSelected ? getString(\"allItemsAreSelected\", overrideStrings) : getSelectedText()));\n};\n\nvar MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nvar MultiSelect = function MultiSelect(_ref) {\n var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,\n focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,\n _ref$hasSelectAll = _ref.hasSelectAll,\n hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \"multi-select\" : _ref$className,\n options = _ref.options,\n value = _ref.value,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n ArrowRenderer = _ref.ArrowRenderer,\n selectAllLabel = _ref.selectAllLabel,\n isLoading = _ref.isLoading,\n disableSearch = _ref.disableSearch,\n filterOptions = _ref.filterOptions,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ClearIcon = _ref.ClearIcon,\n _ref$debounceDuration = _ref.debounceDuration,\n debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n var nvalue = value || [];\n return React.createElement(\"div\", {\n className: MultiSelectBox + \" \" + className\n }, React.createElement(Dropdown, {\n isLoading: isLoading,\n contentComponent: SelectPanel,\n shouldToggleOnHover: shouldToggleOnHover,\n contentProps: {\n ItemRenderer: ItemRenderer,\n options: options,\n value: nvalue,\n hasSelectAll: hasSelectAll,\n selectAllLabel: selectAllLabel,\n onChange: onChange,\n disabled: disabled,\n disableSearch: disableSearch,\n focusSearchOnOpen: focusSearchOnOpen,\n filterOptions: filterOptions,\n overrideStrings: overrideStrings,\n ClearIcon: ClearIcon,\n debounceDuration: debounceDuration\n },\n disabled: disabled,\n labelledBy: labelledBy,\n onMenuToggle: onMenuToggle,\n ArrowRenderer: ArrowRenderer,\n ClearSelectedIcon: ClearSelectedIcon,\n defaultIsOpen: defaultIsOpen,\n isOpen: isOpen\n }, React.createElement(DropdownHeader, {\n value: nvalue,\n options: options,\n valueRenderer: valueRenderer,\n overrideStrings: overrideStrings\n })));\n};\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if ( ! isValidBlockType( props.name ) ) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n <PluginBlockSettingsMenuItem\n allowedBlocks={ [ 'core/paragraph' ] }\n icon=\"smiley\"\n label=\"Menu item text\"\n onClick={ () => {\n console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n } }\n />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getCategories();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'categories';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Category', 'content-visibility' ),\n plural: __( 'Categories', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"category\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-categories-button-container\">\n <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n <CategoryPageInserter props={ props } />\n <TagPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: [],\n categories: [],\n tags: []\n };\n\n return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getTags();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'tags';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Tag', 'content-visibility' ),\n plural: __( 'Tags', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"tag\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-tags-button-container\">\n <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n const categories = [];\n\n if ( ContentVisibility.categories.length === 0 ) {\n return [ {\n label: __( 'No categories found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const category in ContentVisibility.categories ) {\n \n categories.push( { \n label: ContentVisibility.categories[category].label,\n value: ContentVisibility.categories[category].id,\n notes: ContentVisibility.categories[category].notes\n } );\n \n }\n\n return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n const tags = [];\n\n if ( ContentVisibility.tags.length === 0 ) {\n return [ {\n label: __( 'No tags found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const tag in ContentVisibility.tags ) {\n \n tags.push( { \n label: ContentVisibility.tags[tag].label,\n value: ContentVisibility.tags[tag].id,\n notes: ContentVisibility.tags[tag].notes\n } );\n \n }\n\n return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n if ( ! props.attributes.contentVisibilityRules ) {\n return false;\n }\n\n if ( ! props.attributes.contentVisibilityRules[type] ) {\n return false;\n }\n\n // Default to false. Passed through a filter later.\n let hasRules = false;\n\n switch ( type ) {\n \n case 'userAuthenticated':\n\n if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n hasRules = true;\n }\n\n break;\n \n case 'specialPage':\n\n let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n hasRules = specialPageRulesValues.some( function( el ) {\n return el.length > 0;\n });\n\n break;\n\n default:\n break;\n }\n\n return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.esm.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,+G;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wG;;;;;;;;;;;ACdA,cAAc,mBAAO,CAAC,oEAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4G;;;;;;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAK,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B,4CAAK;;AAElC;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAM;AAC5B,EAAE,uDAAS;AACX,kCAAkC;AAClC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,kDAAkD,cAAc;AACnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,iBAAiB,cAAc;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,4CAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;;AAET;AACA;AACA;AACA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,oDAAM;AACxB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,2CAA2C,kDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B,kDAAG;AAClC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,oDAAM;AAC/B,sCAAsC,sDAAQ;AAC9C,gDAAgD,sDAAQ;AACxD,wDAAwD,sDAAQ;AAChE,sCAAsC,sDAAQ;AAC9C,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,qDAAO;AAC7D;AACA,gIAAgI;AAChI,GAAG;AACH,EAAE,uDAAS;AACX;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,4BAA4B,4CAAK;AACpC;AACA;AACA;AACA,GAAG,IAAI,4CAAK;AACZ;AACA,GAAG;AACH;;AAEA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,wCAAwC,4CAAK;AAChD;;AAEA,6BAA6B,kDAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD,sDAAQ;AAC1D,kCAAkC,sDAAQ;AAC1C,kCAAkC,sDAAQ;AAC1C;AACA,kBAAkB,oDAAM;AACxB;AACA;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,oDAAoD,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nconst defaultStrings = {\n allItemsAreSelected: \"All items are selected.\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\",\n noOptions: \"No options\",\n search: \"Search\",\n selectAll: \"Select All\",\n selectSomeItems: \"Select...\"\n};\nconst defaultProps = {\n value: [],\n focusSearchOnOpen: true,\n hasSelectAll: true,\n className: \"multi-select\",\n debounceDuration: 200,\n options: []\n};\nconst MultiSelectContext = /*#__PURE__*/React.createContext({});\nconst MultiSelectProvider = ({\n props,\n children\n}) => {\n const t = key => {\n var _props$overrideString;\n\n return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];\n };\n\n return React.createElement(MultiSelectContext.Provider, {\n value: {\n t,\n ...defaultProps,\n ...props\n }\n }, children);\n};\nconst useMultiSelect = () => React.useContext(MultiSelectContext);\n\n/**\r\n * combines classNames in a friendly way\r\n *\r\n * @param {*} classes\r\n */\nconst cn = (...classes) => classes.join(\" \");\n\n/**\r\n * similar to `useEffect` but gets triggered only when value changes\r\n * @param fn executable function on dependency updates\r\n * @param inputs dependency array\r\n */\n\nfunction useDidUpdateEffect(fn, inputs) {\n const didMountRef = useRef(false);\n useEffect(() => {\n if (didMountRef.current) fn();else didMountRef.current = true;\n }, inputs);\n}\n\nconst debounce = (func, wait) => {\n let timeout;\n return function (...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n const cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(({\n label,\n value\n }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(option => ({\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n })) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.\n .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.\n .map(pair => pair.option);\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n const aLength = a.length;\n const bLength = b.length;\n const table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n [a, b] = [b, a];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (let x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (let y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (let x = 1; x <= aLength; ++x) {\n for (let y = 1; y <= bLength; ++y) {\n table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n const safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce((output, substitution) => {\n const unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nconst Cross = () => React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n}, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nconst DefaultItemRenderer = ({\n checked,\n option,\n onClick,\n disabled\n}) => React.createElement(\"div\", {\n className: cn(DefaultRenderer, \"item-renderer\", disabled && \"disabled\")\n}, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n}), React.createElement(\"span\", null, option.label));\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nconst ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nconst SelectItem = ({\n itemRenderer: ItemRenderer = DefaultItemRenderer,\n option,\n checked,\n focused,\n tabIndex,\n disabled,\n onSelectionChanged,\n onClick\n}) => {\n const itemRef = useRef();\n useEffect(() => {\n updateFocus(); // eslint-disable-next-line\n }, [checked, focused]);\n\n const toggleChecked = () => {\n onSelectionChanged(!checked);\n };\n\n const handleClick = e => {\n toggleChecked();\n onClick(e);\n };\n\n const updateFocus = () => {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n const handleKeyDown = e => {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: cn(ItemContainer, \"select-item\", checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nconst SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nconst skipIndex = 2;\n\nconst SelectList = ({\n options,\n focusIndex,\n onClick\n}) => {\n const {\n disabled,\n value,\n onChange,\n ItemRenderer\n } = useMultiSelect();\n\n const handleSelectionChanged = (option, checked) => {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map((o, i) => {\n const tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: (o == null ? void 0 : o.key) || i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: c => handleSelectionChanged(o, c),\n checked: value.find(s => s.value === o.value) ? true : false,\n onClick: e => onClick(e, tabIndex),\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nconst SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nconst SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nconst NoOptions = /*#__PURE__*/css({\n padding: \"var(--rmsc-p)\",\n textAlign: \"center\",\n color: \"var(--rmsc-gray)\"\n});\n\nconst SelectPanel = () => {\n const {\n t,\n onChange,\n options,\n value,\n filterOptions: customFilterOptions,\n selectAllLabel,\n ItemRenderer,\n disabled,\n disableSearch,\n focusSearchOnOpen,\n hasSelectAll,\n ClearIcon,\n debounceDuration\n } = useMultiSelect();\n const searchInputRef = useRef();\n const [searchText, setSearchText] = useState(\"\");\n const [filteredOptions, setFilteredOptions] = useState(options);\n const [searchTextForFilter, setSearchTextForFilter] = useState(\"\");\n const [focusIndex, setFocusIndex] = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);\n const debouncedSearch = useCallback(debounce(query => setSearchTextForFilter(query), debounceDuration), []);\n const selectAllOption = {\n label: selectAllLabel || t(\"selectAll\"),\n value: \"\"\n };\n\n const selectAllValues = checked => {\n const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);\n\n if (checked) {\n const selectedValues = value.map(o => o.value);\n const finalSelectedValues = [...selectedValues, ...filteredValues];\n return filteredOptions.filter(o => finalSelectedValues.includes(o.value));\n }\n\n return value.filter(o => !filteredValues.includes(o.value));\n };\n\n const selectAllChanged = checked => {\n const newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n const handleSearchChange = e => {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n const handleClear = () => {\n var _searchInputRef$curre;\n\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();\n };\n\n const handleItemClicked = index => setFocusIndex(index);\n\n const handleKeyDown = e => {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleSearchFocus = () => {\n setFocusIndex(FocusType.SEARCH);\n };\n\n const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n\n const updateFocus = offset => {\n let newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n const [isAllOptionSelected, hasSelectableOptions] = useMemo(() => {\n const filteredOptionsList = filteredOptions.filter(o => !o.disabled);\n return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [filteredOptions, value]);\n useEffect(() => {\n getFilteredOptions().then(setFilteredOptions);\n }, [searchTextForFilter, options]);\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: t(\"search\"),\n type: \"text\",\n \"aria-describedby\": t(\"search\"),\n onKeyDown: e => e.stopPropagation(),\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText,\n ref: searchInputRef\n }), React.createElement(\"button\", {\n type: \"button\",\n className: cn(SearchClearButton, \"search-clear-button\"),\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": t(\"clearSearch\")\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: () => handleItemClicked(1),\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), filteredOptions.length ? React.createElement(SelectList, {\n options: filteredOptions,\n focusIndex: focusIndex,\n onClick: (_e, index) => handleItemClicked(index)\n }) : React.createElement(\"div\", {\n className: cn(NoOptions, \"no-options\")\n }, t(\"noOptions\")));\n};\n\nconst Arrow = ({\n expanded\n}) => React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n}, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n}));\n\nconst DropdownHeader = () => {\n const {\n t,\n value,\n options,\n valueRenderer\n } = useMultiSelect();\n const noneSelected = value.length === 0;\n const allSelected = value.length === options.length;\n const customText = valueRenderer && valueRenderer(value, options);\n\n const getSelectedText = () => value.map(s => s.label).join(\", \");\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || t(\"selectSomeItems\")) : React.createElement(\"span\", null, customText || (allSelected ? t(\"allItemsAreSelected\") : getSelectedText()));\n};\n\nconst Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\nconst Loading = ({\n size = 24\n}) => React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n}, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n}, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n})));\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nconst PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nconst DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nconst DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nconst ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nconst Dropdown = () => {\n const {\n t,\n onMenuToggle,\n ArrowRenderer,\n shouldToggleOnHover,\n isLoading,\n disabled,\n onChange,\n labelledBy,\n value,\n isOpen,\n defaultIsOpen,\n ClearSelectedIcon\n } = useMultiSelect();\n const [isInternalExpand, setIsInternalExpand] = useState(true);\n const [expanded, setExpanded] = useState(defaultIsOpen);\n const [hasFocus, setHasFocus] = useState(false);\n const FinalArrow = ArrowRenderer || Arrow;\n const wrapper = useRef();\n useDidUpdateEffect(() => {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(() => {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n const handleKeyDown = e => {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n const handleHover = iexpanded => {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n const handleFocus = () => !hasFocus && setHasFocus(true);\n\n const handleBlur = e => {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n const handleMouseEnter = () => handleHover(true);\n\n const handleMouseLeave = () => handleHover(false);\n\n const toggleExpanded = () => {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n const handleClearSelected = e => {\n e.stopPropagation();\n onChange([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: cn(DropdownContainer, \"dropdown-container\"),\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: cn(DropdownHeading, \"dropdown-heading\"),\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, React.createElement(DropdownHeader, null)), isLoading && React.createElement(Loading, null), value.length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: cn(ClearSelectedButton, \"clear-selected-button\"),\n onClick: handleClearSelected,\n disabled: disabled,\n \"aria-label\": t(\"clearSelected\")\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: cn(PanelContainer, \"dropdown-content\")\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(SelectPanel, null))));\n};\n\nconst MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nconst MultiSelect = props => React.createElement(MultiSelectProvider, {\n props: props\n}, React.createElement(\"div\", {\n className: cn(MultiSelectBox, props.className || \"multi-select\")\n}, React.createElement(Dropdown, null)));\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if ( ! isValidBlockType( props.name ) ) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n <PluginBlockSettingsMenuItem\n allowedBlocks={ [ 'core/paragraph' ] }\n icon=\"smiley\"\n label=\"Menu item text\"\n onClick={ () => {\n console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n } }\n />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getCategories();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'categories';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Category', 'content-visibility' ),\n plural: __( 'Categories', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"category\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-categories-button-container\">\n <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n <CategoryPageInserter props={ props } />\n <TagPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: [],\n categories: [],\n tags: []\n };\n\n return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getTags();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'tags';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Tag', 'content-visibility' ),\n plural: __( 'Tags', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"tag\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-tags-button-container\">\n <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n const categories = [];\n\n if ( ContentVisibility.categories.length === 0 ) {\n return [ {\n label: __( 'No categories found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const category in ContentVisibility.categories ) {\n \n categories.push( { \n label: ContentVisibility.categories[category].label,\n value: ContentVisibility.categories[category].id,\n notes: ContentVisibility.categories[category].notes\n } );\n \n }\n\n return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n const tags = [];\n\n if ( ContentVisibility.tags.length === 0 ) {\n return [ {\n label: __( 'No tags found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const tag in ContentVisibility.tags ) {\n \n tags.push( { \n label: ContentVisibility.tags[tag].label,\n value: ContentVisibility.tags[tag].id,\n notes: ContentVisibility.tags[tag].notes\n } );\n \n }\n\n return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n if ( ! props.attributes.contentVisibilityRules ) {\n return false;\n }\n\n if ( ! props.attributes.contentVisibilityRules[type] ) {\n return false;\n }\n\n // Default to false. Passed through a filter later.\n let hasRules = false;\n\n switch ( type ) {\n \n case 'userAuthenticated':\n\n if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n hasRules = true;\n }\n\n break;\n \n case 'specialPage':\n\n let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n hasRules = specialPageRulesValues.some( function( el ) {\n return el.length > 0;\n });\n\n break;\n\n default:\n break;\n }\n\n return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""} -
content-visibility/tags/0.2.9/content-visibility.php
r2589501 r2833193 12 12 * Plugin URI: https://richardtape.com/content-visibility/ 13 13 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible. 14 * Version: 0.2. 714 * Version: 0.2.9 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/tags/0.2.9/includes/content-visibility.php
r2568520 r2833193 14 14 15 15 add_action( 'plugins_loaded', __NAMESPACE__ . '\\plugins_loaded__bv_loader' ); 16 17 // An issue has been reported that any blocks registered with PHP and renders to the 18 // editor using the ServerSideRender component will fail due to validation error from rest API endpoint. 19 // 20 // This is due to the default attributes were originally added on the client side only. And the server does not know they are/should exist. 21 // 22 // The solution is to make sure that any blocks registered through PHP does also have the required attributes on the server side by override the block attributes 23 // when blocks are registered with PHP. The WordPress core blocks are excluded. 24 add_filter( 'register_block_type_args', __NAMESPACE__ . '\\add_block_default_attributes', 10, 2 ); 25 26 /** 27 * Fires when new blocks are registered 28 * 29 * @param array $args an array of block settings 30 * @param string $name the name of the block 31 * 32 * @return array $args an array of modified block settings 33 * 34 * @since 0.2.8 35 */ 36 function add_block_default_attributes( $args, $name ) { 37 38 $args['attributes']['contentVisibilityRules'] = array( 39 'type' => 'object', 40 'default' => array( 41 'contentVisibilityRulesEnabled' => false, 42 'userAuthenticated' => '', 43 ) 44 ); 45 46 return $args; 47 }//end add_block_default_attributes() 16 48 17 49 /** -
content-visibility/tags/0.2.9/readme.txt
r2589501 r2833193 4 4 Tags: contentvisibility, block, content, visibility, show, hide 5 5 Requires at least: 5.0 6 Tested up to: 5.8.07 Stable tag: 0.2. 76 Tested up to: 6.1.1 7 Stable tag: 0.2.9 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 69 69 == Changelog == 70 70 71 = 0.2.9 = 72 * WordPress 6.1.1 compatibility. 73 * Fixed the styling weirdness causing some blocks to be misaligned when they have rules set. 74 * Tweaked styling of block inspector controls to fall more in line with newer WP rules. 75 * Fixed styles of multi-select field for widgets. 76 77 = 0.2.8 = 78 * Fixed an issue where blocks registered with PHP throwing error when rendering it with ServerSideRender components in the editor. 79 71 80 = 0.2.7 = 72 81 * Fixed an issue where in some cases the block controls for widgets still weren't appearing on the new 5.8 widgets screen. -
content-visibility/trunk/build/index.asset.php
r2589501 r2833193 1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => ' c28fdfc67e7a7bafa09326248c260d87');1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '020be447b45cb72d83d4347ab15f2ddd'); -
content-visibility/trunk/build/index.css
r2589501 r2833193 58 58 margin-bottom: 0; } 59 59 60 .content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {61 text-align: right; }62 63 60 /* 64 61 Styling for the rule panels … … 70 67 width: 100%; } 71 68 69 /* 70 It seems WP changed to capitalize labels, and that looks weird for us, so 71 we'll normalize that. 72 */ 73 .content-visibility-controls.is-opened .content-visibility-control-panel label { 74 text-transform: none; 75 font-weight: normal; 76 font-size: 1em; } 77 72 78 .content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle { 73 79 border-bottom: 1px solid #e2e4e7; } … … 109 115 height: 24px; 110 116 width: 24px; 111 margin-left: 105%; 112 margin-top: 1%; 113 opacity: 0.25; 117 position: absolute; 118 top: 0; 119 right: -2em; 120 opacity: 0.2; 114 121 box-shadow: none !important; 115 122 content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>') !important; } … … 119 126 height: 24px; 120 127 width: 24px; 121 margin-left: 105%; 122 margin-top: 1%; 123 opacity: 0.25; 128 position: absolute; 129 top: 0; 130 right: -2em; 131 opacity: 0.2; 124 132 box-shadow: none !important; 125 133 content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye-off"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>') !important; } … … 129 137 */ 130 138 .content-visibility-controls-container .content-visibility-help-text { 131 margin: 1rem 0 0 ;139 margin: 1rem 0 0 !important; 132 140 font-size: 12px; 133 141 font-style: normal; … … 143 151 .content-visibility-multi-select { 144 152 width: 100%; 145 margin: 1rem 0 0 0; } 153 margin: 1rem 0 0 0; 154 border: 1px solid #ccc; 155 padding: 0.25em 0.5em; 156 background: white; } 157 158 .content-visibility-multi-select .dropdown-content { 159 background: white; 160 z-index: 999; } 146 161 147 162 /* … … 279 294 .content-visibility-close-popover { 280 295 position: absolute; 281 top: -2rem;282 right: -1rem; }296 top: 0; 297 right: 0; } 283 298 284 299 /* -
content-visibility/trunk/build/index.css.map
r2568520 r2833193 1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n display: block; }\n\n/*\n Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n margin: 1rem 0; }\n\n/*\n Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n max-width: none;\n margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n width: 50%;\n margin: 0.5em 0 0;\n display: inline-block; }\n\n/*\n ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n width: 100%; }\n\n/*\n User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n display: block; }\n\n.content-visibility-user-authenticated-control {\n width: 100%;\n display: block;\n float: none;\n clear: both; }\n\n/*\n Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n margin-bottom: 0; }\n\n.content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {\n text-align: right; }\n\n/*\n Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n border: 1px solid #e2e4e7;\n margin-bottom: 1em;\n background: #fcfcfc;\n width: 100%; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n border-bottom: 1px solid #e2e4e7; }\n\n/*\n When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n opacity: 0.2; }\n\n.components-disabled {\n opacity: 0.5; }\n\n/*\n Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n margin-bottom: 0; }\n\n/*\n User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n margin-bottom: 0; }\n\n/*\n When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n display: block;\n height: 24px;\n width: 24px;\n margin-left: 105%;\n margin-top: 1%;\n opacity: 0.25;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n display: block;\n height: 24px;\n width: 24px;\n margin-left: 105%;\n margin-top: 1%;\n opacity: 0.25;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6;\n box-shadow: none; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n display: inline-block;\n height: 12px;\n width: 12px;\n margin-left: 0.5rem;\n line-height: 1; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: -2rem;\n right: -1rem; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n display: block; }\n\n/*\n Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n margin: 1rem 0; }\n\n/*\n Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n max-width: none;\n margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n width: 50%;\n margin: 0.5em 0 0;\n display: inline-block; }\n\n/*\n ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n width: 100%; }\n\n/*\n User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n display: block; }\n\n.content-visibility-user-authenticated-control {\n width: 100%;\n display: block;\n float: none;\n clear: both; }\n\n/*\n Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n margin-bottom: 0; }\n\n/*\n Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n border: 1px solid #e2e4e7;\n margin-bottom: 1em;\n background: #fcfcfc;\n width: 100%; }\n\n/*\n It seems WP changed to capitalize labels, and that looks weird for us, so\n we'll normalize that.\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel label {\n text-transform: none;\n font-weight: normal;\n font-size: 1em; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n border-bottom: 1px solid #e2e4e7; }\n\n/*\n When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n opacity: 0.2; }\n\n.components-disabled {\n opacity: 0.5; }\n\n/*\n Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n margin-bottom: 0; }\n\n/*\n User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n margin-bottom: 0; }\n\n/*\n When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n display: block;\n height: 24px;\n width: 24px;\n position: absolute;\n top: 0;\n right: -2em;\n opacity: 0.2;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n display: block;\n height: 24px;\n width: 24px;\n position: absolute;\n top: 0;\n right: -2em;\n opacity: 0.2;\n box-shadow: none !important;\n content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0 !important;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0;\n border: 1px solid #ccc;\n padding: 0.25em 0.5em;\n background: white; }\n\n.content-visibility-multi-select .dropdown-content {\n background: white;\n z-index: 999; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6;\n box-shadow: none; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n display: inline-block;\n height: 12px;\n width: 12px;\n margin-left: 0.5rem;\n line-height: 1; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: 0;\n right: 0; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""} -
content-visibility/trunk/build/index.js
r2589501 r2833193 176 176 \***************************************************************/ 177 177 /*! no static exports found */ 178 /***/ (function(module, exports) { 179 178 /***/ (function(module, exports, __webpack_require__) { 179 180 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/toPropertyKey.js"); 180 181 function _defineProperty(obj, key, value) { 182 key = toPropertyKey(key); 181 183 if (key in obj) { 182 184 Object.defineProperty(obj, key, { … … 189 191 obj[key] = value; 190 192 } 191 192 193 return obj; 193 194 } 194 195 module.exports = _defineProperty; 195 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; 196 196 197 197 /***/ }), … … 205 205 206 206 function _extends() { 207 module.exports = _extends = Object.assign ||function (target) {207 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) { 208 208 for (var i = 1; i < arguments.length; i++) { 209 209 var source = arguments[i]; 210 211 210 for (var key in source) { 212 211 if (Object.prototype.hasOwnProperty.call(source, key)) { … … 215 214 } 216 215 } 217 218 216 return target; 219 }; 220 217 }, module.exports.__esModule = true, module.exports["default"] = module.exports; 221 218 return _extends.apply(this, arguments); 222 219 } 223 224 module.exports = _extends; 220 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports; 221 222 /***/ }), 223 224 /***/ "./node_modules/@babel/runtime/helpers/toPrimitive.js": 225 /*!************************************************************!*\ 226 !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! 227 \************************************************************/ 228 /*! no static exports found */ 229 /***/ (function(module, exports, __webpack_require__) { 230 231 var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]; 232 function _toPrimitive(input, hint) { 233 if (_typeof(input) !== "object" || input === null) return input; 234 var prim = input[Symbol.toPrimitive]; 235 if (prim !== undefined) { 236 var res = prim.call(input, hint || "default"); 237 if (_typeof(res) !== "object") return res; 238 throw new TypeError("@@toPrimitive must return a primitive value."); 239 } 240 return (hint === "string" ? String : Number)(input); 241 } 242 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; 243 244 /***/ }), 245 246 /***/ "./node_modules/@babel/runtime/helpers/toPropertyKey.js": 247 /*!**************************************************************!*\ 248 !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! 249 \**************************************************************/ 250 /*! no static exports found */ 251 /***/ (function(module, exports, __webpack_require__) { 252 253 var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]; 254 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/toPrimitive.js"); 255 function _toPropertyKey(arg) { 256 var key = toPrimitive(arg, "string"); 257 return _typeof(key) === "symbol" ? key : String(key); 258 } 259 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; 225 260 226 261 /***/ }), … … 236 271 "@babel/helpers - typeof"; 237 272 238 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { 239 module.exports = _typeof = function _typeof(obj) { 240 return typeof obj; 241 }; 242 } else { 243 module.exports = _typeof = function _typeof(obj) { 244 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 245 }; 246 } 247 248 return _typeof(obj); 273 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { 274 return typeof obj; 275 } : function (obj) { 276 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 277 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); 249 278 } 250 251 module.exports = _typeof; 252 253 /***/ }), 254 255 /***/ "./node_modules/goober/dist/goober.module.js": 256 /*!***************************************************!*\ 257 !*** ./node_modules/goober/dist/goober.module.js ***! 258 \***************************************************/ 279 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; 280 281 /***/ }), 282 283 /***/ "./node_modules/goober/dist/goober.esm.js": 284 /*!************************************************!*\ 285 !*** ./node_modules/goober/dist/goober.esm.js ***! 286 \************************************************/ 259 287 /*! exports provided: css, extractCss, glob, keyframes, setup, styled */ 260 288 /***/ (function(module, __webpack_exports__, __webpack_require__) { … … 262 290 "use strict"; 263 291 __webpack_require__.r(__webpack_exports__); 264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; });292 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return u; }); 265 293 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractCss", function() { return r; }); 266 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return d; });267 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return g; });268 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return b; });269 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return h; });270 let e={data:""},t=t=> {try{let e=t?t.querySelector("#_goober"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement("style")),e.innerHTML=" ",e.id="_goober"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data="",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\/\*[\s\S]*?\*\/|\s{2,}|\n/gm,o=(e,t)=>{let r,a="",l="",n="";for(let c in e){let s=e[c];"object"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):c,l+="@"==c[0]?"f"==c[1]?o(s,c):c+"{"+o(s,"k"==c[1]?"":t)+"}":o(s,r)):"@"==c[0]&&"i"==c[1]?a=c+" "+s+";":n+=o.p?o.p(c.replace(/[A-Z]/g,"-$&").toLowerCase(),s):c.replace(/[A-Z]/g,"-$&").toLowerCase()+":"+s+";"}return n[0]?(r=t?t+"{"+n+"}":n,a+r+l):a+l},n={},c=e=>{let t="";for(let r in e)t+=r+("object"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i="object"==typeof e?c(e):e,u=n[i]||(n[i]="go"+i.split("").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t="object"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,""));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):e}return e+a+(null==n?"":n)},"");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/g.test(s),c.className=i.apply(r,a)+(s?" "+s:""),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}294 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return b; }); 295 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return h; }); 296 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return m; }); 297 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return j; }); 298 let e={data:""},t=t=>"object"==typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data="",l},l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,a=/\/\*[^]*?\*\/| +/g,n=/\n+/g,o=(e,t)=>{let r="",l="",a="";for(let n in e){let c=e[n];"@"==n[0]?"i"==n[1]?r=n+" "+c+";":l+="f"==n[1]?o(c,n):n+"{"+o(c,"k"==n[1]?"":t)+"}":"object"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=o.p?o.p(n,c):n+":"+c+";")}return r+(t&&a?t+"{"+a+"}":a)+l},c={},s=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,""));)t[4]?o.shift():t[3]?(r=t[3].replace(n," ").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n," ").trim();return o[0]})(e);c[d]=o(p?{["@keyframes "+d]:t}:t,r?"":"."+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):!1===e?"":e}return e+l+(null==n?"":n)},"");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/.test(s),c.className=u.apply(r,l)+(s?" "+s:""),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}} 271 299 272 300 … … 2174 2202 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; }); 2175 2203 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectPanel", function() { return SelectPanel; }); 2176 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober. module.js");2204 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.esm.js"); 2177 2205 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); 2178 2206 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); … … 2180 2208 2181 2209 2182 var debounce = function debounce(func, wait) { 2183 var timeout; 2184 return function () { 2185 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 2186 args[_key] = arguments[_key]; 2210 const defaultStrings = { 2211 allItemsAreSelected: "All items are selected.", 2212 clearSearch: "Clear Search", 2213 clearSelected: "Clear Selected", 2214 noOptions: "No options", 2215 search: "Search", 2216 selectAll: "Select All", 2217 selectSomeItems: "Select..." 2218 }; 2219 const defaultProps = { 2220 value: [], 2221 focusSearchOnOpen: true, 2222 hasSelectAll: true, 2223 className: "multi-select", 2224 debounceDuration: 200, 2225 options: [] 2226 }; 2227 const MultiSelectContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createContext({}); 2228 const MultiSelectProvider = ({ 2229 props, 2230 children 2231 }) => { 2232 const t = key => { 2233 var _props$overrideString; 2234 2235 return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key]; 2236 }; 2237 2238 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectContext.Provider, { 2239 value: { 2240 t, 2241 ...defaultProps, 2242 ...props 2187 2243 } 2188 2244 }, children); 2245 }; 2246 const useMultiSelect = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.useContext(MultiSelectContext); 2247 2248 /** 2249 * combines classNames in a friendly way 2250 * 2251 * @param {*} classes 2252 */ 2253 const cn = (...classes) => classes.join(" "); 2254 2255 /** 2256 * similar to `useEffect` but gets triggered only when value changes 2257 * @param fn executable function on dependency updates 2258 * @param inputs dependency array 2259 */ 2260 2261 function useDidUpdateEffect(fn, inputs) { 2262 const didMountRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false); 2263 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2264 if (didMountRef.current) fn();else didMountRef.current = true; 2265 }, inputs); 2266 } 2267 2268 const debounce = (func, wait) => { 2269 let timeout; 2270 return function (...args) { 2189 2271 clearTimeout(timeout); 2190 timeout = setTimeout( function (){2272 timeout = setTimeout(() => { 2191 2273 func.apply(null, args); 2192 2274 }, wait); … … 2213 2295 } 2214 2296 2215 varcleanFilter = cleanUpText(filter, substitutions);2297 const cleanFilter = cleanUpText(filter, substitutions); 2216 2298 return options // Filter out undefined or null Options. 2217 .filter(function (_ref) { 2218 var label = _ref.label, 2219 value = _ref.value; 2220 return label != null && value != null; 2221 }) // Create a {score, Option} pair for each Option based on its label's 2299 .filter(({ 2300 label, 2301 value 2302 }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's 2222 2303 // similarity to the filter text. 2223 .map(function (option) { 2224 return { 2225 option: option, 2226 score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter) 2227 }; 2228 }) // Only include matches of the entire substring, with a slight 2304 .map(option => ({ 2305 option: option, 2306 score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter) 2307 })) // Only include matches of the entire substring, with a slight 2229 2308 // affordance for transposition or extra characters. 2230 .filter(function (pair) { 2231 return pair.score >= cleanFilter.length - 2; 2232 }) // Sort 'em by order of their score. 2233 .sort(function (a, b) { 2234 return b.score - a.score; 2235 }) // …and grab the original Options back from their pairs. 2236 .map(function (pair) { 2237 return pair.option; 2238 }); 2309 .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score. 2310 .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs. 2311 .map(pair => pair.option); 2239 2312 } 2240 2313 /** … … 2254 2327 2255 2328 function typeaheadSimilarity(a, b) { 2256 varaLength = a.length;2257 varbLength = b.length;2258 vartable = [];2329 const aLength = a.length; 2330 const bLength = b.length; 2331 const table = []; 2259 2332 2260 2333 if (!aLength || !bLength) { … … 2264 2337 2265 2338 if (aLength < bLength) { 2266 var _ref2 = [b, a]; 2267 a = _ref2[0]; 2268 b = _ref2[1]; 2339 [a, b] = [b, a]; 2269 2340 } // Early exit if `a` includes `b`; these will be scored higher than any 2270 2341 // other options with the same `b` (filter string), with a preference for … … 2286 2357 2287 2358 2288 for ( varx = 0; x <= aLength; ++x) {2359 for (let x = 0; x <= aLength; ++x) { 2289 2360 table[x] = [0]; 2290 2361 } 2291 2362 2292 for ( vary = 0; y <= bLength; ++y) {2363 for (let y = 0; y <= bLength; ++y) { 2293 2364 table[0][y] = 0; 2294 2365 } // Populate the rest of the table with a dynamic programming algorithm. 2295 2366 2296 2367 2297 for ( var _x = 1; _x <= aLength; ++_x) {2298 for ( var _y = 1; _y <= bLength; ++_y) {2299 table[ _x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);2368 for (let x = 1; x <= aLength; ++x) { 2369 for (let y = 1; y <= bLength; ++y) { 2370 table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]); 2300 2371 } 2301 2372 } … … 2330 2401 } 2331 2402 2332 varsafeSubstitutions = substitutions; // For Flow.2403 const safeSubstitutions = substitutions; // For Flow. 2333 2404 // Replace all strings in `safeSubstitutions` with their standardized 2334 2405 // counterparts. 2335 2406 2336 return Object.keys(safeSubstitutions).reduce( function (output, substitution){2337 varunsubbed = new RegExp(substitution, "g");2407 return Object.keys(safeSubstitutions).reduce((output, substitution) => { 2408 const unsubbed = new RegExp(substitution, "g"); 2338 2409 return output.replace(unsubbed, safeSubstitutions[substitution]); 2339 2410 }, input); 2340 2411 } 2341 2412 2342 var strings = { 2343 selectSomeItems: "Select...", 2344 allItemsAreSelected: "All items are selected.", 2345 selectAll: "Select All", 2346 search: "Search", 2347 clearSearch: "Clear Search", 2348 clearSelected: "Clear Selected" 2349 }; 2350 function getString(key, overrideStrings) { 2351 return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key]; 2352 } 2353 2354 var Cross = function Cross() { 2355 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2356 width: "24", 2357 height: "24", 2358 fill: "none", 2359 stroke: "currentColor", 2360 strokeWidth: "2", 2361 className: "dropdown-search-clear-icon gray" 2362 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2363 x1: "18", 2364 y1: "6", 2365 x2: "6", 2366 y2: "18" 2367 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2368 x1: "6", 2369 y1: "6", 2370 x2: "18", 2371 y2: "18" 2372 })); 2373 }; 2374 2375 var DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2413 const Cross = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2414 width: "24", 2415 height: "24", 2416 fill: "none", 2417 stroke: "currentColor", 2418 strokeWidth: "2", 2419 className: "dropdown-search-clear-icon gray" 2420 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2421 x1: "18", 2422 y1: "6", 2423 x2: "6", 2424 y2: "18" 2425 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", { 2426 x1: "6", 2427 y1: "6", 2428 x2: "18", 2429 y2: "18" 2430 })); 2431 2432 const DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2376 2433 "& input,& span": { 2377 2434 verticalAlign: "middle", … … 2387 2444 }); 2388 2445 2389 var DefaultItemRenderer = function DefaultItemRenderer(_ref) { 2390 var checked = _ref.checked, 2391 option = _ref.option, 2392 onClick = _ref.onClick, 2393 disabled = _ref.disabled; 2394 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2395 className: DefaultRenderer + " item-renderer " + (disabled && "disabled") 2396 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2397 type: "checkbox", 2398 onChange: onClick, 2399 checked: checked, 2400 tabIndex: -1, 2401 disabled: disabled 2402 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label)); 2403 }; 2446 const DefaultItemRenderer = ({ 2447 checked, 2448 option, 2449 onClick, 2450 disabled 2451 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2452 className: cn(DefaultRenderer, "item-renderer", disabled && "disabled") 2453 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2454 type: "checkbox", 2455 onChange: onClick, 2456 checked: checked, 2457 tabIndex: -1, 2458 disabled: disabled 2459 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label)); 2404 2460 2405 2461 /** 2406 2462 * This component represents an individual item in the multi-select drop-down 2407 2463 */ 2408 varItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2464 const ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2409 2465 boxSizing: "border-box", 2410 2466 cursor: "pointer", … … 2420 2476 }); 2421 2477 2422 var SelectItem = function SelectItem(_ref){2423 var _ref$itemRenderer = _ref.itemRenderer,2424 ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,2425 option = _ref.option,2426 checked = _ref.checked,2427 focused = _ref.focused,2428 tabIndex = _ref.tabIndex,2429 disabled = _ref.disabled,2430 onSelectionChanged = _ref.onSelectionChanged,2431 onClick = _ref.onClick; 2432 varitemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();2433 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])( function (){2478 const SelectItem = ({ 2479 itemRenderer: ItemRenderer = DefaultItemRenderer, 2480 option, 2481 checked, 2482 focused, 2483 tabIndex, 2484 disabled, 2485 onSelectionChanged, 2486 onClick 2487 }) => { 2488 const itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2489 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2434 2490 updateFocus(); // eslint-disable-next-line 2435 }, [ focused]);2436 2437 var toggleChecked = function toggleChecked(){2491 }, [checked, focused]); 2492 2493 const toggleChecked = () => { 2438 2494 onSelectionChanged(!checked); 2439 2495 }; 2440 2496 2441 var handleClick = function handleClick(e){2497 const handleClick = e => { 2442 2498 toggleChecked(); 2443 2499 onClick(e); 2444 2500 }; 2445 2501 2446 var updateFocus = function updateFocus(){2502 const updateFocus = () => { 2447 2503 if (focused && !disabled && itemRef) { 2448 2504 itemRef.current.focus(); … … 2450 2506 }; 2451 2507 2452 var handleKeyDown = function handleKeyDown(e){2508 const handleKeyDown = e => { 2453 2509 switch (e.which) { 2454 2510 case 13: // Enter … … 2467 2523 2468 2524 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", { 2469 className: ItemContainer + " select-item " + (checked && "selected"),2525 className: cn(ItemContainer, "select-item", checked && "selected"), 2470 2526 role: "option", 2471 2527 "aria-selected": checked, … … 2484 2540 * This component represents an unadorned list of SelectItem (s). 2485 2541 */ 2486 varSelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2542 const SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2487 2543 margin: 0, 2488 2544 paddingLeft: 0, … … 2492 2548 } 2493 2549 }); 2494 var skipIndex = 2; 2495 2496 var SelectList = function SelectList(_ref) { 2497 var value = _ref.value, 2498 onChange = _ref.onChange, 2499 disabled = _ref.disabled, 2500 ItemRenderer = _ref.ItemRenderer, 2501 options = _ref.options, 2502 focusIndex = _ref.focusIndex, 2503 _onClick = _ref.onClick; 2504 2505 var handleSelectionChanged = function handleSelectionChanged(option, checked) { 2550 const skipIndex = 2; 2551 2552 const SelectList = ({ 2553 options, 2554 focusIndex, 2555 onClick 2556 }) => { 2557 const { 2558 disabled, 2559 value, 2560 onChange, 2561 ItemRenderer 2562 } = useMultiSelect(); 2563 2564 const handleSelectionChanged = (option, checked) => { 2506 2565 if (disabled) { 2507 2566 return; 2508 2567 } 2509 2568 2510 onChange(checked ? [].concat(value, [option]) : value.filter(function (o) { 2511 return o.value !== option.value; 2512 })); 2569 onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value)); 2513 2570 }; 2514 2571 2515 2572 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", { 2516 2573 className: SelectListUl 2517 }, options.map( function (o, i){2518 vartabIndex = i + skipIndex;2574 }, options.map((o, i) => { 2575 const tabIndex = i + skipIndex; 2519 2576 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", { 2520 key: o.hasOwnProperty("key") ? o.key :i2577 key: (o == null ? void 0 : o.key) || i 2521 2578 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2522 2579 focused: focusIndex === tabIndex, 2523 2580 tabIndex: tabIndex, 2524 2581 option: o, 2525 onSelectionChanged: function onSelectionChanged(c) { 2526 return handleSelectionChanged(o, c); 2527 }, 2528 checked: value.find(function (s) { 2529 return s.value === o.value; 2530 }) ? true : false, 2531 onClick: function onClick(e) { 2532 return _onClick(e, tabIndex); 2533 }, 2582 onSelectionChanged: c => handleSelectionChanged(o, c), 2583 checked: value.find(s => s.value === o.value) ? true : false, 2584 onClick: e => onClick(e, tabIndex), 2534 2585 itemRenderer: ItemRenderer, 2535 2586 disabled: o.disabled || disabled … … 2550 2601 })(FocusType || (FocusType = {})); 2551 2602 2552 varSelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2603 const SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2553 2604 width: "100%", 2554 2605 position: "relative", … … 2562 2613 } 2563 2614 }); 2564 varSearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2615 const SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2565 2616 cursor: "pointer", 2566 2617 position: "absolute", … … 2575 2626 } 2576 2627 }); 2577 var SelectPanel = function SelectPanel(props) { 2578 var onChange = props.onChange, 2579 options = props.options, 2580 value = props.value, 2581 customFilterOptions = props.filterOptions, 2582 selectAllLabel = props.selectAllLabel, 2583 ItemRenderer = props.ItemRenderer, 2584 disabled = props.disabled, 2585 disableSearch = props.disableSearch, 2586 focusSearchOnOpen = props.focusSearchOnOpen, 2587 hasSelectAll = props.hasSelectAll, 2588 overrideStrings = props.overrideStrings, 2589 ClearIcon = props.ClearIcon, 2590 debounceDuration = props.debounceDuration; 2591 2592 var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""), 2593 searchText = _useState[0], 2594 setSearchText = _useState[1]; 2595 2596 var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""), 2597 searchTextForFilter = _useState2[0], 2598 setSearchTextForFilter = _useState2[1]; 2599 2600 var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE), 2601 focusIndex = _useState3[0], 2602 setFocusIndex = _useState3[1]; 2603 2604 var debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(function (query) { 2605 return setSearchTextForFilter(query); 2606 }, debounceDuration), []); 2607 var selectAllOption = { 2608 label: selectAllLabel || getString("selectAll", overrideStrings), 2628 const NoOptions = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2629 padding: "var(--rmsc-p)", 2630 textAlign: "center", 2631 color: "var(--rmsc-gray)" 2632 }); 2633 2634 const SelectPanel = () => { 2635 const { 2636 t, 2637 onChange, 2638 options, 2639 value, 2640 filterOptions: customFilterOptions, 2641 selectAllLabel, 2642 ItemRenderer, 2643 disabled, 2644 disableSearch, 2645 focusSearchOnOpen, 2646 hasSelectAll, 2647 ClearIcon, 2648 debounceDuration 2649 } = useMultiSelect(); 2650 const searchInputRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2651 const [searchText, setSearchText] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""); 2652 const [filteredOptions, setFilteredOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(options); 2653 const [searchTextForFilter, setSearchTextForFilter] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""); 2654 const [focusIndex, setFocusIndex] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE); 2655 const debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(query => setSearchTextForFilter(query), debounceDuration), []); 2656 const selectAllOption = { 2657 label: selectAllLabel || t("selectAll"), 2609 2658 value: "" 2610 2659 }; 2611 2660 2612 var selectAllValues = function selectAllValues(checked) { 2613 var filteredValues = filteredOptions().filter(function (o) { 2614 return !o.disabled; 2615 }).map(function (o) { 2616 return o.value; 2617 }); 2661 const selectAllValues = checked => { 2662 const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value); 2618 2663 2619 2664 if (checked) { 2620 var selectedValues = value.map(function (o) { 2621 return o.value; 2622 }); 2623 var finalSelectedValues = [].concat(selectedValues, filteredValues); 2624 return options.filter(function (_ref) { 2625 var value = _ref.value; 2626 return finalSelectedValues.includes(value); 2627 }); 2665 const selectedValues = value.map(o => o.value); 2666 const finalSelectedValues = [...selectedValues, ...filteredValues]; 2667 return filteredOptions.filter(o => finalSelectedValues.includes(o.value)); 2628 2668 } 2629 2669 2630 return value.filter(function (o) { 2631 return !filteredValues.includes(o.value); 2632 }); 2670 return value.filter(o => !filteredValues.includes(o.value)); 2633 2671 }; 2634 2672 2635 var selectAllChanged = function selectAllChanged(checked){2636 varnewOptions = selectAllValues(checked);2673 const selectAllChanged = checked => { 2674 const newOptions = selectAllValues(checked); 2637 2675 onChange(newOptions); 2638 2676 }; 2639 2677 2640 var handleSearchChange = function handleSearchChange(e){2678 const handleSearchChange = e => { 2641 2679 debouncedSearch(e.target.value); 2642 2680 setSearchText(e.target.value); … … 2644 2682 }; 2645 2683 2646 var handleClear = function handleClear() { 2684 const handleClear = () => { 2685 var _searchInputRef$curre; 2686 2647 2687 setSearchTextForFilter(""); 2648 2688 setSearchText(""); 2689 searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus(); 2649 2690 }; 2650 2691 2651 var handleItemClicked = function handleItemClicked(index) { 2652 return setFocusIndex(index); 2653 }; 2654 2655 var handleKeyDown = function handleKeyDown(e) { 2692 const handleItemClicked = index => setFocusIndex(index); 2693 2694 const handleKeyDown = e => { 2656 2695 switch (e.which) { 2657 2696 case 38: … … 2681 2720 }; 2682 2721 2683 var handleSearchFocus = function handleSearchFocus(){2722 const handleSearchFocus = () => { 2684 2723 setFocusIndex(FocusType.SEARCH); 2685 2724 }; 2686 2725 2687 var filteredOptions = function filteredOptions() { 2688 return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter); 2689 }; 2690 2691 var updateFocus = function updateFocus(offset) { 2692 var newFocus = focusIndex + offset; 2726 const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter); 2727 2728 const updateFocus = offset => { 2729 let newFocus = focusIndex + offset; 2693 2730 newFocus = Math.max(1, newFocus); 2694 2731 newFocus = Math.min(newFocus, options.length + 1); … … 2696 2733 }; 2697 2734 2698 var _useMemo = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () { 2699 var filteredOptionsList = filteredOptions().filter(function (o) { 2700 return !o.disabled; 2701 }); 2702 return [filteredOptionsList.every(function (o) { 2703 return value.findIndex(function (v) { 2704 return v.value === o.value; 2705 }) !== -1; 2706 }), filteredOptionsList.length !== 0]; // eslint-disable-next-line 2707 }, [searchText, value]), 2708 isAllOptionSelected = _useMemo[0], 2709 hasSelectableOptions = _useMemo[1]; 2710 2735 const [isAllOptionSelected, hasSelectableOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => { 2736 const filteredOptionsList = filteredOptions.filter(o => !o.disabled); 2737 return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line 2738 }, [filteredOptions, value]); 2739 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2740 getFilteredOptions().then(setFilteredOptions); 2741 }, [searchTextForFilter, options]); 2711 2742 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2712 2743 className: "select-panel", … … 2717 2748 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2718 2749 autoFocus: focusSearchOnOpen, 2719 placeholder: getString("search", overrideStrings),2750 placeholder: t("search"), 2720 2751 type: "text", 2721 "aria-describedby": getString("search", overrideStrings), 2722 onKeyDown: function onKeyDown(e) { 2723 return e.stopPropagation(); 2724 }, 2752 "aria-describedby": t("search"), 2753 onKeyDown: e => e.stopPropagation(), 2725 2754 onChange: handleSearchChange, 2726 2755 onFocus: handleSearchFocus, 2727 value: searchText 2756 value: searchText, 2757 ref: searchInputRef 2728 2758 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 2729 2759 type: "button", 2730 className: SearchClearButton + " search-clear-button",2760 className: cn(SearchClearButton, "search-clear-button"), 2731 2761 hidden: !searchText, 2732 2762 onClick: handleClear, 2733 "aria-label": getString("clearSearch", overrideStrings)2763 "aria-label": t("clearSearch") 2734 2764 }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2735 2765 focused: focusIndex === 1, … … 2738 2768 option: selectAllOption, 2739 2769 onSelectionChanged: selectAllChanged, 2740 onClick: function onClick() { 2741 return handleItemClicked(0); 2742 }, 2770 onClick: () => handleItemClicked(1), 2743 2771 itemRenderer: ItemRenderer, 2744 2772 disabled: disabled 2745 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, {2746 options: filteredOptions (),2773 }), filteredOptions.length ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, { 2774 options: filteredOptions, 2747 2775 focusIndex: focusIndex, 2748 onClick: function onClick(_e, index) { 2749 return handleItemClicked(index); 2750 }, 2751 ItemRenderer: ItemRenderer, 2752 disabled: disabled 2753 }))); 2776 onClick: (_e, index) => handleItemClicked(index) 2777 }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2778 className: cn(NoOptions, "no-options") 2779 }, t("noOptions"))); 2754 2780 }; 2755 2781 2756 function Arrow(_ref) { 2757 var expanded = _ref.expanded; 2758 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2759 width: "24", 2760 height: "24", 2761 fill: "none", 2762 stroke: "currentColor", 2763 strokeWidth: "2", 2764 className: "dropdown-heading-dropdown-arrow gray" 2765 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", { 2766 d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9" 2767 })); 2768 } 2769 2770 var Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2782 const Arrow = ({ 2783 expanded 2784 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2785 width: "24", 2786 height: "24", 2787 fill: "none", 2788 stroke: "currentColor", 2789 strokeWidth: "2", 2790 className: "dropdown-heading-dropdown-arrow gray" 2791 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", { 2792 d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9" 2793 })); 2794 2795 const DropdownHeader = () => { 2796 const { 2797 t, 2798 value, 2799 options, 2800 valueRenderer 2801 } = useMultiSelect(); 2802 const noneSelected = value.length === 0; 2803 const allSelected = value.length === options.length; 2804 const customText = valueRenderer && valueRenderer(value, options); 2805 2806 const getSelectedText = () => value.map(s => s.label).join(", "); 2807 2808 return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2809 className: "gray" 2810 }, customText || t("selectSomeItems")) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? t("allItemsAreSelected") : getSelectedText())); 2811 }; 2812 2813 const Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2771 2814 animation: "rotate 2s linear infinite", 2772 2815 "& .path": { … … 2796 2839 } 2797 2840 }); 2798 2799 function Loading(_ref) { 2800 var _ref$size = _ref.size, 2801 size = _ref$size === void 0 ? 24 : _ref$size; 2802 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2803 style: { 2804 width: size, 2805 marginRight: "0.2rem" 2806 } 2807 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2841 const Loading = ({ 2842 size = 24 2843 }) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 2844 style: { 2808 2845 width: size, 2809 height: size, 2810 className: Spinner, 2811 viewBox: "0 0 50 50", 2812 style: { 2813 display: "inline", 2814 verticalAlign: "middle" 2815 } 2816 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", { 2817 cx: "25", 2818 cy: "25", 2819 r: "20", 2820 fill: "none", 2821 className: "path" 2822 }))); 2823 } 2846 marginRight: "0.2rem" 2847 } 2848 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", { 2849 width: size, 2850 height: size, 2851 className: Spinner, 2852 viewBox: "0 0 50 50", 2853 style: { 2854 display: "inline", 2855 verticalAlign: "middle" 2856 } 2857 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", { 2858 cx: "25", 2859 cy: "25", 2860 r: "20", 2861 fill: "none", 2862 className: "path" 2863 }))); 2824 2864 2825 2865 /** … … 2828 2868 * drops-down the contentComponent and applies the contentProps. 2829 2869 */ 2830 varPanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2870 const PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2831 2871 position: "absolute", 2832 2872 zIndex: 1, … … 2842 2882 } 2843 2883 }); 2844 varDropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2884 const DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2845 2885 position: "relative", 2846 2886 outline: 0, … … 2853 2893 } 2854 2894 }); 2855 varDropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2895 const DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2856 2896 position: "relative", 2857 2897 padding: "0 var(--rmsc-p)", … … 2869 2909 } 2870 2910 }); 2871 varClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({2911 const ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2872 2912 cursor: "pointer", 2873 2913 background: "none", … … 2877 2917 }); 2878 2918 2879 var Dropdown = function Dropdown(_ref) { 2880 var children = _ref.children, 2881 ContentComponent = _ref.contentComponent, 2882 contentProps = _ref.contentProps, 2883 isLoading = _ref.isLoading, 2884 disabled = _ref.disabled, 2885 shouldToggleOnHover = _ref.shouldToggleOnHover, 2886 labelledBy = _ref.labelledBy, 2887 onMenuToggle = _ref.onMenuToggle, 2888 ArrowRenderer = _ref.ArrowRenderer, 2889 ClearSelectedIcon = _ref.ClearSelectedIcon, 2890 defaultIsOpen = _ref.defaultIsOpen, 2891 isOpen = _ref.isOpen; 2892 2893 var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true), 2894 isInternalExpand = _useState[0], 2895 setIsInternalExpand = _useState[1]; 2896 2897 var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen), 2898 expanded = _useState2[0], 2899 setExpanded = _useState2[1]; 2900 2901 var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 2902 hasFocus = _useState3[0], 2903 setHasFocus = _useState3[1]; 2904 2905 var FinalArrow = ArrowRenderer || Arrow; 2906 var wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2907 /* eslint-disable react-hooks/exhaustive-deps */ 2908 2909 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () { 2919 const Dropdown = () => { 2920 const { 2921 t, 2922 onMenuToggle, 2923 ArrowRenderer, 2924 shouldToggleOnHover, 2925 isLoading, 2926 disabled, 2927 onChange, 2928 labelledBy, 2929 value, 2930 isOpen, 2931 defaultIsOpen, 2932 ClearSelectedIcon 2933 } = useMultiSelect(); 2934 const [isInternalExpand, setIsInternalExpand] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true); 2935 const [expanded, setExpanded] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen); 2936 const [hasFocus, setHasFocus] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false); 2937 const FinalArrow = ArrowRenderer || Arrow; 2938 const wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 2939 useDidUpdateEffect(() => { 2910 2940 onMenuToggle && onMenuToggle(expanded); 2911 2941 }, [expanded]); 2912 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])( function (){2942 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => { 2913 2943 if (defaultIsOpen === undefined && typeof isOpen === "boolean") { 2914 2944 setIsInternalExpand(false); … … 2917 2947 }, [isOpen]); 2918 2948 2919 var handleKeyDown = function handleKeyDown(e){2949 const handleKeyDown = e => { 2920 2950 var _wrapper$current; 2921 2951 … … 2947 2977 }; 2948 2978 2949 var handleHover = function handleHover(iexpanded){2979 const handleHover = iexpanded => { 2950 2980 isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded); 2951 2981 }; 2952 2982 2953 var handleFocus = function handleFocus() { 2954 return !hasFocus && setHasFocus(true); 2955 }; 2956 2957 var handleBlur = function handleBlur(e) { 2983 const handleFocus = () => !hasFocus && setHasFocus(true); 2984 2985 const handleBlur = e => { 2958 2986 if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) { 2959 2987 setHasFocus(false); … … 2962 2990 }; 2963 2991 2964 var handleMouseEnter = function handleMouseEnter() { 2965 return handleHover(true); 2966 }; 2967 2968 var handleMouseLeave = function handleMouseLeave() { 2969 return handleHover(false); 2970 }; 2971 2972 var toggleExpanded = function toggleExpanded() { 2992 const handleMouseEnter = () => handleHover(true); 2993 2994 const handleMouseLeave = () => handleHover(false); 2995 2996 const toggleExpanded = () => { 2973 2997 isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded); 2974 2998 }; 2975 2999 2976 var handleClearSelected = function handleClearSelected(e){3000 const handleClearSelected = e => { 2977 3001 e.stopPropagation(); 2978 contentProps["onChange"]([]);3002 onChange([]); 2979 3003 isInternalExpand && setExpanded(false); 2980 3004 }; … … 2982 3006 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2983 3007 tabIndex: 0, 2984 className: DropdownContainer + " dropdown-container",3008 className: cn(DropdownContainer, "dropdown-container"), 2985 3009 "aria-labelledby": labelledBy, 2986 3010 "aria-expanded": expanded, … … 2994 3018 onMouseLeave: handleMouseLeave 2995 3019 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2996 className: DropdownHeading + " dropdown-heading",3020 className: cn(DropdownHeading, "dropdown-heading"), 2997 3021 onClick: toggleExpanded 2998 3022 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2999 3023 className: "dropdown-heading-value" 3000 }, children), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), contentProps["value"].length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {3024 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, null)), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), value.length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 3001 3025 type: "button", 3002 className: ClearSelectedButton + " clear-selected-button",3026 className: cn(ClearSelectedButton, "clear-selected-button"), 3003 3027 onClick: handleClearSelected, 3004 "aria-label": getString("clearSelected", contentProps["overrideStrings"]) 3028 disabled: disabled, 3029 "aria-label": t("clearSelected") 3005 3030 }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, { 3006 3031 expanded: expanded 3007 3032 })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3008 className: PanelContainer + " dropdown-content"3033 className: cn(PanelContainer, "dropdown-content") 3009 3034 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3010 3035 className: "panel-content" 3011 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement( ContentComponent, Object.assign({}, contentProps)))));3036 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectPanel, null)))); 3012 3037 }; 3013 3038 3014 var DropdownHeader = function DropdownHeader(_ref) { 3015 var value = _ref.value, 3016 options = _ref.options, 3017 valueRenderer = _ref.valueRenderer, 3018 overrideStrings = _ref.overrideStrings; 3019 var noneSelected = value.length === 0; 3020 var allSelected = value.length === options.length; 3021 var customText = valueRenderer && valueRenderer(value, options); 3022 3023 var getSelectedText = function getSelectedText() { 3024 return value.map(function (s) { 3025 return s.label; 3026 }).join(", "); 3027 }; 3028 3029 return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { 3030 className: "gray" 3031 }, customText || getString("selectSomeItems", overrideStrings)) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? getString("allItemsAreSelected", overrideStrings) : getSelectedText())); 3032 }; 3033 3034 var MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 3039 const MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 3035 3040 "--rmscMain": "#4285f4", 3036 3041 "--rmscHover": "#f1f3f5", … … 3051 3056 }); 3052 3057 3053 var MultiSelect = function MultiSelect(_ref) { 3054 var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen, 3055 focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe, 3056 _ref$hasSelectAll = _ref.hasSelectAll, 3057 hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll, 3058 shouldToggleOnHover = _ref.shouldToggleOnHover, 3059 _ref$className = _ref.className, 3060 className = _ref$className === void 0 ? "multi-select" : _ref$className, 3061 options = _ref.options, 3062 value = _ref.value, 3063 valueRenderer = _ref.valueRenderer, 3064 overrideStrings = _ref.overrideStrings, 3065 onChange = _ref.onChange, 3066 disabled = _ref.disabled, 3067 ItemRenderer = _ref.ItemRenderer, 3068 ArrowRenderer = _ref.ArrowRenderer, 3069 selectAllLabel = _ref.selectAllLabel, 3070 isLoading = _ref.isLoading, 3071 disableSearch = _ref.disableSearch, 3072 filterOptions = _ref.filterOptions, 3073 labelledBy = _ref.labelledBy, 3074 onMenuToggle = _ref.onMenuToggle, 3075 ClearIcon = _ref.ClearIcon, 3076 _ref$debounceDuration = _ref.debounceDuration, 3077 debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration, 3078 ClearSelectedIcon = _ref.ClearSelectedIcon, 3079 defaultIsOpen = _ref.defaultIsOpen, 3080 isOpen = _ref.isOpen; 3081 var nvalue = value || []; 3082 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3083 className: MultiSelectBox + " " + className 3084 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, { 3085 isLoading: isLoading, 3086 contentComponent: SelectPanel, 3087 shouldToggleOnHover: shouldToggleOnHover, 3088 contentProps: { 3089 ItemRenderer: ItemRenderer, 3090 options: options, 3091 value: nvalue, 3092 hasSelectAll: hasSelectAll, 3093 selectAllLabel: selectAllLabel, 3094 onChange: onChange, 3095 disabled: disabled, 3096 disableSearch: disableSearch, 3097 focusSearchOnOpen: focusSearchOnOpen, 3098 filterOptions: filterOptions, 3099 overrideStrings: overrideStrings, 3100 ClearIcon: ClearIcon, 3101 debounceDuration: debounceDuration 3102 }, 3103 disabled: disabled, 3104 labelledBy: labelledBy, 3105 onMenuToggle: onMenuToggle, 3106 ArrowRenderer: ArrowRenderer, 3107 ClearSelectedIcon: ClearSelectedIcon, 3108 defaultIsOpen: defaultIsOpen, 3109 isOpen: isOpen 3110 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, { 3111 value: nvalue, 3112 options: options, 3113 valueRenderer: valueRenderer, 3114 overrideStrings: overrideStrings 3115 }))); 3116 }; 3058 const MultiSelect = props => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectProvider, { 3059 props: props 3060 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3061 className: cn(MultiSelectBox, props.className || "multi-select") 3062 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, null))); 3117 3063 3118 3064 /* harmony default export */ __webpack_exports__["default"] = (MultiSelect); … … 3237 3183 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) { 3238 3184 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props); 3239 } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. 3185 } 3186 3187 // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. 3240 3188 // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's 3241 3189 // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both 3242 3190 // get updated when a block is updated. 3243 3244 3245 3191 var showControls = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? 'show-controls' : 'hide-controls'; 3246 3192 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_blockEditor__WEBPACK_IMPORTED_MODULE_4__["InspectorControls"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 3265 3211 }, 'contentVisibilityControls'); 3266 3212 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls); 3213 3267 3214 /** 3268 3215 * Filters registered block settings, extending attributes with our custom data. … … 3272 3219 * @return {Object} Filtered block settings. 3273 3220 */ 3274 3275 3221 function addContentVisibilityRulesAttribute(settings) { 3276 3222 // If this is a valid block … … 3280 3226 contentVisibilityRulesEnabled: false, 3281 3227 userAuthenticated: '' 3282 }); // Use Lodash's assign to gracefully handle if attributes are undefined 3283 3228 }); 3229 3230 // Use Lodash's assign to gracefully handle if attributes are undefined 3284 3231 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, { 3285 3232 contentVisibilityRules: { … … 3289 3236 }); 3290 3237 } 3291 3292 3238 return settings; 3293 3239 } // end addContentVisibilityRulesAttribute() … … 3303 3249 * @return {Object} Filtered props applied to save element. 3304 3250 */ 3305 3306 3251 function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) { 3307 3252 // If the current block is valid, add our prop. … … 3309 3254 extraProps.contentVisibilityRules = attributes.contentVisibilityRules; 3310 3255 } 3311 3312 3256 return extraProps; 3313 3257 } // end addContentVisibilityRulesPropOnSave() … … 3315 3259 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute); 3316 3260 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave); 3261 3317 3262 /* -------------- 3318 3263 … … 3374 3319 })(function (_ref) { 3375 3320 var option = _ref.option, 3376 setState = _ref.setState,3377 props = _ref.props;3321 setState = _ref.setState, 3322 props = _ref.props; 3378 3323 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 3379 3380 3324 if (!rulesEnabled) { 3381 3325 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], { … … 3383 3327 })); 3384 3328 } 3385 3386 3329 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], { 3387 3330 props: props 3388 3331 }); 3389 3332 }); 3333 3390 3334 /** 3391 3335 * Filters registered block settings, extending attributes with our custom data. … … 3395 3339 * @return {Object} Filtered block settings. 3396 3340 */ 3397 3398 3341 function addContentVisibilityAttribute(settings) { 3399 3342 // If this is a valid block … … 3406 3349 }); 3407 3350 } 3408 3409 3351 return settings; 3410 3352 } // end addContentVisibilityAttribute() … … 3420 3362 * @return {Object} Filtered props applied to save element. 3421 3363 */ 3422 3423 3364 function addBlockVisibilityPropOnSave(extraProps, blockType, attributes) { 3424 3365 // If the current block is valid, add our prop. … … 3426 3367 extraProps.contentVisibility = attributes.contentVisibility; 3427 3368 } 3428 3429 3369 return extraProps; 3430 3370 } // end addBlockVisibilityPropOnSave() … … 3467 3407 3468 3408 3469 3470 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 3471 3472 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 3473 3409 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 3410 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 3474 3411 3475 3412 … … 3482 3419 })(function (_ref) { 3483 3420 var rulesEnabled = _ref.rulesEnabled, 3484 setState = _ref.setState,3485 props = _ref.props;3421 setState = _ref.setState, 3422 props = _ref.props; 3486 3423 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__["ToggleControl"], { 3487 3424 label: props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Enabled', 'content-visibility') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Disabled', 'content-visibility'), … … 3490 3427 return setState(function (state) { 3491 3428 var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules); 3492 3493 3429 newBVRules.contentVisibilityRulesEnabled = rulesEnabled; 3494 3430 props.setAttributes({ 3495 3431 contentVisibilityRules: newBVRules 3496 }); // Fire an action so we can see what's happened in other controls. This can be useful, 3432 }); 3433 3434 // Fire an action so we can see what's happened in other controls. This can be useful, 3497 3435 // for example when setting rules for roles - pointless if a user isn't signed in. 3498 3499 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); // Sets the state 3500 3436 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); 3437 3438 // Sets the state 3501 3439 return { 3502 3440 rulesEnabled: !state.rulesEnabled … … 3506 3444 }); 3507 3445 }); 3446 3508 3447 /** 3509 3448 * Filters registered block settings, extending attributes with our custom data. … … 3513 3452 * @return {Object} Filtered block settings. 3514 3453 */ 3515 3516 3454 function addContentVisibilityRulesEnabledAttribute(settings) { 3517 3455 // If this is a valid block … … 3524 3462 }); 3525 3463 } 3526 3527 3464 return settings; 3528 3465 } // end addContentVisibilityRulesEnabledAttribute() … … 3538 3475 * @return {Object} Filtered props applied to save element. 3539 3476 */ 3540 3541 3477 function addContentVisibilityRulesEnabledPropOnSave(extraProps, blockType, attributes) { 3542 3478 // If the current block is valid, add our prop. … … 3544 3480 extraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled; 3545 3481 } 3546 3547 3482 return extraProps; 3548 3483 } // end addContentVisibilityRulesEnabledPropOnSave() … … 3555 3490 * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise. 3556 3491 */ 3557 3558 3492 var withCustomClassName = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["createHigherOrderComponent"])(function (BlockListBlock) { 3559 3493 return function (props) { … … 3561 3495 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, props); 3562 3496 } 3563 3564 3497 var iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility; 3565 3498 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, props, { … … 3605 3538 })(function (_ref) { 3606 3539 var option = _ref.option, 3607 setState = _ref.setState,3608 props = _ref.props;3540 setState = _ref.setState, 3541 props = _ref.props; 3609 3542 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 3610 3543 var contentVisibility = props.attributes.hasOwnProperty('contentVisibility'); 3611 3612 3544 if (!rulesEnabled || !contentVisibility) { 3613 3545 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], { … … 3615 3547 })); 3616 3548 } 3617 3618 3549 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], { 3619 3550 props: props 3620 3551 }); 3621 3552 }); 3553 3622 3554 /** 3623 3555 * Render the <ContentVisibilityUserAuthenticationControl> component by adding … … 3626 3558 * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component. 3627 3559 */ 3628 3629 3560 function BlockVisibilityUserAuthenitcationFill() { 3630 3561 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], { … … 3635 3566 }); 3636 3567 }); 3637 } // Add our component to the Slot provided by BlockVisibilityControls3638 3639 3568 } 3569 3570 // Add our component to the Slot provided by BlockVisibilityControls 3640 3571 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', { 3641 3572 render: BlockVisibilityUserAuthenitcationFill … … 3663 3594 3664 3595 3665 3666 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 3667 3668 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 3596 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 3597 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 3669 3598 3670 3599 … … 3708 3637 })(function (_ref) { 3709 3638 var option = _ref.option, 3710 setState = _ref.setState, 3711 props = _ref.props, 3712 data = _ref.data, 3713 labelledBy = _ref.labelledBy, 3714 type = _ref.type; 3715 3639 setState = _ref.setState, 3640 props = _ref.props, 3641 data = _ref.data, 3642 labelledBy = _ref.labelledBy, 3643 type = _ref.type; 3716 3644 /** 3717 3645 * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for … … 3731 3659 }); 3732 3660 }; 3733 3734 3661 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3735 3662 className: "content-visibility-multi-select" … … 3741 3668 ItemRenderer: function ItemRenderer(_ref2) { 3742 3669 var checked = _ref2.checked, 3743 option = _ref2.option,3744 onClick = _ref2.onClick,3745 disabled = _ref2.disabled;3670 option = _ref2.option, 3671 onClick = _ref2.onClick, 3672 disabled = _ref2.disabled; 3746 3673 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3747 3674 className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled") … … 3753 3680 disabled: disabled 3754 3681 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label)); 3755 } // isOpen={ true }3756 3682 } 3683 // isOpen={ true } 3757 3684 })); 3758 3685 }); … … 3786 3713 })(function (_ref) { 3787 3714 var option = _ref.option, 3788 setState = _ref.setState,3789 props = _ref.props;3715 setState = _ref.setState, 3716 props = _ref.props; 3790 3717 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 3791 3718 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Shown or Hidden', 'content-visibility-user-role'), … … 3851 3778 })(function (_ref) { 3852 3779 var isVisible = _ref.isVisible, 3853 setState = _ref.setState, 3854 props = _ref.props; 3855 3780 setState = _ref.setState, 3781 props = _ref.props; 3856 3782 /** 3857 3783 * Our data, passed from PHP and manipulated to be useful here in JS. 3858 3784 */ 3859 3785 var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3786 3860 3787 /** 3861 3788 * This controls the key used where the data is stored. 3862 3789 */ 3863 3864 3790 var type = 'pages'; 3791 3865 3792 /** 3866 3793 * Helps with the content of the inserter button. 3867 3794 */ 3868 3869 3795 var niceName = { 3870 3796 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'), 3871 3797 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility') 3872 3798 }; 3799 3873 3800 /** 3874 3801 * Toggle the visible state. Detemines whether the popup is open or not. 3875 3802 */ 3876 3877 3803 var toggleVisible = function toggleVisible() { 3878 3804 setState(function (state) { … … 3882 3808 }); 3883 3809 }; 3884 3885 3810 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3886 3811 className: "content-visibility-special-page-inserter" … … 3960 3885 })(function (_ref) { 3961 3886 var isVisible = _ref.isVisible, 3962 setState = _ref.setState, 3963 props = _ref.props; 3964 3887 setState = _ref.setState, 3888 props = _ref.props; 3965 3889 /** 3966 3890 * Our data, passed from PHP and manipulated to be useful here in JS. 3967 3891 */ 3968 3892 var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3893 3969 3894 /** 3970 3895 * This controls the key used where the data is stored. 3971 3896 */ 3972 3973 3897 var type = 'posts'; 3898 3974 3899 /** 3975 3900 * Helps with the content of the inserter button. 3976 3901 */ 3977 3978 3902 var niceName = { 3979 3903 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'), 3980 3904 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility') 3981 3905 }; 3906 3982 3907 /** 3983 3908 * Toggle the visible state. Detemines whether the popup is open or not. 3984 3909 */ 3985 3986 3910 var toggleVisible = function toggleVisible() { 3987 3911 setState(function (state) { … … 3991 3915 }); 3992 3916 }; 3993 3994 3917 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3995 3918 className: "content-visibility-special-page-inserter" … … 4069 3992 })(function (_ref) { 4070 3993 var isVisible = _ref.isVisible, 4071 setState = _ref.setState, 4072 props = _ref.props; 4073 3994 setState = _ref.setState, 3995 props = _ref.props; 4074 3996 /** 4075 3997 * Our data, passed from PHP and manipulated to be useful here in JS. 4076 3998 */ 4077 3999 var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4000 4078 4001 /** 4079 4002 * This controls the key used where the data is stored. 4080 4003 */ 4081 4082 4004 var type = 'categories'; 4005 4083 4006 /** 4084 4007 * Helps with the content of the inserter button. 4085 4008 */ 4086 4087 4009 var niceName = { 4088 4010 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'), 4089 4011 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility') 4090 4012 }; 4013 4091 4014 /** 4092 4015 * Toggle the visible state. Detemines whether the popup is open or not. 4093 4016 */ 4094 4095 4017 var toggleVisible = function toggleVisible() { 4096 4018 setState(function (state) { … … 4100 4022 }); 4101 4023 }; 4102 4103 4024 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4104 4025 className: "content-visibility-special-page-inserter" … … 4174 4095 })(function (_ref) { 4175 4096 var option = _ref.option, 4176 setState = _ref.setState,4177 props = _ref.props;4097 setState = _ref.setState, 4098 props = _ref.props; 4178 4099 var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled; 4179 4100 var contentVisibility = props.attributes.hasOwnProperty('contentVisibility'); 4180 4181 4101 if (!rulesEnabled || !contentVisibility) { 4182 4102 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], { … … 4184 4104 })); 4185 4105 } 4186 4187 4106 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], { 4188 4107 props: props 4189 4108 }); 4190 4109 }); 4110 4191 4111 /** 4192 4112 * Render the <ContentVisibilitySpecialPageControls> component by adding … … 4195 4115 * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component. 4196 4116 */ 4197 4198 4117 function ContentVisibilitySpecialPageFill() { 4199 4118 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], { … … 4204 4123 }); 4205 4124 }); 4206 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.4207 4208 4125 } 4126 4127 // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug. 4209 4128 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) { 4210 4129 // Add our component to the Slot provided by BlockVisibilityControls … … 4251 4170 })(function (_ref) { 4252 4171 var isVisible = _ref.isVisible, 4253 setState = _ref.setState, 4254 props = _ref.props; 4255 4172 setState = _ref.setState, 4173 props = _ref.props; 4256 4174 /** 4257 4175 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages … … 4259 4177 */ 4260 4178 var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4179 4261 4180 /** 4262 4181 * This controls the key used where the data is stored. 4263 4182 */ 4264 4265 4183 var type = 'specialPages'; 4184 4266 4185 /** 4267 4186 * Helps with the content of the inserter button. 4268 4187 */ 4269 4270 4188 var niceName = { 4271 4189 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'), 4272 4190 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility') 4273 4191 }; 4192 4274 4193 /** 4275 4194 * Toggle the visible state. Detemines whether the popup is open or not. 4276 4195 */ 4277 4278 4196 var toggleVisible = function toggleVisible() { 4279 4197 setState(function (state) { … … 4283 4201 }); 4284 4202 }; 4285 4286 4203 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4287 4204 className: "content-visibility-special-page-inserter" … … 4369 4286 })(function (_ref) { 4370 4287 var option = _ref.option, 4371 setState = _ref.setState,4372 props = _ref.props;4288 setState = _ref.setState, 4289 props = _ref.props; 4373 4290 var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : ''; 4374 4291 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 4391 4308 className: "special-page-help-intro content-visibility-help-text" 4392 4309 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility'))); 4393 }); // Register our visibility rule in the main rules object. 4394 4310 }); 4311 4312 // Register our visibility rule in the main rules object. 4395 4313 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule); 4396 4397 4314 function registerSpecialPageVisibilityRule(defaultRules) { 4398 4315 defaultRules.specialPage = { … … 4443 4360 })(function (_ref) { 4444 4361 var isVisible = _ref.isVisible, 4445 setState = _ref.setState, 4446 props = _ref.props; 4447 4362 setState = _ref.setState, 4363 props = _ref.props; 4448 4364 /** 4449 4365 * Our data, passed from PHP and manipulated to be useful here in JS. 4450 4366 */ 4451 4367 var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4368 4452 4369 /** 4453 4370 * This controls the key used where the data is stored. 4454 4371 */ 4455 4456 4372 var type = 'tags'; 4373 4457 4374 /** 4458 4375 * Helps with the content of the inserter button. 4459 4376 */ 4460 4461 4377 var niceName = { 4462 4378 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'), 4463 4379 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility') 4464 4380 }; 4381 4465 4382 /** 4466 4383 * Toggle the visible state. Detemines whether the popup is open or not. 4467 4384 */ 4468 4469 4385 var toggleVisible = function toggleVisible() { 4470 4386 setState(function (state) { … … 4474 4390 }); 4475 4391 }; 4476 4477 4392 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4478 4393 className: "content-visibility-special-page-inserter" … … 4541 4456 4542 4457 4543 4544 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 4545 4546 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 4547 4458 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } 4459 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 4548 4460 4549 4461 … … 4554 4466 })(function (_ref) { 4555 4467 var option = _ref.option, 4556 setState = _ref.setState,4557 props = _ref.props;4468 setState = _ref.setState, 4469 props = _ref.props; 4558 4470 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["RadioControl"], { 4559 4471 label: "", … … 4573 4485 option: option 4574 4486 }); 4575 4576 4487 var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules); 4577 4578 4488 newBVRules.userAuthenticated = option; 4579 4489 props.setAttributes({ 4580 4490 contentVisibilityRules: newBVRules 4581 }); // Fire an action so we can see what's happened in other controls. This can be useful, 4491 }); 4492 4493 // Fire an action so we can see what's happened in other controls. This can be useful, 4582 4494 // for example when setting rules for roles - pointless if a user isn't signed in. 4583 4584 4495 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props); 4585 4496 } … … 4617 4528 })(function (_ref) { 4618 4529 var option = _ref.option, 4619 setState = _ref.setState,4620 props = _ref.props;4530 setState = _ref.setState, 4531 props = _ref.props; 4621 4532 var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : ''; 4622 4533 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { … … 4656 4567 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4657 4568 4569 4658 4570 /** 4659 4571 * PHP sends through a list of all the categories on the site. We massage that data to be … … 4661 4573 * 4662 4574 */ 4663 4664 4575 function getCategories() { 4665 4576 var categories = []; 4666 4667 4577 if (ContentVisibility.categories.length === 0) { 4668 4578 return [{ … … 4672 4582 }]; 4673 4583 } 4674 4675 4584 for (var category in ContentVisibility.categories) { 4676 4585 categories.push({ … … 4680 4589 }); 4681 4590 } 4682 4683 4591 return categories; 4684 4592 } // end getCategories() 4685 4686 4593 4687 4594 /* harmony default export */ __webpack_exports__["default"] = (getCategories); … … 4701 4608 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4702 4609 4610 4703 4611 /** 4704 4612 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be … … 4706 4614 * 4707 4615 */ 4708 4709 4616 function getPages() { 4710 4617 var pages = []; 4711 4712 4618 if (ContentVisibility.pages.length === 0) { 4713 4619 return [{ … … 4717 4623 }]; 4718 4624 } 4719 4720 4625 for (var page in ContentVisibility.pages) { 4721 4626 pages.push({ … … 4725 4630 }); 4726 4631 } 4727 4728 4632 return pages; 4729 4633 } // end getPages() 4730 4731 4634 4732 4635 /* harmony default export */ __webpack_exports__["default"] = (getPages); … … 4746 4649 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4747 4650 4651 4748 4652 /** 4749 4653 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be … … 4751 4655 * 4752 4656 */ 4753 4754 4657 function getPosts() { 4755 4658 var posts = []; 4756 4757 4659 if (ContentVisibility.posts.length === 0) { 4758 4660 return [{ … … 4762 4664 }]; 4763 4665 } 4764 4765 4666 for (var post in ContentVisibility.posts) { 4766 4667 posts.push({ … … 4770 4671 }); 4771 4672 } 4772 4773 4673 return posts; 4774 4674 } // end getPosts() 4775 4776 4675 4777 4676 /* harmony default export */ __webpack_exports__["default"] = (getPosts); … … 4794 4693 4795 4694 4695 4796 4696 /** 4797 4697 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages … … 4799 4699 * 4800 4700 */ 4801 4802 4701 function getSpecialPages() { 4803 4702 var specialPages = []; 4804 4805 4703 for (var specialPage in ContentVisibility.specialPages) { 4806 4704 specialPages.push({ … … 4814 4712 }); 4815 4713 } 4816 4817 4714 return specialPages; 4818 4715 } // end getSpecialPages() 4819 4820 4716 4821 4717 /* harmony default export */ __webpack_exports__["default"] = (getSpecialPages); … … 4835 4731 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4836 4732 4733 4837 4734 /** 4838 4735 * PHP sends through a list of all the tags on the site. We massage that data to be … … 4840 4737 * 4841 4738 */ 4842 4843 4739 function getTags() { 4844 4740 var tags = []; 4845 4846 4741 if (ContentVisibility.tags.length === 0) { 4847 4742 return [{ … … 4851 4746 }]; 4852 4747 } 4853 4854 4748 for (var tag in ContentVisibility.tags) { 4855 4749 tags.push({ … … 4859 4753 }); 4860 4754 } 4861 4862 4755 return tags; 4863 4756 } // end getTags() 4864 4865 4757 4866 4758 /* harmony default export */ __webpack_exports__["default"] = (getTags); … … 4879 4771 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js"); 4880 4772 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__); 4881 4882 4773 4883 4774 /** … … 4900 4791 } //end hasParentWithClass() 4901 4792 4902 4903 4793 /* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass); 4904 4794 … … 4917 4807 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__); 4918 4808 4809 4919 4810 /** 4920 4811 * Determine if the passed block props contain rules of the passed type. … … 4925 4816 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise. 4926 4817 */ 4927 4928 4818 function hasRules(props, type) { 4929 4819 if (!props.attributes.contentVisibilityRules) { 4930 4820 return false; 4931 4821 } 4932 4933 4822 if (!props.attributes.contentVisibilityRules[type]) { 4934 4823 return false; 4935 } // Default to false. Passed through a filter later.4936 4937 4824 } 4825 4826 // Default to false. Passed through a filter later. 4938 4827 var hasRules = false; 4939 4940 4828 switch (type) { 4941 4829 case 'userAuthenticated': … … 4943 4831 hasRules = true; 4944 4832 } 4945 4946 4833 break; 4947 4948 4834 case 'specialPage': 4949 var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; // If *any* of the special pages contains rules, then this is true. Is an array of arrays. 4950 4951 var specialPageRulesValues = Object.values(allSpecialPageRules); // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules. 4952 4835 var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; 4836 4837 // If *any* of the special pages contains rules, then this is true. Is an array of arrays. 4838 var specialPageRulesValues = Object.values(allSpecialPageRules); 4839 4840 // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules. 4953 4841 hasRules = specialPageRulesValues.some(function (el) { 4954 4842 return el.length > 0; 4955 4843 }); 4956 4844 break; 4957 4958 4845 default: 4959 4846 break; 4960 4847 } 4961 4962 4848 return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type); 4963 4849 } // end hasRules() 4964 4965 4850 4966 4851 /* harmony default export */ __webpack_exports__["default"] = (hasRules); … … 4987 4872 } // end isValidBlockType() 4988 4873 4989 4990 4874 /* harmony default export */ __webpack_exports__["default"] = (isValidBlockType); 4991 4875 … … 5003 4887 /* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js"); 5004 4888 4889 5005 4890 /** 5006 4891 * The Popup component closes if it loses focus by default. For us, we want to ensure it … … 5011 4896 * @return null 5012 4897 */ 5013 5014 4898 var keepPopupOpen = function keepPopupOpen(event) { 5015 4899 if (false === event) { 5016 4900 return; 5017 } // Determine if what has been clicked on is in the popover or not.5018 5019 4901 } 4902 4903 // Determine if what has been clicked on is in the popover or not. 5020 4904 var eTarget = event.target; 5021 5022 4905 if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) { 5023 4906 event.stopPropagation(); 5024 4907 } 5025 5026 4908 return; 5027 4909 }; 5028 5029 4910 /* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen); 5030 4911 … … 5043 4924 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 5044 4925 4926 5045 4927 /** 5046 4928 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are … … 5055 4937 * @return string the text to be used for the button. 5056 4938 */ 5057 5058 4939 var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) { 5059 4940 // if nothing is set, return a prompt to select special pages. … … 5061 4942 return defaultVal; 5062 4943 } 5063 5064 4944 var shownOrHidden = props.attributes.contentVisibility; 5065 4945 var specialPages = props.attributes.contentVisibilityRules.specialPage[type]; … … 5069 4949 return insertText; 5070 4950 }; 5071 5072 4951 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText); 5073 4952 … … 5093 4972 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 5094 4973 return 'content-visibility-special-page-inserter-toggle'; 5095 } // We have some items selected, so we have a couple classes.5096 5097 4974 } 4975 4976 // We have some items selected, so we have a couple classes. 5098 4977 return 'content-visibility-special-page-inserter-toggle has-items'; 5099 4978 }; 5100 5101 4979 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass); 5102 4980 -
content-visibility/trunk/build/index.js.map
r2589501 r2833193 1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/t ypeof.js","webpack:///./node_modules/goober/dist/goober.module.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,a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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;;AAEA;AACA;AACA;AACA,iCAAiC,kDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAM;AACtB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,gCAAgC,kDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,wBAAwB,yDAAW;AACnC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,qDAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK,qCAAqC;AAC1C,GAAG;AACH;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,GAAG,4CAAK,2CAA2C;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG;AACH;;AAEA,2BAA2B,kDAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA;AACA,gBAAgB,oDAAM;AACtB;;AAEA,EAAE,uDAAS;AACX;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,0BAA0B,4CAAK,mEAAmE,4CAAK;AAC1G;AACA;AACA;AACA;AACA,GAAG,uBAAuB,4CAAK,8BAA8B,4CAAK;AAClE;AACA,GAAG,gBAAgB,4CAAK;AACxB;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,iDAAiD;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,iEAAiE,4CAAK;AACzE;;AAEA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEe,0EAAW,EAAC;AACkB;AAC7C;;;;;;;;;;;;AC76BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAK,CAAEC,4EAAgB,CAAED,KAAK,CAACE,IAAR,CAAvB,EAAwC;AACpC,aAAO,yEAAC,SAAD,EAAeF,KAAf,CAAP;AACH,KAJa,CAMd;AACA;AACA;AACA;;;AACA,QAAIG,YAAY,GAAIH,KAAK,CAACI,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAzC,GAA0E,eAA1E,GAA4F,eAA/G;AAEA,WACI,yEAAC,2DAAD,QACI,yEAAC,SAAD,EAAeN,KAAf,CADJ,EAEI,yEAAC,wEAAD,QACI,yEAAC,+DAAD;AAAW,WAAK,EAAEO,0DAAE,CAAC,YAAD,EAAe,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","let e={data:\"\"},t=t=>{try{let e=t?t.querySelector(\"#_goober\"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement(\"style\")),e.innerHTML=\" \",e.id=\"_goober\"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data=\"\",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\\/\\*[\\s\\S]*?\\*\\/|\\s{2,}|\\n/gm,o=(e,t)=>{let r,a=\"\",l=\"\",n=\"\";for(let c in e){let s=e[c];\"object\"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):c,l+=\"@\"==c[0]?\"f\"==c[1]?o(s,c):c+\"{\"+o(s,\"k\"==c[1]?\"\":t)+\"}\":o(s,r)):\"@\"==c[0]&&\"i\"==c[1]?a=c+\" \"+s+\";\":n+=o.p?o.p(c.replace(/[A-Z]/g,\"-$&\").toLowerCase(),s):c.replace(/[A-Z]/g,\"-$&\").toLowerCase()+\":\"+s+\";\"}return n[0]?(r=t?t+\"{\"+n+\"}\":n,a+r+l):a+l},n={},c=e=>{let t=\"\";for(let r in e)t+=r+(\"object\"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i=\"object\"==typeof e?c(e):e,u=n[i]||(n[i]=\"go\"+i.split(\"\").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t=\"object\"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,\"\"));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{[\"@keyframes \"+u]:t}:t,r?\"\":\".\"+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):e}return e+a+(null==n?\"\":n)},\"\");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/g.test(s),c.className=i.apply(r,a)+(s?\" \"+s:\"\"),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}export{i as css,r as extractCss,d as glob,g as keyframes,b as setup,h as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nvar debounce = function debounce(func, wait) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n var cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return label != null && value != null;\n }) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(function (option) {\n return {\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n };\n }) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(function (pair) {\n return pair.score >= cleanFilter.length - 2;\n }) // Sort 'em by order of their score.\n .sort(function (a, b) {\n return b.score - a.score;\n }) // …and grab the original Options back from their pairs.\n .map(function (pair) {\n return pair.option;\n });\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n var aLength = a.length;\n var bLength = b.length;\n var table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n var _ref2 = [b, a];\n a = _ref2[0];\n b = _ref2[1];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (var x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (var y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (var _x = 1; _x <= aLength; ++_x) {\n for (var _y = 1; _y <= bLength; ++_y) {\n table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n var safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce(function (output, substitution) {\n var unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nvar strings = {\n selectSomeItems: \"Select...\",\n allItemsAreSelected: \"All items are selected.\",\n selectAll: \"Select All\",\n search: \"Search\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\"\n};\nfunction getString(key, overrideStrings) {\n return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];\n}\n\nvar Cross = function Cross() {\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n }, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n};\n\nvar DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nvar DefaultItemRenderer = function DefaultItemRenderer(_ref) {\n var checked = _ref.checked,\n option = _ref.option,\n onClick = _ref.onClick,\n disabled = _ref.disabled;\n return React.createElement(\"div\", {\n className: DefaultRenderer + \" item-renderer \" + (disabled && \"disabled\")\n }, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n }), React.createElement(\"span\", null, option.label));\n};\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nvar ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nvar SelectItem = function SelectItem(_ref) {\n var _ref$itemRenderer = _ref.itemRenderer,\n ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,\n option = _ref.option,\n checked = _ref.checked,\n focused = _ref.focused,\n tabIndex = _ref.tabIndex,\n disabled = _ref.disabled,\n onSelectionChanged = _ref.onSelectionChanged,\n onClick = _ref.onClick;\n var itemRef = useRef();\n useEffect(function () {\n updateFocus(); // eslint-disable-next-line\n }, [focused]);\n\n var toggleChecked = function toggleChecked() {\n onSelectionChanged(!checked);\n };\n\n var handleClick = function handleClick(e) {\n toggleChecked();\n onClick(e);\n };\n\n var updateFocus = function updateFocus() {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: ItemContainer + \" select-item \" + (checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nvar SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nvar skipIndex = 2;\n\nvar SelectList = function SelectList(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n options = _ref.options,\n focusIndex = _ref.focusIndex,\n _onClick = _ref.onClick;\n\n var handleSelectionChanged = function handleSelectionChanged(option, checked) {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {\n return o.value !== option.value;\n }));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map(function (o, i) {\n var tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: o.hasOwnProperty(\"key\") ? o.key : i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: function onSelectionChanged(c) {\n return handleSelectionChanged(o, c);\n },\n checked: value.find(function (s) {\n return s.value === o.value;\n }) ? true : false,\n onClick: function onClick(e) {\n return _onClick(e, tabIndex);\n },\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nvar SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nvar SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nvar SelectPanel = function SelectPanel(props) {\n var onChange = props.onChange,\n options = props.options,\n value = props.value,\n customFilterOptions = props.filterOptions,\n selectAllLabel = props.selectAllLabel,\n ItemRenderer = props.ItemRenderer,\n disabled = props.disabled,\n disableSearch = props.disableSearch,\n focusSearchOnOpen = props.focusSearchOnOpen,\n hasSelectAll = props.hasSelectAll,\n overrideStrings = props.overrideStrings,\n ClearIcon = props.ClearIcon,\n debounceDuration = props.debounceDuration;\n\n var _useState = useState(\"\"),\n searchText = _useState[0],\n setSearchText = _useState[1];\n\n var _useState2 = useState(\"\"),\n searchTextForFilter = _useState2[0],\n setSearchTextForFilter = _useState2[1];\n\n var _useState3 = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),\n focusIndex = _useState3[0],\n setFocusIndex = _useState3[1];\n\n var debouncedSearch = useCallback(debounce(function (query) {\n return setSearchTextForFilter(query);\n }, debounceDuration), []);\n var selectAllOption = {\n label: selectAllLabel || getString(\"selectAll\", overrideStrings),\n value: \"\"\n };\n\n var selectAllValues = function selectAllValues(checked) {\n var filteredValues = filteredOptions().filter(function (o) {\n return !o.disabled;\n }).map(function (o) {\n return o.value;\n });\n\n if (checked) {\n var selectedValues = value.map(function (o) {\n return o.value;\n });\n var finalSelectedValues = [].concat(selectedValues, filteredValues);\n return options.filter(function (_ref) {\n var value = _ref.value;\n return finalSelectedValues.includes(value);\n });\n }\n\n return value.filter(function (o) {\n return !filteredValues.includes(o.value);\n });\n };\n\n var selectAllChanged = function selectAllChanged(checked) {\n var newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n var handleSearchChange = function handleSearchChange(e) {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n var handleClear = function handleClear() {\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n };\n\n var handleItemClicked = function handleItemClicked(index) {\n return setFocusIndex(index);\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n var handleSearchFocus = function handleSearchFocus() {\n setFocusIndex(FocusType.SEARCH);\n };\n\n var filteredOptions = function filteredOptions() {\n return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n };\n\n var updateFocus = function updateFocus(offset) {\n var newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n var _useMemo = useMemo(function () {\n var filteredOptionsList = filteredOptions().filter(function (o) {\n return !o.disabled;\n });\n return [filteredOptionsList.every(function (o) {\n return value.findIndex(function (v) {\n return v.value === o.value;\n }) !== -1;\n }), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [searchText, value]),\n isAllOptionSelected = _useMemo[0],\n hasSelectableOptions = _useMemo[1];\n\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: getString(\"search\", overrideStrings),\n type: \"text\",\n \"aria-describedby\": getString(\"search\", overrideStrings),\n onKeyDown: function onKeyDown(e) {\n return e.stopPropagation();\n },\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText\n }), React.createElement(\"button\", {\n type: \"button\",\n className: SearchClearButton + \" search-clear-button\",\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": getString(\"clearSearch\", overrideStrings)\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: function onClick() {\n return handleItemClicked(0);\n },\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), React.createElement(SelectList, Object.assign({}, props, {\n options: filteredOptions(),\n focusIndex: focusIndex,\n onClick: function onClick(_e, index) {\n return handleItemClicked(index);\n },\n ItemRenderer: ItemRenderer,\n disabled: disabled\n })));\n};\n\nfunction Arrow(_ref) {\n var expanded = _ref.expanded;\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n }, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n }));\n}\n\nvar Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\n\nfunction Loading(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size;\n return React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n }, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n })));\n}\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nvar PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nvar DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nvar DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nvar ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nvar Dropdown = function Dropdown(_ref) {\n var children = _ref.children,\n ContentComponent = _ref.contentComponent,\n contentProps = _ref.contentProps,\n isLoading = _ref.isLoading,\n disabled = _ref.disabled,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ArrowRenderer = _ref.ArrowRenderer,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n\n var _useState = useState(true),\n isInternalExpand = _useState[0],\n setIsInternalExpand = _useState[1];\n\n var _useState2 = useState(defaultIsOpen),\n expanded = _useState2[0],\n setExpanded = _useState2[1];\n\n var _useState3 = useState(false),\n hasFocus = _useState3[0],\n setHasFocus = _useState3[1];\n\n var FinalArrow = ArrowRenderer || Arrow;\n var wrapper = useRef();\n /* eslint-disable react-hooks/exhaustive-deps */\n\n useEffect(function () {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(function () {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n var handleKeyDown = function handleKeyDown(e) {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n var handleHover = function handleHover(iexpanded) {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n var handleFocus = function handleFocus() {\n return !hasFocus && setHasFocus(true);\n };\n\n var handleBlur = function handleBlur(e) {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n var handleMouseEnter = function handleMouseEnter() {\n return handleHover(true);\n };\n\n var handleMouseLeave = function handleMouseLeave() {\n return handleHover(false);\n };\n\n var toggleExpanded = function toggleExpanded() {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n var handleClearSelected = function handleClearSelected(e) {\n e.stopPropagation();\n contentProps[\"onChange\"]([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: DropdownContainer + \" dropdown-container\",\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: DropdownHeading + \" dropdown-heading\",\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, children), isLoading && React.createElement(Loading, null), contentProps[\"value\"].length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: ClearSelectedButton + \" clear-selected-button\",\n onClick: handleClearSelected,\n \"aria-label\": getString(\"clearSelected\", contentProps[\"overrideStrings\"])\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: PanelContainer + \" dropdown-content\"\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(ContentComponent, Object.assign({}, contentProps)))));\n};\n\nvar DropdownHeader = function DropdownHeader(_ref) {\n var value = _ref.value,\n options = _ref.options,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings;\n var noneSelected = value.length === 0;\n var allSelected = value.length === options.length;\n var customText = valueRenderer && valueRenderer(value, options);\n\n var getSelectedText = function getSelectedText() {\n return value.map(function (s) {\n return s.label;\n }).join(\", \");\n };\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || getString(\"selectSomeItems\", overrideStrings)) : React.createElement(\"span\", null, customText || (allSelected ? getString(\"allItemsAreSelected\", overrideStrings) : getSelectedText()));\n};\n\nvar MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nvar MultiSelect = function MultiSelect(_ref) {\n var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,\n focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,\n _ref$hasSelectAll = _ref.hasSelectAll,\n hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \"multi-select\" : _ref$className,\n options = _ref.options,\n value = _ref.value,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n ArrowRenderer = _ref.ArrowRenderer,\n selectAllLabel = _ref.selectAllLabel,\n isLoading = _ref.isLoading,\n disableSearch = _ref.disableSearch,\n filterOptions = _ref.filterOptions,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ClearIcon = _ref.ClearIcon,\n _ref$debounceDuration = _ref.debounceDuration,\n debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n var nvalue = value || [];\n return React.createElement(\"div\", {\n className: MultiSelectBox + \" \" + className\n }, React.createElement(Dropdown, {\n isLoading: isLoading,\n contentComponent: SelectPanel,\n shouldToggleOnHover: shouldToggleOnHover,\n contentProps: {\n ItemRenderer: ItemRenderer,\n options: options,\n value: nvalue,\n hasSelectAll: hasSelectAll,\n selectAllLabel: selectAllLabel,\n onChange: onChange,\n disabled: disabled,\n disableSearch: disableSearch,\n focusSearchOnOpen: focusSearchOnOpen,\n filterOptions: filterOptions,\n overrideStrings: overrideStrings,\n ClearIcon: ClearIcon,\n debounceDuration: debounceDuration\n },\n disabled: disabled,\n labelledBy: labelledBy,\n onMenuToggle: onMenuToggle,\n ArrowRenderer: ArrowRenderer,\n ClearSelectedIcon: ClearSelectedIcon,\n defaultIsOpen: defaultIsOpen,\n isOpen: isOpen\n }, React.createElement(DropdownHeader, {\n value: nvalue,\n options: options,\n valueRenderer: valueRenderer,\n overrideStrings: overrideStrings\n })));\n};\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if ( ! isValidBlockType( props.name ) ) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n <PluginBlockSettingsMenuItem\n allowedBlocks={ [ 'core/paragraph' ] }\n icon=\"smiley\"\n label=\"Menu item text\"\n onClick={ () => {\n console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n } }\n />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getCategories();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'categories';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Category', 'content-visibility' ),\n plural: __( 'Categories', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"category\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-categories-button-container\">\n <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n <CategoryPageInserter props={ props } />\n <TagPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: [],\n categories: [],\n tags: []\n };\n\n return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getTags();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'tags';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Tag', 'content-visibility' ),\n plural: __( 'Tags', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"tag\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-tags-button-container\">\n <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n const categories = [];\n\n if ( ContentVisibility.categories.length === 0 ) {\n return [ {\n label: __( 'No categories found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const category in ContentVisibility.categories ) {\n \n categories.push( { \n label: ContentVisibility.categories[category].label,\n value: ContentVisibility.categories[category].id,\n notes: ContentVisibility.categories[category].notes\n } );\n \n }\n\n return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n const tags = [];\n\n if ( ContentVisibility.tags.length === 0 ) {\n return [ {\n label: __( 'No tags found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const tag in ContentVisibility.tags ) {\n \n tags.push( { \n label: ContentVisibility.tags[tag].label,\n value: ContentVisibility.tags[tag].id,\n notes: ContentVisibility.tags[tag].notes\n } );\n \n }\n\n return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n if ( ! props.attributes.contentVisibilityRules ) {\n return false;\n }\n\n if ( ! props.attributes.contentVisibilityRules[type] ) {\n return false;\n }\n\n // Default to false. Passed through a filter later.\n let hasRules = false;\n\n switch ( type ) {\n \n case 'userAuthenticated':\n\n if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n hasRules = true;\n }\n\n break;\n \n case 'specialPage':\n\n let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n hasRules = specialPageRulesValues.some( function( el ) {\n return el.length > 0;\n });\n\n break;\n\n default:\n break;\n }\n\n return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.esm.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,+G;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wG;;;;;;;;;;;ACdA,cAAc,mBAAO,CAAC,oEAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4G;;;;;;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAK,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B,4CAAK;;AAElC;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAM;AAC5B,EAAE,uDAAS;AACX,kCAAkC;AAClC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,kDAAkD,cAAc;AACnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,iBAAiB,cAAc;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,4CAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;;AAET;AACA;AACA;AACA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,oDAAM;AACxB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,2CAA2C,kDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B,kDAAG;AAClC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,oDAAM;AAC/B,sCAAsC,sDAAQ;AAC9C,gDAAgD,sDAAQ;AACxD,wDAAwD,sDAAQ;AAChE,sCAAsC,sDAAQ;AAC9C,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,qDAAO;AAC7D;AACA,gIAAgI;AAChI,GAAG;AACH,EAAE,uDAAS;AACX;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,4BAA4B,4CAAK;AACpC;AACA;AACA;AACA,GAAG,IAAI,4CAAK;AACZ;AACA,GAAG;AACH;;AAEA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,wCAAwC,4CAAK;AAChD;;AAEA,6BAA6B,kDAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD,sDAAQ;AAC1D,kCAAkC,sDAAQ;AAC1C,kCAAkC,sDAAQ;AAC1C;AACA,kBAAkB,oDAAM;AACxB;AACA;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,oDAAoD,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nconst defaultStrings = {\n allItemsAreSelected: \"All items are selected.\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\",\n noOptions: \"No options\",\n search: \"Search\",\n selectAll: \"Select All\",\n selectSomeItems: \"Select...\"\n};\nconst defaultProps = {\n value: [],\n focusSearchOnOpen: true,\n hasSelectAll: true,\n className: \"multi-select\",\n debounceDuration: 200,\n options: []\n};\nconst MultiSelectContext = /*#__PURE__*/React.createContext({});\nconst MultiSelectProvider = ({\n props,\n children\n}) => {\n const t = key => {\n var _props$overrideString;\n\n return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];\n };\n\n return React.createElement(MultiSelectContext.Provider, {\n value: {\n t,\n ...defaultProps,\n ...props\n }\n }, children);\n};\nconst useMultiSelect = () => React.useContext(MultiSelectContext);\n\n/**\r\n * combines classNames in a friendly way\r\n *\r\n * @param {*} classes\r\n */\nconst cn = (...classes) => classes.join(\" \");\n\n/**\r\n * similar to `useEffect` but gets triggered only when value changes\r\n * @param fn executable function on dependency updates\r\n * @param inputs dependency array\r\n */\n\nfunction useDidUpdateEffect(fn, inputs) {\n const didMountRef = useRef(false);\n useEffect(() => {\n if (didMountRef.current) fn();else didMountRef.current = true;\n }, inputs);\n}\n\nconst debounce = (func, wait) => {\n let timeout;\n return function (...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n const cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(({\n label,\n value\n }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(option => ({\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n })) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.\n .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.\n .map(pair => pair.option);\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n const aLength = a.length;\n const bLength = b.length;\n const table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n [a, b] = [b, a];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (let x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (let y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (let x = 1; x <= aLength; ++x) {\n for (let y = 1; y <= bLength; ++y) {\n table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n const safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce((output, substitution) => {\n const unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nconst Cross = () => React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n}, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nconst DefaultItemRenderer = ({\n checked,\n option,\n onClick,\n disabled\n}) => React.createElement(\"div\", {\n className: cn(DefaultRenderer, \"item-renderer\", disabled && \"disabled\")\n}, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n}), React.createElement(\"span\", null, option.label));\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nconst ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nconst SelectItem = ({\n itemRenderer: ItemRenderer = DefaultItemRenderer,\n option,\n checked,\n focused,\n tabIndex,\n disabled,\n onSelectionChanged,\n onClick\n}) => {\n const itemRef = useRef();\n useEffect(() => {\n updateFocus(); // eslint-disable-next-line\n }, [checked, focused]);\n\n const toggleChecked = () => {\n onSelectionChanged(!checked);\n };\n\n const handleClick = e => {\n toggleChecked();\n onClick(e);\n };\n\n const updateFocus = () => {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n const handleKeyDown = e => {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: cn(ItemContainer, \"select-item\", checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nconst SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nconst skipIndex = 2;\n\nconst SelectList = ({\n options,\n focusIndex,\n onClick\n}) => {\n const {\n disabled,\n value,\n onChange,\n ItemRenderer\n } = useMultiSelect();\n\n const handleSelectionChanged = (option, checked) => {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map((o, i) => {\n const tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: (o == null ? void 0 : o.key) || i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: c => handleSelectionChanged(o, c),\n checked: value.find(s => s.value === o.value) ? true : false,\n onClick: e => onClick(e, tabIndex),\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nconst SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nconst SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nconst NoOptions = /*#__PURE__*/css({\n padding: \"var(--rmsc-p)\",\n textAlign: \"center\",\n color: \"var(--rmsc-gray)\"\n});\n\nconst SelectPanel = () => {\n const {\n t,\n onChange,\n options,\n value,\n filterOptions: customFilterOptions,\n selectAllLabel,\n ItemRenderer,\n disabled,\n disableSearch,\n focusSearchOnOpen,\n hasSelectAll,\n ClearIcon,\n debounceDuration\n } = useMultiSelect();\n const searchInputRef = useRef();\n const [searchText, setSearchText] = useState(\"\");\n const [filteredOptions, setFilteredOptions] = useState(options);\n const [searchTextForFilter, setSearchTextForFilter] = useState(\"\");\n const [focusIndex, setFocusIndex] = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);\n const debouncedSearch = useCallback(debounce(query => setSearchTextForFilter(query), debounceDuration), []);\n const selectAllOption = {\n label: selectAllLabel || t(\"selectAll\"),\n value: \"\"\n };\n\n const selectAllValues = checked => {\n const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);\n\n if (checked) {\n const selectedValues = value.map(o => o.value);\n const finalSelectedValues = [...selectedValues, ...filteredValues];\n return filteredOptions.filter(o => finalSelectedValues.includes(o.value));\n }\n\n return value.filter(o => !filteredValues.includes(o.value));\n };\n\n const selectAllChanged = checked => {\n const newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n const handleSearchChange = e => {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n const handleClear = () => {\n var _searchInputRef$curre;\n\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();\n };\n\n const handleItemClicked = index => setFocusIndex(index);\n\n const handleKeyDown = e => {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleSearchFocus = () => {\n setFocusIndex(FocusType.SEARCH);\n };\n\n const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n\n const updateFocus = offset => {\n let newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n const [isAllOptionSelected, hasSelectableOptions] = useMemo(() => {\n const filteredOptionsList = filteredOptions.filter(o => !o.disabled);\n return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [filteredOptions, value]);\n useEffect(() => {\n getFilteredOptions().then(setFilteredOptions);\n }, [searchTextForFilter, options]);\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: t(\"search\"),\n type: \"text\",\n \"aria-describedby\": t(\"search\"),\n onKeyDown: e => e.stopPropagation(),\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText,\n ref: searchInputRef\n }), React.createElement(\"button\", {\n type: \"button\",\n className: cn(SearchClearButton, \"search-clear-button\"),\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": t(\"clearSearch\")\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: () => handleItemClicked(1),\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), filteredOptions.length ? React.createElement(SelectList, {\n options: filteredOptions,\n focusIndex: focusIndex,\n onClick: (_e, index) => handleItemClicked(index)\n }) : React.createElement(\"div\", {\n className: cn(NoOptions, \"no-options\")\n }, t(\"noOptions\")));\n};\n\nconst Arrow = ({\n expanded\n}) => React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n}, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n}));\n\nconst DropdownHeader = () => {\n const {\n t,\n value,\n options,\n valueRenderer\n } = useMultiSelect();\n const noneSelected = value.length === 0;\n const allSelected = value.length === options.length;\n const customText = valueRenderer && valueRenderer(value, options);\n\n const getSelectedText = () => value.map(s => s.label).join(\", \");\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || t(\"selectSomeItems\")) : React.createElement(\"span\", null, customText || (allSelected ? t(\"allItemsAreSelected\") : getSelectedText()));\n};\n\nconst Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\nconst Loading = ({\n size = 24\n}) => React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n}, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n}, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n})));\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nconst PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nconst DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nconst DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nconst ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nconst Dropdown = () => {\n const {\n t,\n onMenuToggle,\n ArrowRenderer,\n shouldToggleOnHover,\n isLoading,\n disabled,\n onChange,\n labelledBy,\n value,\n isOpen,\n defaultIsOpen,\n ClearSelectedIcon\n } = useMultiSelect();\n const [isInternalExpand, setIsInternalExpand] = useState(true);\n const [expanded, setExpanded] = useState(defaultIsOpen);\n const [hasFocus, setHasFocus] = useState(false);\n const FinalArrow = ArrowRenderer || Arrow;\n const wrapper = useRef();\n useDidUpdateEffect(() => {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(() => {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n const handleKeyDown = e => {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n const handleHover = iexpanded => {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n const handleFocus = () => !hasFocus && setHasFocus(true);\n\n const handleBlur = e => {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n const handleMouseEnter = () => handleHover(true);\n\n const handleMouseLeave = () => handleHover(false);\n\n const toggleExpanded = () => {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n const handleClearSelected = e => {\n e.stopPropagation();\n onChange([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: cn(DropdownContainer, \"dropdown-container\"),\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: cn(DropdownHeading, \"dropdown-heading\"),\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, React.createElement(DropdownHeader, null)), isLoading && React.createElement(Loading, null), value.length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: cn(ClearSelectedButton, \"clear-selected-button\"),\n onClick: handleClearSelected,\n disabled: disabled,\n \"aria-label\": t(\"clearSelected\")\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: cn(PanelContainer, \"dropdown-content\")\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(SelectPanel, null))));\n};\n\nconst MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nconst MultiSelect = props => React.createElement(MultiSelectProvider, {\n props: props\n}, React.createElement(\"div\", {\n className: cn(MultiSelectBox, props.className || \"multi-select\")\n}, React.createElement(Dropdown, null)));\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if ( ! isValidBlockType( props.name ) ) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n <PluginBlockSettingsMenuItem\n allowedBlocks={ [ 'core/paragraph' ] }\n icon=\"smiley\"\n label=\"Menu item text\"\n onClick={ () => {\n console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n } }\n />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getCategories();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'categories';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Category', 'content-visibility' ),\n plural: __( 'Categories', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"category\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-categories-button-container\">\n <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n <CategoryPageInserter props={ props } />\n <TagPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: [],\n categories: [],\n tags: []\n };\n\n return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getTags();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'tags';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Tag', 'content-visibility' ),\n plural: __( 'Tags', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"tag\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-tags-button-container\">\n <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n const categories = [];\n\n if ( ContentVisibility.categories.length === 0 ) {\n return [ {\n label: __( 'No categories found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const category in ContentVisibility.categories ) {\n \n categories.push( { \n label: ContentVisibility.categories[category].label,\n value: ContentVisibility.categories[category].id,\n notes: ContentVisibility.categories[category].notes\n } );\n \n }\n\n return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n const tags = [];\n\n if ( ContentVisibility.tags.length === 0 ) {\n return [ {\n label: __( 'No tags found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const tag in ContentVisibility.tags ) {\n \n tags.push( { \n label: ContentVisibility.tags[tag].label,\n value: ContentVisibility.tags[tag].id,\n notes: ContentVisibility.tags[tag].notes\n } );\n \n }\n\n return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n if ( ! props.attributes.contentVisibilityRules ) {\n return false;\n }\n\n if ( ! props.attributes.contentVisibilityRules[type] ) {\n return false;\n }\n\n // Default to false. Passed through a filter later.\n let hasRules = false;\n\n switch ( type ) {\n \n case 'userAuthenticated':\n\n if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n hasRules = true;\n }\n\n break;\n \n case 'specialPage':\n\n let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n hasRules = specialPageRulesValues.some( function( el ) {\n return el.length > 0;\n });\n\n break;\n\n default:\n break;\n }\n\n return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""} -
content-visibility/trunk/content-visibility.php
r2589501 r2833193 12 12 * Plugin URI: https://richardtape.com/content-visibility/ 13 13 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible. 14 * Version: 0.2. 714 * Version: 0.2.9 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/trunk/includes/content-visibility.php
r2568520 r2833193 14 14 15 15 add_action( 'plugins_loaded', __NAMESPACE__ . '\\plugins_loaded__bv_loader' ); 16 17 // An issue has been reported that any blocks registered with PHP and renders to the 18 // editor using the ServerSideRender component will fail due to validation error from rest API endpoint. 19 // 20 // This is due to the default attributes were originally added on the client side only. And the server does not know they are/should exist. 21 // 22 // The solution is to make sure that any blocks registered through PHP does also have the required attributes on the server side by override the block attributes 23 // when blocks are registered with PHP. The WordPress core blocks are excluded. 24 add_filter( 'register_block_type_args', __NAMESPACE__ . '\\add_block_default_attributes', 10, 2 ); 25 26 /** 27 * Fires when new blocks are registered 28 * 29 * @param array $args an array of block settings 30 * @param string $name the name of the block 31 * 32 * @return array $args an array of modified block settings 33 * 34 * @since 0.2.8 35 */ 36 function add_block_default_attributes( $args, $name ) { 37 38 $args['attributes']['contentVisibilityRules'] = array( 39 'type' => 'object', 40 'default' => array( 41 'contentVisibilityRulesEnabled' => false, 42 'userAuthenticated' => '', 43 ) 44 ); 45 46 return $args; 47 }//end add_block_default_attributes() 16 48 17 49 /** -
content-visibility/trunk/readme.txt
r2589501 r2833193 4 4 Tags: contentvisibility, block, content, visibility, show, hide 5 5 Requires at least: 5.0 6 Tested up to: 5.8.07 Stable tag: 0.2. 76 Tested up to: 6.1.1 7 Stable tag: 0.2.9 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 69 69 == Changelog == 70 70 71 = 0.2.9 = 72 * WordPress 6.1.1 compatibility. 73 * Fixed the styling weirdness causing some blocks to be misaligned when they have rules set. 74 * Tweaked styling of block inspector controls to fall more in line with newer WP rules. 75 * Fixed styles of multi-select field for widgets. 76 77 = 0.2.8 = 78 * Fixed an issue where blocks registered with PHP throwing error when rendering it with ServerSideRender components in the editor. 79 71 80 = 0.2.7 = 72 81 * Fixed an issue where in some cases the block controls for widgets still weren't appearing on the new 5.8 widgets screen.
Note: See TracChangeset
for help on using the changeset viewer.