Changeset 2568520
- Timestamp:
- 07/20/2021 07:59:03 PM (4 years ago)
- Location:
- content-visibility
- Files:
-
- 20 edited
- 1 copied
-
tags/0.2.5 (copied) (copied from content-visibility/trunk)
-
tags/0.2.5/build/index.asset.php (modified) (1 diff)
-
tags/0.2.5/build/index.css (modified) (2 diffs)
-
tags/0.2.5/build/index.css.map (modified) (1 diff)
-
tags/0.2.5/build/index.js (modified) (18 diffs)
-
tags/0.2.5/build/index.js.map (modified) (1 diff)
-
tags/0.2.5/content-visibility.php (modified) (1 diff)
-
tags/0.2.5/includes/content-visibility.php (modified) (1 diff)
-
tags/0.2.5/includes/editor/class-editor.php (modified) (2 diffs)
-
tags/0.2.5/includes/public/special-page/rule-logic-special-page.php (modified) (2 diffs)
-
tags/0.2.5/readme.txt (modified) (3 diffs)
-
trunk/build/index.asset.php (modified) (1 diff)
-
trunk/build/index.css (modified) (2 diffs)
-
trunk/build/index.css.map (modified) (1 diff)
-
trunk/build/index.js (modified) (18 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/includes/editor/class-editor.php (modified) (2 diffs)
-
trunk/includes/public/special-page/rule-logic-special-page.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
content-visibility/tags/0.2.5/build/index.asset.php
r2510989 r2568520 1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-e lement', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '609efb85338aa7a2f8177ec1f4cb9e12');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' => '1e9c6757567033127ba47ab2cc702158'); -
content-visibility/tags/0.2.5/build/index.css
r2510964 r2568520 209 209 min-width: 190px; 210 210 font-size: 12px; 211 line-height: 1.6; } 211 line-height: 1.6; 212 box-shadow: none; } 212 213 213 214 /* … … 225 226 margin-top: 1rem; 226 227 margin-bottom: 1rem; } 228 229 /* 230 When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance. 231 */ 232 .content-visibility-control-panel.has-active-rules h2 button::after { 233 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"); 234 display: inline-block; 235 height: 12px; 236 width: 12px; 237 margin-left: 0.5rem; 238 line-height: 1; } 227 239 228 240 /* -
content-visibility/tags/0.2.5/build/index.css.map
r2510964 r2568520 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\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 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.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":""} -
content-visibility/tags/0.2.5/build/index.js
r2510964 r2568520 3211 3211 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3212 3212 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3213 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/assign */ "./node_modules/lodash/assign.js"); 3214 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_assign__WEBPACK_IMPORTED_MODULE_6__); 3215 /* harmony import */ var _content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-rules-enabled */ "./src/controls/content-visibility-rules-enabled.js"); 3216 /* harmony import */ var _content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./content-visibility-displayed-control */ "./src/controls/content-visibility-displayed-control.js"); 3217 /* harmony import */ var _helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/is-valid-blocktype */ "./src/helpers/is-valid-blocktype.js"); 3213 /* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/plugins */ "@wordpress/plugins"); 3214 /* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_6__); 3215 /* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/edit-post */ "@wordpress/edit-post"); 3216 /* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7__); 3217 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/assign */ "./node_modules/lodash/assign.js"); 3218 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_assign__WEBPACK_IMPORTED_MODULE_8__); 3219 /* harmony import */ var _content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content-visibility-rules-enabled */ "./src/controls/content-visibility-rules-enabled.js"); 3220 /* harmony import */ var _content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./content-visibility-displayed-control */ "./src/controls/content-visibility-displayed-control.js"); 3221 /* harmony import */ var _helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../helpers/is-valid-blocktype */ "./src/helpers/is-valid-blocktype.js"); 3222 3223 3218 3224 3219 3225 … … 3229 3235 var contentVisibilityControls = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["createHigherOrderComponent"])(function (BlockEdit) { 3230 3236 return function (props) { 3231 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(props.name)) {3237 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) { 3232 3238 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props); 3233 3239 } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. … … 3244 3250 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 3245 3251 className: "content-visibility-rules-enabled" 3246 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_ 7__["ContentVisibilityRulesEnabled"], {3252 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_9__["ContentVisibilityRulesEnabled"], { 3247 3253 props: props 3248 3254 })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { … … 3250 3256 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 3251 3257 className: "content-visibility-displayed-control" 3252 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_ 8__["ContentVisibilityDisplayedControl"], {3258 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_10__["ContentVisibilityDisplayedControl"], { 3253 3259 props: props 3254 3260 })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Slot"], { … … 3269 3275 function addContentVisibilityRulesAttribute(settings) { 3270 3276 // If this is a valid block 3271 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(settings.name)) {3277 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(settings.name)) { 3272 3278 // Run the rules through a filter so we're able to add rules externally. 3273 3279 var defaultRules = Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["applyFilters"])('contentVisibility.defaultContentVisibilityRules', { … … 3276 3282 }); // Use Lodash's assign to gracefully handle if attributes are undefined 3277 3283 3278 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_ 6___default()(settings.attributes, {3284 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, { 3279 3285 contentVisibilityRules: { 3280 3286 type: 'object', … … 3300 3306 function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) { 3301 3307 // If the current block is valid, add our prop. 3302 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(blockType.name)) {3308 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(blockType.name)) { 3303 3309 extraProps.contentVisibilityRules = attributes.contentVisibilityRules; 3304 3310 } … … 3309 3315 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute); 3310 3316 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave); 3317 /* -------------- 3318 3319 const ContentVisibilityPluginBlockSettingsMenuItem = () => ( 3320 <PluginBlockSettingsMenuItem 3321 allowedBlocks={ [ 'core/paragraph' ] } 3322 icon="smiley" 3323 label="Menu item text" 3324 onClick={ () => { 3325 console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] ); 3326 } } 3327 /> 3328 ); 3329 3330 registerPlugin( 'block-settings-menu-group-test', { 3331 render: ContentVisibilityPluginBlockSettingsMenuItem, 3332 } ); 3333 3334 -------------- */ 3311 3335 3312 3336 /***/ }), … … 4007 4031 }); 4008 4032 /* harmony default export */ __webpack_exports__["default"] = (PostPageInserter); 4033 4034 /***/ }), 4035 4036 /***/ "./src/controls/special-page/content-visibility-special-page-category-inserter.js": 4037 /*!****************************************************************************************!*\ 4038 !*** ./src/controls/special-page/content-visibility-special-page-category-inserter.js ***! 4039 \****************************************************************************************/ 4040 /*! exports provided: default */ 4041 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4042 4043 "use strict"; 4044 __webpack_require__.r(__webpack_exports__); 4045 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4046 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4047 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4048 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4049 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4050 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4051 /* harmony import */ var _helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-categories */ "./src/helpers/get-categories.js"); 4052 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4053 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4054 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4055 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4056 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4057 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 var CategoryPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4068 isVisible: false 4069 })(function (_ref) { 4070 var isVisible = _ref.isVisible, 4071 setState = _ref.setState, 4072 props = _ref.props; 4073 4074 /** 4075 * Our data, passed from PHP and manipulated to be useful here in JS. 4076 */ 4077 var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4078 /** 4079 * This controls the key used where the data is stored. 4080 */ 4081 4082 var type = 'categories'; 4083 /** 4084 * Helps with the content of the inserter button. 4085 */ 4086 4087 var niceName = { 4088 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'), 4089 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility') 4090 }; 4091 /** 4092 * Toggle the visible state. Detemines whether the popup is open or not. 4093 */ 4094 4095 var toggleVisible = function toggleVisible() { 4096 setState(function (state) { 4097 return { 4098 isVisible: !state.isVisible 4099 }; 4100 }); 4101 }; 4102 4103 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4104 className: "content-visibility-special-page-inserter" 4105 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4106 icon: "category", 4107 iconSize: "12" 4108 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4109 isSecondary: true, 4110 isSmall: true, 4111 isLink: true, 4112 onClick: toggleVisible, 4113 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4114 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific categories', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4115 position: "middle left", 4116 className: "content-visibility-special-page-help-instructions-popover", 4117 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4118 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Categories', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4119 className: "content-visibility-help-text" 4120 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the categories upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4121 data: data, 4122 labelledBy: "Select Category", 4123 props: props, 4124 type: type 4125 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4126 className: "content-visibility-submit-categories-button-container" 4127 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4128 isPrimary: true, 4129 className: "content-visibility-submit-categories", 4130 onClick: toggleVisible 4131 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4132 icon: "editor-help", 4133 iconSize: "12" 4134 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more categories from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " when the post being viewed is in that category. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL categories, please use the 'Special Pages' option and select 'Any Category'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4135 className: "content-visibility-close-popover", 4136 icon: "no", 4137 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4138 onClick: toggleVisible 4139 })))); 4140 }); 4141 /* harmony default export */ __webpack_exports__["default"] = (CategoryPageInserter); 4009 4142 4010 4143 /***/ }), … … 4218 4351 /* harmony import */ var _content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./content-visibility-page-page-inserter */ "./src/controls/special-page/content-visibility-page-page-inserter.js"); 4219 4352 /* harmony import */ var _content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-post-page-inserter */ "./src/controls/special-page/content-visibility-post-page-inserter.js"); 4353 /* harmony import */ var _content_visibility_special_page_category_inserter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./content-visibility-special-page-category-inserter */ "./src/controls/special-page/content-visibility-special-page-category-inserter.js"); 4354 /* harmony import */ var _content_visibility_special_page_tag_inserter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content-visibility-special-page-tag-inserter */ "./src/controls/special-page/content-visibility-special-page-tag-inserter.js"); 4355 /* harmony import */ var _helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/has-rules */ "./src/helpers/has-rules.js"); 4356 4357 4358 4220 4359 4221 4360 … … 4232 4371 setState = _ref.setState, 4233 4372 props = _ref.props; 4373 var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : ''; 4234 4374 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 4235 4375 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Special Page', 'content-visibility'), 4236 4376 initialOpen: false, 4237 className: "content-visibility-control-panel block-visibility-special-page-controls" 4377 className: "content-visibility-control-panel block-visibility-special-page-controls" + hasRulesClass 4238 4378 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 4239 4379 className: "content-visibility-page-inserter-panel-row" … … 4244 4384 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], { 4245 4385 props: props 4386 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_category_inserter__WEBPACK_IMPORTED_MODULE_8__["default"], { 4387 props: props 4388 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_tag_inserter__WEBPACK_IMPORTED_MODULE_9__["default"], { 4389 props: props 4246 4390 })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4247 4391 className: "special-page-help-intro content-visibility-help-text" … … 4255 4399 pages: [], 4256 4400 specialPages: [], 4257 posts: [] 4401 posts: [], 4402 categories: [], 4403 tags: [] 4258 4404 }; 4259 4405 return defaultRules; 4260 4406 } 4407 4408 /***/ }), 4409 4410 /***/ "./src/controls/special-page/content-visibility-special-page-tag-inserter.js": 4411 /*!***********************************************************************************!*\ 4412 !*** ./src/controls/special-page/content-visibility-special-page-tag-inserter.js ***! 4413 \***********************************************************************************/ 4414 /*! exports provided: default */ 4415 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4416 4417 "use strict"; 4418 __webpack_require__.r(__webpack_exports__); 4419 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4420 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4421 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4422 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4423 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4424 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4425 /* harmony import */ var _helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-tags */ "./src/helpers/get-tags.js"); 4426 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4427 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4428 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4429 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4430 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4431 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 var TagPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4442 isVisible: false 4443 })(function (_ref) { 4444 var isVisible = _ref.isVisible, 4445 setState = _ref.setState, 4446 props = _ref.props; 4447 4448 /** 4449 * Our data, passed from PHP and manipulated to be useful here in JS. 4450 */ 4451 var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4452 /** 4453 * This controls the key used where the data is stored. 4454 */ 4455 4456 var type = 'tags'; 4457 /** 4458 * Helps with the content of the inserter button. 4459 */ 4460 4461 var niceName = { 4462 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'), 4463 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility') 4464 }; 4465 /** 4466 * Toggle the visible state. Detemines whether the popup is open or not. 4467 */ 4468 4469 var toggleVisible = function toggleVisible() { 4470 setState(function (state) { 4471 return { 4472 isVisible: !state.isVisible 4473 }; 4474 }); 4475 }; 4476 4477 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4478 className: "content-visibility-special-page-inserter" 4479 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4480 icon: "tag", 4481 iconSize: "12" 4482 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4483 isSecondary: true, 4484 isSmall: true, 4485 isLink: true, 4486 onClick: toggleVisible, 4487 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4488 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific tags', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4489 position: "middle left", 4490 className: "content-visibility-special-page-help-instructions-popover", 4491 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4492 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Tags', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4493 className: "content-visibility-help-text" 4494 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the tags upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4495 data: data, 4496 labelledBy: "Select Tag", 4497 props: props, 4498 type: type 4499 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4500 className: "content-visibility-submit-tags-button-container" 4501 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4502 isPrimary: true, 4503 className: "content-visibility-submit-tags", 4504 onClick: toggleVisible 4505 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4506 icon: "editor-help", 4507 iconSize: "12" 4508 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more tags from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " when the post being viewed is in that tag. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL tags, please use the 'Special Pages' option and select 'Any tag'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4509 className: "content-visibility-close-popover", 4510 icon: "no", 4511 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4512 onClick: toggleVisible 4513 })))); 4514 }); 4515 /* harmony default export */ __webpack_exports__["default"] = (TagPageInserter); 4261 4516 4262 4517 /***/ }), … … 4364 4619 setState = _ref.setState, 4365 4620 props = _ref.props; 4621 var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : ''; 4366 4622 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 4367 4623 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('User Authentication', 'content-visibility'), 4368 4624 initialOpen: false, 4369 className: "content-visibility-control-panel content-visibility-user-authenticated-controls" 4625 className: "content-visibility-control-panel content-visibility-user-authenticated-controls" + hasRulesClass 4370 4626 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_user_authentication_radio_control__WEBPACK_IMPORTED_MODULE_4__["ContentVisibilityUserAuthenticationRadioControl"], { 4371 4627 props: props … … 4385 4641 4386 4642 // extracted by mini-css-extract-plugin 4643 4644 /***/ }), 4645 4646 /***/ "./src/helpers/get-categories.js": 4647 /*!***************************************!*\ 4648 !*** ./src/helpers/get-categories.js ***! 4649 \***************************************/ 4650 /*! exports provided: default */ 4651 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4652 4653 "use strict"; 4654 __webpack_require__.r(__webpack_exports__); 4655 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4656 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4657 4658 /** 4659 * PHP sends through a list of all the categories on the site. We massage that data to be 4660 * usable by our Dropdown. 4661 * 4662 */ 4663 4664 function getCategories() { 4665 var categories = []; 4666 4667 if (ContentVisibility.categories.length === 0) { 4668 return [{ 4669 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No categories found.', 'content-visibility'), 4670 value: 0, 4671 notes: '' 4672 }]; 4673 } 4674 4675 for (var category in ContentVisibility.categories) { 4676 categories.push({ 4677 label: ContentVisibility.categories[category].label, 4678 value: ContentVisibility.categories[category].id, 4679 notes: ContentVisibility.categories[category].notes 4680 }); 4681 } 4682 4683 return categories; 4684 } // end getCategories() 4685 4686 4687 /* harmony default export */ __webpack_exports__["default"] = (getCategories); 4387 4688 4388 4689 /***/ }), … … 4522 4823 /***/ }), 4523 4824 4825 /***/ "./src/helpers/get-tags.js": 4826 /*!*********************************!*\ 4827 !*** ./src/helpers/get-tags.js ***! 4828 \*********************************/ 4829 /*! exports provided: default */ 4830 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4831 4832 "use strict"; 4833 __webpack_require__.r(__webpack_exports__); 4834 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4835 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4836 4837 /** 4838 * PHP sends through a list of all the tags on the site. We massage that data to be 4839 * usable by our Dropdown. 4840 * 4841 */ 4842 4843 function getTags() { 4844 var tags = []; 4845 4846 if (ContentVisibility.tags.length === 0) { 4847 return [{ 4848 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No tags found.', 'content-visibility'), 4849 value: 0, 4850 notes: '' 4851 }]; 4852 } 4853 4854 for (var tag in ContentVisibility.tags) { 4855 tags.push({ 4856 label: ContentVisibility.tags[tag].label, 4857 value: ContentVisibility.tags[tag].id, 4858 notes: ContentVisibility.tags[tag].notes 4859 }); 4860 } 4861 4862 return tags; 4863 } // end getTags() 4864 4865 4866 /* harmony default export */ __webpack_exports__["default"] = (getTags); 4867 4868 /***/ }), 4869 4524 4870 /***/ "./src/helpers/has-parent-with-class.js": 4525 4871 /*!**********************************************!*\ … … 4559 4905 /***/ }), 4560 4906 4907 /***/ "./src/helpers/has-rules.js": 4908 /*!**********************************!*\ 4909 !*** ./src/helpers/has-rules.js ***! 4910 \**********************************/ 4911 /*! exports provided: default */ 4912 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4913 4914 "use strict"; 4915 __webpack_require__.r(__webpack_exports__); 4916 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); 4917 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__); 4918 4919 /** 4920 * Determine if the passed block props contain rules of the passed type. 4921 * 4922 * @param {object} props The currently selected block's props. 4923 * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons). 4924 * 4925 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise. 4926 */ 4927 4928 function hasRules(props, type) { 4929 if (!props.attributes.contentVisibilityRules) { 4930 return false; 4931 } 4932 4933 if (!props.attributes.contentVisibilityRules[type]) { 4934 return false; 4935 } // Default to false. Passed through a filter later. 4936 4937 4938 var hasRules = false; 4939 4940 switch (type) { 4941 case 'userAuthenticated': 4942 if (props.attributes.contentVisibilityRules[type] !== '') { 4943 hasRules = true; 4944 } 4945 4946 break; 4947 4948 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 4953 hasRules = specialPageRulesValues.some(function (el) { 4954 return el.length > 0; 4955 }); 4956 break; 4957 4958 default: 4959 break; 4960 } 4961 4962 return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type); 4963 } // end hasRules() 4964 4965 4966 /* harmony default export */ __webpack_exports__["default"] = (hasRules); 4967 4968 /***/ }), 4969 4561 4970 /***/ "./src/helpers/is-valid-blocktype.js": 4562 4971 /*!*******************************************!*\ … … 4751 5160 /***/ }), 4752 5161 5162 /***/ "@wordpress/edit-post": 5163 /*!**********************************!*\ 5164 !*** external ["wp","editPost"] ***! 5165 \**********************************/ 5166 /*! no static exports found */ 5167 /***/ (function(module, exports) { 5168 5169 (function() { module.exports = window["wp"]["editPost"]; }()); 5170 5171 /***/ }), 5172 4753 5173 /***/ "@wordpress/element": 4754 5174 /*!*********************************!*\ -
content-visibility/tags/0.2.5/build/index.js.map
r2510964 r2568520 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/typeof.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-c ontrols.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/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-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/has-parent-with-class.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\",\"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","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","registerSpecialPageVisibilityRule","pages","posts","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","page","push","id","post","keyValue","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","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;AAAA;AAAA,OAAO,QAAQ,OAAO,IAAI,iDAAiD,0HAA0H,UAAU,YAAY,OAAO,oBAAoB,mBAAmB,gCAAgC,KAAK,OAAO,OAAO,IAAI,4BAA4B,GAAG,iBAAiB,qBAAqB,gBAAgB,WAAW,yJAAyJ,wBAAwB,2CAA2C,wGAAwG,EAAE,qBAAqB,MAAM,eAAe,KAAK,OAAO,SAAS,yDAAyD,SAAS,iBAAiB,4GAA4G,UAAU,gCAAgC,WAAW,EAAE,KAAK,0BAA0B,yDAAyD,0BAA0B,YAAY,KAAK,UAAU,oBAAoB,eAAe,iBAAiB,oDAAoD,cAAc,+BAA+B,WAAW,cAAc,6DAA6D,qDAAqD,0BAA0B,KAAK,cAAc,cAAc,mBAAmB,oHAAoH,6BAA6B,kBAAkB,IAAI,YAAY,IAAI,EAAE,kBAAkB,cAAc,gBAAgB,eAAe,kBAAkB,gBAAgB,gBAAgB,sBAAsB,+BAA+B,0BAA0B,aAAa,2FAA2F,iBAAkG;;;;;;;;;;;;ACAzlE,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;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,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;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAK,CAAEC,2EAAgB,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;AA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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 } 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';\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);","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 { 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 || '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';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\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\"\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter 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 };\n\n return defaultRules;\n\n}","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 return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\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 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;","/**\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;","/**\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\"][\"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/typeof.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;AAAA;AAAA,OAAO,QAAQ,OAAO,IAAI,iDAAiD,0HAA0H,UAAU,YAAY,OAAO,oBAAoB,mBAAmB,gCAAgC,KAAK,OAAO,OAAO,IAAI,4BAA4B,GAAG,iBAAiB,qBAAqB,gBAAgB,WAAW,yJAAyJ,wBAAwB,2CAA2C,wGAAwG,EAAE,qBAAqB,MAAM,eAAe,KAAK,OAAO,SAAS,yDAAyD,SAAS,iBAAiB,4GAA4G,UAAU,gCAAgC,WAAW,EAAE,KAAK,0BAA0B,yDAAyD,0BAA0B,YAAY,KAAK,UAAU,oBAAoB,eAAe,iBAAiB,oDAAoD,cAAc,+BAA+B,WAAW,cAAc,6DAA6D,qDAAqD,0BAA0B,KAAK,cAAc,cAAc,mBAAmB,oHAAoH,6BAA6B,kBAAkB,IAAI,YAAY,IAAI,EAAE,kBAAkB,cAAc,gBAAgB,eAAe,kBAAkB,gBAAgB,gBAAgB,sBAAsB,+BAA+B,0BAA0B,aAAa,2FAA2F,iBAAkG;;;;;;;;;;;;ACAzlE,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;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,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 || '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.5/content-visibility.php
r2510989 r2568520 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. 414 * Version: 0.2.5 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/tags/0.2.5/includes/content-visibility.php
r2489866 r2568520 248 248 249 249 }//end get_posts() 250 251 252 /** 253 * An array of categories with their associated callback function which determines if the current post is in this particular category. 254 * 255 * @since 0.2.5 256 * @return array associative array containing a list of categories. Keys are the ID of the term. 257 */ 258 function get_categories() { 259 260 $categories_args = array( 261 'hide_empty' => false, 262 'orderby' => 'name', 263 'order' => 'ASC', 264 ); 265 266 $categories_args = apply_filters( 'content_visibility_get_categories_args', $categories_args ); 267 268 $categories = \get_categories( $categories_args ); 269 270 if ( false === $categories || empty( $categories ) ) { 271 return array(); 272 } 273 274 $categories_data = array(); 275 276 foreach ( $categories as $id => $category ) { 277 278 $category_id = absint( $category->term_id ); 279 $sanitized_title = sanitize_text_field( $category->name ); 280 281 $title = ( empty( $sanitized_title ) ) ? __( '[This category has no title]', 'content-visibility' ) : $sanitized_title; 282 283 $categories_data[ $category_id ] = array( 284 'label' => $title, 285 'id' => $category_id, 286 'callback' => array( 'in_category', array( $category_id ) ), 287 'notes' => '', 288 ); 289 } 290 291 return $categories_data; 292 293 }//end get_categories() 294 295 296 /** 297 * An array of tags with their associated callback function which determines if the current post is in this particular tag. 298 * 299 * @since 0.2.5 300 * @return array associative array containing a list of tags. Keys are the ID of the term. 301 */ 302 function get_tags() { 303 304 $tags_args = array( 305 'hide_empty' => false, 306 'orderby' => 'name', 307 'order' => 'ASC', 308 ); 309 310 $tags_args = apply_filters( 'content_visibility_get_tags_args', $tags_args ); 311 312 $tags = \get_tags( $tags_args ); 313 314 if ( false === $tags || empty( $tags ) ) { 315 return array(); 316 } 317 318 $tags_data = array(); 319 320 foreach ( $tags as $id => $tag ) { 321 322 $tag_id = absint( $tag->term_id ); 323 $sanitized_title = sanitize_text_field( $tag->name ); 324 325 $title = ( empty( $sanitized_title ) ) ? __( '[This tag has no title]', 'content-visibility' ) : $sanitized_title; 326 327 $tags_data[ $tag_id ] = array( 328 'label' => $title, 329 'id' => $tag_id, 330 'callback' => array( 'has_tag', array( $tag_id ) ), 331 'notes' => '', 332 ); 333 } 334 335 return $tags_data; 336 337 }//end get_tags() -
content-visibility/tags/0.2.5/includes/editor/class-editor.php
r2510989 r2568520 122 122 'wp-edit-post', 123 123 'wp-dom-ready', 124 'wp-rich-text', 124 125 ), 125 126 filemtime( plugin_dir_path( dirname( __DIR__ ) ) . 'build/index.js' ), … … 138 139 $content_visibility_args['pages'] = \RichardTape\ContentVisibility\get_pages(); 139 140 $content_visibility_args['posts'] = \RichardTape\ContentVisibility\get_posts(); 141 $content_visibility_args['categories'] = \RichardTape\ContentVisibility\get_categories(); 142 $content_visibility_args['tags'] = \RichardTape\ContentVisibility\get_tags(); 140 143 } 141 144 -
content-visibility/tags/0.2.5/includes/public/special-page/rule-logic-special-page.php
r2471132 r2568520 81 81 82 82 $matches_any_special_page_rule = (bool) rule_logic_special_page_posts( $rule_value[ $rule ], $block ); 83 break; 84 85 case 'categories': 86 // If we have already returned true from any of these switch statements, bail, as we don't need to do more tests. 87 if ( true === $matches_any_special_page_rule ) { 88 break; 89 } 90 91 $matches_any_special_page_rule = (bool) rule_logic_special_page_categories( $rule_value[ $rule ], $block ); 92 break; 93 94 case 'tags': 95 // If we have already returned true from any of these switch statements, bail, as we don't need to do more tests. 96 if ( true === $matches_any_special_page_rule ) { 97 break; 98 } 99 100 $matches_any_special_page_rule = (bool) rule_logic_special_page_tags( $rule_value[ $rule ], $block ); 83 101 break; 84 102 … … 221 239 222 240 241 /** 242 * Callbackfunction for special page categories. 243 * Test if the current post being shown is in the chosen category list. 244 * 245 * @param array $rule_value_selections The specific selections for this block for this type of specialPage. 246 * @param array $block The current block being evaluated. 247 * 248 * @return bool True If the current URL is found in $rule_value_selections. False otherwise. 249 */ 250 function rule_logic_special_page_categories( $rule_value_selections, $block ) { 251 252 // If there's no rules, then this URL is not in this block selection. 253 if ( empty( $rule_value_selections ) ) { 254 return false; 255 } 256 257 // if ANY of the pages selected in $rule_value_selections are this page, then this function returns true immediately. 258 // So default to false here and if we get past this foreach statement, we return true. 259 $this_url_is_in_passed_selections = false; 260 261 foreach ( $rule_value_selections as $id => $page ) { 262 263 if ( ! isset( $page['value'] ) ) { 264 continue; 265 } 266 267 $category_id = absint( $page['value'] ); 268 269 if ( in_category( $category_id ) ) { 270 return true; 271 } 272 } 273 274 return $this_url_is_in_passed_selections; 275 276 }//end rule_logic_special_page_categories() 277 278 279 /** 280 * Callbackfunction for special page tags. 281 * Test if the current post being shown is in the chosen tags list. 282 * 283 * @param array $rule_value_selections The specific selections for this block for this type of specialPage. 284 * @param array $block The current block being evaluated. 285 * 286 * @return bool True If the current URL is found in $rule_value_selections. False otherwise. 287 */ 288 function rule_logic_special_page_tags( $rule_value_selections, $block ) { 289 290 // If there's no rules, then this URL is not in this block selection. 291 if ( empty( $rule_value_selections ) ) { 292 return false; 293 } 294 295 // if ANY of the pages selected in $rule_value_selections are this page, then this function returns true immediately. 296 // So default to false here and if we get past this foreach statement, we return true. 297 $this_url_is_in_passed_selections = false; 298 299 foreach ( $rule_value_selections as $id => $page ) { 300 301 if ( ! isset( $page['value'] ) ) { 302 continue; 303 } 304 305 $tag_id = absint( $page['value'] ); 306 307 if ( has_tag( $tag_id ) ) { 308 return true; 309 } 310 } 311 312 return $this_url_is_in_passed_selections; 313 314 }//end rule_logic_special_page_tags() 315 223 316 function rule_logic_special_page_generic( $rule_value_selections, $callback ) { 224 317 -
content-visibility/tags/0.2.5/readme.txt
r2510989 r2568520 2 2 Contributors: iamfriendly 3 3 Donate link: https://girlswhocode.com/ 4 Tags: block, content, visibility, contentvisibility, show, hide4 Tags: contentvisibility, block, content, visibility, show, hide 5 5 Requires at least: 5.0 6 Tested up to: 5. 7.07 Stable tag: 0.2. 46 Tested up to: 5.8.0 7 Stable tag: 0.2.5 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 38 38 Since version 0.1.7 you are now able to control the visibility of your widgets. As long as you have version 9.9 or above of the [Gutenberg plugin](https://wordpress.org/plugins/gutenberg/) you are able to use content visibility on all of your widgets, just like you can with all of your blocks in the content editor. Limit display of your widgets on specific URLs on your site. Want to show a specific text block to only people who are signed in and ONLY on search results? You got it. 39 39 40 Version 0.2.5 adds the ability to show or hide your widgets on posts that are in specific category or tags. 41 40 42 ## Coming Soon 41 43 … … 66 68 67 69 == Changelog == 70 71 = 0.2.5 = 72 * WordPress 5.8.0 compatibility. 73 * Added Category and Tag controls for widgets screen. So now you can you say "show this widget (block) when the post being shown has this tag" or maybe "hide this block when the post being shown is in this category". Thanks to Karl Anderson in the support forum for making this request. 68 74 69 75 = 0.2.4 = -
content-visibility/trunk/build/index.asset.php
r2510989 r2568520 1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-e lement', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '609efb85338aa7a2f8177ec1f4cb9e12');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' => '1e9c6757567033127ba47ab2cc702158'); -
content-visibility/trunk/build/index.css
r2510964 r2568520 209 209 min-width: 190px; 210 210 font-size: 12px; 211 line-height: 1.6; } 211 line-height: 1.6; 212 box-shadow: none; } 212 213 213 214 /* … … 225 226 margin-top: 1rem; 226 227 margin-bottom: 1rem; } 228 229 /* 230 When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance. 231 */ 232 .content-visibility-control-panel.has-active-rules h2 button::after { 233 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"); 234 display: inline-block; 235 height: 12px; 236 width: 12px; 237 margin-left: 0.5rem; 238 line-height: 1; } 227 239 228 240 /* -
content-visibility/trunk/build/index.css.map
r2510964 r2568520 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\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 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.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":""} -
content-visibility/trunk/build/index.js
r2510964 r2568520 3211 3211 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3212 3212 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3213 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/assign */ "./node_modules/lodash/assign.js"); 3214 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_assign__WEBPACK_IMPORTED_MODULE_6__); 3215 /* harmony import */ var _content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-rules-enabled */ "./src/controls/content-visibility-rules-enabled.js"); 3216 /* harmony import */ var _content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./content-visibility-displayed-control */ "./src/controls/content-visibility-displayed-control.js"); 3217 /* harmony import */ var _helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/is-valid-blocktype */ "./src/helpers/is-valid-blocktype.js"); 3213 /* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/plugins */ "@wordpress/plugins"); 3214 /* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_6__); 3215 /* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/edit-post */ "@wordpress/edit-post"); 3216 /* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_7__); 3217 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash/assign */ "./node_modules/lodash/assign.js"); 3218 /* harmony import */ var lodash_assign__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_assign__WEBPACK_IMPORTED_MODULE_8__); 3219 /* harmony import */ var _content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content-visibility-rules-enabled */ "./src/controls/content-visibility-rules-enabled.js"); 3220 /* harmony import */ var _content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./content-visibility-displayed-control */ "./src/controls/content-visibility-displayed-control.js"); 3221 /* harmony import */ var _helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../helpers/is-valid-blocktype */ "./src/helpers/is-valid-blocktype.js"); 3222 3223 3218 3224 3219 3225 … … 3229 3235 var contentVisibilityControls = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["createHigherOrderComponent"])(function (BlockEdit) { 3230 3236 return function (props) { 3231 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(props.name)) {3237 if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) { 3232 3238 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props); 3233 3239 } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled. … … 3244 3250 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 3245 3251 className: "content-visibility-rules-enabled" 3246 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_ 7__["ContentVisibilityRulesEnabled"], {3252 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_rules_enabled__WEBPACK_IMPORTED_MODULE_9__["ContentVisibilityRulesEnabled"], { 3247 3253 props: props 3248 3254 })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { … … 3250 3256 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 3251 3257 className: "content-visibility-displayed-control" 3252 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_ 8__["ContentVisibilityDisplayedControl"], {3258 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_displayed_control__WEBPACK_IMPORTED_MODULE_10__["ContentVisibilityDisplayedControl"], { 3253 3259 props: props 3254 3260 })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Slot"], { … … 3269 3275 function addContentVisibilityRulesAttribute(settings) { 3270 3276 // If this is a valid block 3271 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(settings.name)) {3277 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(settings.name)) { 3272 3278 // Run the rules through a filter so we're able to add rules externally. 3273 3279 var defaultRules = Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["applyFilters"])('contentVisibility.defaultContentVisibilityRules', { … … 3276 3282 }); // Use Lodash's assign to gracefully handle if attributes are undefined 3277 3283 3278 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_ 6___default()(settings.attributes, {3284 settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, { 3279 3285 contentVisibilityRules: { 3280 3286 type: 'object', … … 3300 3306 function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) { 3301 3307 // If the current block is valid, add our prop. 3302 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_ 9__["default"])(blockType.name)) {3308 if (Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(blockType.name)) { 3303 3309 extraProps.contentVisibilityRules = attributes.contentVisibilityRules; 3304 3310 } … … 3309 3315 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute); 3310 3316 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave); 3317 /* -------------- 3318 3319 const ContentVisibilityPluginBlockSettingsMenuItem = () => ( 3320 <PluginBlockSettingsMenuItem 3321 allowedBlocks={ [ 'core/paragraph' ] } 3322 icon="smiley" 3323 label="Menu item text" 3324 onClick={ () => { 3325 console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] ); 3326 } } 3327 /> 3328 ); 3329 3330 registerPlugin( 'block-settings-menu-group-test', { 3331 render: ContentVisibilityPluginBlockSettingsMenuItem, 3332 } ); 3333 3334 -------------- */ 3311 3335 3312 3336 /***/ }), … … 4007 4031 }); 4008 4032 /* harmony default export */ __webpack_exports__["default"] = (PostPageInserter); 4033 4034 /***/ }), 4035 4036 /***/ "./src/controls/special-page/content-visibility-special-page-category-inserter.js": 4037 /*!****************************************************************************************!*\ 4038 !*** ./src/controls/special-page/content-visibility-special-page-category-inserter.js ***! 4039 \****************************************************************************************/ 4040 /*! exports provided: default */ 4041 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4042 4043 "use strict"; 4044 __webpack_require__.r(__webpack_exports__); 4045 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4046 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4047 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4048 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4049 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4050 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4051 /* harmony import */ var _helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-categories */ "./src/helpers/get-categories.js"); 4052 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4053 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4054 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4055 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4056 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4057 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 var CategoryPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4068 isVisible: false 4069 })(function (_ref) { 4070 var isVisible = _ref.isVisible, 4071 setState = _ref.setState, 4072 props = _ref.props; 4073 4074 /** 4075 * Our data, passed from PHP and manipulated to be useful here in JS. 4076 */ 4077 var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4078 /** 4079 * This controls the key used where the data is stored. 4080 */ 4081 4082 var type = 'categories'; 4083 /** 4084 * Helps with the content of the inserter button. 4085 */ 4086 4087 var niceName = { 4088 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'), 4089 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility') 4090 }; 4091 /** 4092 * Toggle the visible state. Detemines whether the popup is open or not. 4093 */ 4094 4095 var toggleVisible = function toggleVisible() { 4096 setState(function (state) { 4097 return { 4098 isVisible: !state.isVisible 4099 }; 4100 }); 4101 }; 4102 4103 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4104 className: "content-visibility-special-page-inserter" 4105 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4106 icon: "category", 4107 iconSize: "12" 4108 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4109 isSecondary: true, 4110 isSmall: true, 4111 isLink: true, 4112 onClick: toggleVisible, 4113 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4114 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific categories', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4115 position: "middle left", 4116 className: "content-visibility-special-page-help-instructions-popover", 4117 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4118 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Categories', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4119 className: "content-visibility-help-text" 4120 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the categories upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4121 data: data, 4122 labelledBy: "Select Category", 4123 props: props, 4124 type: type 4125 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4126 className: "content-visibility-submit-categories-button-container" 4127 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4128 isPrimary: true, 4129 className: "content-visibility-submit-categories", 4130 onClick: toggleVisible 4131 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4132 icon: "editor-help", 4133 iconSize: "12" 4134 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more categories from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " when the post being viewed is in that category. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL categories, please use the 'Special Pages' option and select 'Any Category'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4135 className: "content-visibility-close-popover", 4136 icon: "no", 4137 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4138 onClick: toggleVisible 4139 })))); 4140 }); 4141 /* harmony default export */ __webpack_exports__["default"] = (CategoryPageInserter); 4009 4142 4010 4143 /***/ }), … … 4218 4351 /* harmony import */ var _content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./content-visibility-page-page-inserter */ "./src/controls/special-page/content-visibility-page-page-inserter.js"); 4219 4352 /* harmony import */ var _content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-post-page-inserter */ "./src/controls/special-page/content-visibility-post-page-inserter.js"); 4353 /* harmony import */ var _content_visibility_special_page_category_inserter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./content-visibility-special-page-category-inserter */ "./src/controls/special-page/content-visibility-special-page-category-inserter.js"); 4354 /* harmony import */ var _content_visibility_special_page_tag_inserter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./content-visibility-special-page-tag-inserter */ "./src/controls/special-page/content-visibility-special-page-tag-inserter.js"); 4355 /* harmony import */ var _helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/has-rules */ "./src/helpers/has-rules.js"); 4356 4357 4358 4220 4359 4221 4360 … … 4232 4371 setState = _ref.setState, 4233 4372 props = _ref.props; 4373 var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : ''; 4234 4374 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 4235 4375 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Special Page', 'content-visibility'), 4236 4376 initialOpen: false, 4237 className: "content-visibility-control-panel block-visibility-special-page-controls" 4377 className: "content-visibility-control-panel block-visibility-special-page-controls" + hasRulesClass 4238 4378 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 4239 4379 className: "content-visibility-page-inserter-panel-row" … … 4244 4384 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], { 4245 4385 props: props 4386 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_category_inserter__WEBPACK_IMPORTED_MODULE_8__["default"], { 4387 props: props 4388 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_tag_inserter__WEBPACK_IMPORTED_MODULE_9__["default"], { 4389 props: props 4246 4390 })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4247 4391 className: "special-page-help-intro content-visibility-help-text" … … 4255 4399 pages: [], 4256 4400 specialPages: [], 4257 posts: [] 4401 posts: [], 4402 categories: [], 4403 tags: [] 4258 4404 }; 4259 4405 return defaultRules; 4260 4406 } 4407 4408 /***/ }), 4409 4410 /***/ "./src/controls/special-page/content-visibility-special-page-tag-inserter.js": 4411 /*!***********************************************************************************!*\ 4412 !*** ./src/controls/special-page/content-visibility-special-page-tag-inserter.js ***! 4413 \***********************************************************************************/ 4414 /*! exports provided: default */ 4415 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4416 4417 "use strict"; 4418 __webpack_require__.r(__webpack_exports__); 4419 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4420 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4421 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4422 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4423 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4424 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4425 /* harmony import */ var _helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-tags */ "./src/helpers/get-tags.js"); 4426 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4427 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4428 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4429 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4430 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4431 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 var TagPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4442 isVisible: false 4443 })(function (_ref) { 4444 var isVisible = _ref.isVisible, 4445 setState = _ref.setState, 4446 props = _ref.props; 4447 4448 /** 4449 * Our data, passed from PHP and manipulated to be useful here in JS. 4450 */ 4451 var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4452 /** 4453 * This controls the key used where the data is stored. 4454 */ 4455 4456 var type = 'tags'; 4457 /** 4458 * Helps with the content of the inserter button. 4459 */ 4460 4461 var niceName = { 4462 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'), 4463 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility') 4464 }; 4465 /** 4466 * Toggle the visible state. Detemines whether the popup is open or not. 4467 */ 4468 4469 var toggleVisible = function toggleVisible() { 4470 setState(function (state) { 4471 return { 4472 isVisible: !state.isVisible 4473 }; 4474 }); 4475 }; 4476 4477 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4478 className: "content-visibility-special-page-inserter" 4479 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4480 icon: "tag", 4481 iconSize: "12" 4482 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4483 isSecondary: true, 4484 isSmall: true, 4485 isLink: true, 4486 onClick: toggleVisible, 4487 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4488 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific tags', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4489 position: "middle left", 4490 className: "content-visibility-special-page-help-instructions-popover", 4491 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4492 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Tags', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4493 className: "content-visibility-help-text" 4494 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the tags upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4495 data: data, 4496 labelledBy: "Select Tag", 4497 props: props, 4498 type: type 4499 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4500 className: "content-visibility-submit-tags-button-container" 4501 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4502 isPrimary: true, 4503 className: "content-visibility-submit-tags", 4504 onClick: toggleVisible 4505 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4506 icon: "editor-help", 4507 iconSize: "12" 4508 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more tags from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " when the post being viewed is in that tag. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL tags, please use the 'Special Pages' option and select 'Any tag'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4509 className: "content-visibility-close-popover", 4510 icon: "no", 4511 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4512 onClick: toggleVisible 4513 })))); 4514 }); 4515 /* harmony default export */ __webpack_exports__["default"] = (TagPageInserter); 4261 4516 4262 4517 /***/ }), … … 4364 4619 setState = _ref.setState, 4365 4620 props = _ref.props; 4621 var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : ''; 4366 4622 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], { 4367 4623 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('User Authentication', 'content-visibility'), 4368 4624 initialOpen: false, 4369 className: "content-visibility-control-panel content-visibility-user-authenticated-controls" 4625 className: "content-visibility-control-panel content-visibility-user-authenticated-controls" + hasRulesClass 4370 4626 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_user_authentication_radio_control__WEBPACK_IMPORTED_MODULE_4__["ContentVisibilityUserAuthenticationRadioControl"], { 4371 4627 props: props … … 4385 4641 4386 4642 // extracted by mini-css-extract-plugin 4643 4644 /***/ }), 4645 4646 /***/ "./src/helpers/get-categories.js": 4647 /*!***************************************!*\ 4648 !*** ./src/helpers/get-categories.js ***! 4649 \***************************************/ 4650 /*! exports provided: default */ 4651 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4652 4653 "use strict"; 4654 __webpack_require__.r(__webpack_exports__); 4655 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4656 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4657 4658 /** 4659 * PHP sends through a list of all the categories on the site. We massage that data to be 4660 * usable by our Dropdown. 4661 * 4662 */ 4663 4664 function getCategories() { 4665 var categories = []; 4666 4667 if (ContentVisibility.categories.length === 0) { 4668 return [{ 4669 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No categories found.', 'content-visibility'), 4670 value: 0, 4671 notes: '' 4672 }]; 4673 } 4674 4675 for (var category in ContentVisibility.categories) { 4676 categories.push({ 4677 label: ContentVisibility.categories[category].label, 4678 value: ContentVisibility.categories[category].id, 4679 notes: ContentVisibility.categories[category].notes 4680 }); 4681 } 4682 4683 return categories; 4684 } // end getCategories() 4685 4686 4687 /* harmony default export */ __webpack_exports__["default"] = (getCategories); 4387 4688 4388 4689 /***/ }), … … 4522 4823 /***/ }), 4523 4824 4825 /***/ "./src/helpers/get-tags.js": 4826 /*!*********************************!*\ 4827 !*** ./src/helpers/get-tags.js ***! 4828 \*********************************/ 4829 /*! exports provided: default */ 4830 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4831 4832 "use strict"; 4833 __webpack_require__.r(__webpack_exports__); 4834 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4835 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4836 4837 /** 4838 * PHP sends through a list of all the tags on the site. We massage that data to be 4839 * usable by our Dropdown. 4840 * 4841 */ 4842 4843 function getTags() { 4844 var tags = []; 4845 4846 if (ContentVisibility.tags.length === 0) { 4847 return [{ 4848 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No tags found.', 'content-visibility'), 4849 value: 0, 4850 notes: '' 4851 }]; 4852 } 4853 4854 for (var tag in ContentVisibility.tags) { 4855 tags.push({ 4856 label: ContentVisibility.tags[tag].label, 4857 value: ContentVisibility.tags[tag].id, 4858 notes: ContentVisibility.tags[tag].notes 4859 }); 4860 } 4861 4862 return tags; 4863 } // end getTags() 4864 4865 4866 /* harmony default export */ __webpack_exports__["default"] = (getTags); 4867 4868 /***/ }), 4869 4524 4870 /***/ "./src/helpers/has-parent-with-class.js": 4525 4871 /*!**********************************************!*\ … … 4559 4905 /***/ }), 4560 4906 4907 /***/ "./src/helpers/has-rules.js": 4908 /*!**********************************!*\ 4909 !*** ./src/helpers/has-rules.js ***! 4910 \**********************************/ 4911 /*! exports provided: default */ 4912 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4913 4914 "use strict"; 4915 __webpack_require__.r(__webpack_exports__); 4916 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); 4917 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__); 4918 4919 /** 4920 * Determine if the passed block props contain rules of the passed type. 4921 * 4922 * @param {object} props The currently selected block's props. 4923 * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons). 4924 * 4925 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise. 4926 */ 4927 4928 function hasRules(props, type) { 4929 if (!props.attributes.contentVisibilityRules) { 4930 return false; 4931 } 4932 4933 if (!props.attributes.contentVisibilityRules[type]) { 4934 return false; 4935 } // Default to false. Passed through a filter later. 4936 4937 4938 var hasRules = false; 4939 4940 switch (type) { 4941 case 'userAuthenticated': 4942 if (props.attributes.contentVisibilityRules[type] !== '') { 4943 hasRules = true; 4944 } 4945 4946 break; 4947 4948 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 4953 hasRules = specialPageRulesValues.some(function (el) { 4954 return el.length > 0; 4955 }); 4956 break; 4957 4958 default: 4959 break; 4960 } 4961 4962 return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type); 4963 } // end hasRules() 4964 4965 4966 /* harmony default export */ __webpack_exports__["default"] = (hasRules); 4967 4968 /***/ }), 4969 4561 4970 /***/ "./src/helpers/is-valid-blocktype.js": 4562 4971 /*!*******************************************!*\ … … 4751 5160 /***/ }), 4752 5161 5162 /***/ "@wordpress/edit-post": 5163 /*!**********************************!*\ 5164 !*** external ["wp","editPost"] ***! 5165 \**********************************/ 5166 /*! no static exports found */ 5167 /***/ (function(module, exports) { 5168 5169 (function() { module.exports = window["wp"]["editPost"]; }()); 5170 5171 /***/ }), 5172 4753 5173 /***/ "@wordpress/element": 4754 5174 /*!*********************************!*\ -
content-visibility/trunk/build/index.js.map
r2510964 r2568520 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/typeof.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-c ontrols.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/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-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/has-parent-with-class.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\",\"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","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","registerSpecialPageVisibilityRule","pages","posts","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","page","push","id","post","keyValue","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","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;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAK,CAAEC,2EAAgB,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;AA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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 } 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';\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);","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 { 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 || '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';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\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\"\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter 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 };\n\n return defaultRules;\n\n}","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 return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\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 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;","/**\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;","/**\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\"][\"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/typeof.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 || '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
r2510989 r2568520 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. 414 * Version: 0.2.5 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/trunk/includes/content-visibility.php
r2489866 r2568520 248 248 249 249 }//end get_posts() 250 251 252 /** 253 * An array of categories with their associated callback function which determines if the current post is in this particular category. 254 * 255 * @since 0.2.5 256 * @return array associative array containing a list of categories. Keys are the ID of the term. 257 */ 258 function get_categories() { 259 260 $categories_args = array( 261 'hide_empty' => false, 262 'orderby' => 'name', 263 'order' => 'ASC', 264 ); 265 266 $categories_args = apply_filters( 'content_visibility_get_categories_args', $categories_args ); 267 268 $categories = \get_categories( $categories_args ); 269 270 if ( false === $categories || empty( $categories ) ) { 271 return array(); 272 } 273 274 $categories_data = array(); 275 276 foreach ( $categories as $id => $category ) { 277 278 $category_id = absint( $category->term_id ); 279 $sanitized_title = sanitize_text_field( $category->name ); 280 281 $title = ( empty( $sanitized_title ) ) ? __( '[This category has no title]', 'content-visibility' ) : $sanitized_title; 282 283 $categories_data[ $category_id ] = array( 284 'label' => $title, 285 'id' => $category_id, 286 'callback' => array( 'in_category', array( $category_id ) ), 287 'notes' => '', 288 ); 289 } 290 291 return $categories_data; 292 293 }//end get_categories() 294 295 296 /** 297 * An array of tags with their associated callback function which determines if the current post is in this particular tag. 298 * 299 * @since 0.2.5 300 * @return array associative array containing a list of tags. Keys are the ID of the term. 301 */ 302 function get_tags() { 303 304 $tags_args = array( 305 'hide_empty' => false, 306 'orderby' => 'name', 307 'order' => 'ASC', 308 ); 309 310 $tags_args = apply_filters( 'content_visibility_get_tags_args', $tags_args ); 311 312 $tags = \get_tags( $tags_args ); 313 314 if ( false === $tags || empty( $tags ) ) { 315 return array(); 316 } 317 318 $tags_data = array(); 319 320 foreach ( $tags as $id => $tag ) { 321 322 $tag_id = absint( $tag->term_id ); 323 $sanitized_title = sanitize_text_field( $tag->name ); 324 325 $title = ( empty( $sanitized_title ) ) ? __( '[This tag has no title]', 'content-visibility' ) : $sanitized_title; 326 327 $tags_data[ $tag_id ] = array( 328 'label' => $title, 329 'id' => $tag_id, 330 'callback' => array( 'has_tag', array( $tag_id ) ), 331 'notes' => '', 332 ); 333 } 334 335 return $tags_data; 336 337 }//end get_tags() -
content-visibility/trunk/includes/editor/class-editor.php
r2510989 r2568520 122 122 'wp-edit-post', 123 123 'wp-dom-ready', 124 'wp-rich-text', 124 125 ), 125 126 filemtime( plugin_dir_path( dirname( __DIR__ ) ) . 'build/index.js' ), … … 138 139 $content_visibility_args['pages'] = \RichardTape\ContentVisibility\get_pages(); 139 140 $content_visibility_args['posts'] = \RichardTape\ContentVisibility\get_posts(); 141 $content_visibility_args['categories'] = \RichardTape\ContentVisibility\get_categories(); 142 $content_visibility_args['tags'] = \RichardTape\ContentVisibility\get_tags(); 140 143 } 141 144 -
content-visibility/trunk/includes/public/special-page/rule-logic-special-page.php
r2471132 r2568520 81 81 82 82 $matches_any_special_page_rule = (bool) rule_logic_special_page_posts( $rule_value[ $rule ], $block ); 83 break; 84 85 case 'categories': 86 // If we have already returned true from any of these switch statements, bail, as we don't need to do more tests. 87 if ( true === $matches_any_special_page_rule ) { 88 break; 89 } 90 91 $matches_any_special_page_rule = (bool) rule_logic_special_page_categories( $rule_value[ $rule ], $block ); 92 break; 93 94 case 'tags': 95 // If we have already returned true from any of these switch statements, bail, as we don't need to do more tests. 96 if ( true === $matches_any_special_page_rule ) { 97 break; 98 } 99 100 $matches_any_special_page_rule = (bool) rule_logic_special_page_tags( $rule_value[ $rule ], $block ); 83 101 break; 84 102 … … 221 239 222 240 241 /** 242 * Callbackfunction for special page categories. 243 * Test if the current post being shown is in the chosen category list. 244 * 245 * @param array $rule_value_selections The specific selections for this block for this type of specialPage. 246 * @param array $block The current block being evaluated. 247 * 248 * @return bool True If the current URL is found in $rule_value_selections. False otherwise. 249 */ 250 function rule_logic_special_page_categories( $rule_value_selections, $block ) { 251 252 // If there's no rules, then this URL is not in this block selection. 253 if ( empty( $rule_value_selections ) ) { 254 return false; 255 } 256 257 // if ANY of the pages selected in $rule_value_selections are this page, then this function returns true immediately. 258 // So default to false here and if we get past this foreach statement, we return true. 259 $this_url_is_in_passed_selections = false; 260 261 foreach ( $rule_value_selections as $id => $page ) { 262 263 if ( ! isset( $page['value'] ) ) { 264 continue; 265 } 266 267 $category_id = absint( $page['value'] ); 268 269 if ( in_category( $category_id ) ) { 270 return true; 271 } 272 } 273 274 return $this_url_is_in_passed_selections; 275 276 }//end rule_logic_special_page_categories() 277 278 279 /** 280 * Callbackfunction for special page tags. 281 * Test if the current post being shown is in the chosen tags list. 282 * 283 * @param array $rule_value_selections The specific selections for this block for this type of specialPage. 284 * @param array $block The current block being evaluated. 285 * 286 * @return bool True If the current URL is found in $rule_value_selections. False otherwise. 287 */ 288 function rule_logic_special_page_tags( $rule_value_selections, $block ) { 289 290 // If there's no rules, then this URL is not in this block selection. 291 if ( empty( $rule_value_selections ) ) { 292 return false; 293 } 294 295 // if ANY of the pages selected in $rule_value_selections are this page, then this function returns true immediately. 296 // So default to false here and if we get past this foreach statement, we return true. 297 $this_url_is_in_passed_selections = false; 298 299 foreach ( $rule_value_selections as $id => $page ) { 300 301 if ( ! isset( $page['value'] ) ) { 302 continue; 303 } 304 305 $tag_id = absint( $page['value'] ); 306 307 if ( has_tag( $tag_id ) ) { 308 return true; 309 } 310 } 311 312 return $this_url_is_in_passed_selections; 313 314 }//end rule_logic_special_page_tags() 315 223 316 function rule_logic_special_page_generic( $rule_value_selections, $callback ) { 224 317 -
content-visibility/trunk/readme.txt
r2510989 r2568520 2 2 Contributors: iamfriendly 3 3 Donate link: https://girlswhocode.com/ 4 Tags: block, content, visibility, contentvisibility, show, hide4 Tags: contentvisibility, block, content, visibility, show, hide 5 5 Requires at least: 5.0 6 Tested up to: 5. 7.07 Stable tag: 0.2. 46 Tested up to: 5.8.0 7 Stable tag: 0.2.5 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 38 38 Since version 0.1.7 you are now able to control the visibility of your widgets. As long as you have version 9.9 or above of the [Gutenberg plugin](https://wordpress.org/plugins/gutenberg/) you are able to use content visibility on all of your widgets, just like you can with all of your blocks in the content editor. Limit display of your widgets on specific URLs on your site. Want to show a specific text block to only people who are signed in and ONLY on search results? You got it. 39 39 40 Version 0.2.5 adds the ability to show or hide your widgets on posts that are in specific category or tags. 41 40 42 ## Coming Soon 41 43 … … 66 68 67 69 == Changelog == 70 71 = 0.2.5 = 72 * WordPress 5.8.0 compatibility. 73 * Added Category and Tag controls for widgets screen. So now you can you say "show this widget (block) when the post being shown has this tag" or maybe "hide this block when the post being shown is in this category". Thanks to Karl Anderson in the support forum for making this request. 68 74 69 75 = 0.2.4 =
Note: See TracChangeset
for help on using the changeset viewer.