Plugin Directory

Changeset 2568520


Ignore:
Timestamp:
07/20/2021 07:59:03 PM (4 years ago)
Author:
iamfriendly
Message:

Update to version 0.2.5 from GitHub

Location:
content-visibility
Files:
20 edited
1 copied

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-element', '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  
    209209  min-width: 190px;
    210210  font-size: 12px;
    211   line-height: 1.6; }
     211  line-height: 1.6;
     212  box-shadow: none; }
    212213
    213214/*
     
    225226  margin-top: 1rem;
    226227  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; }
    227239
    228240/*
  • 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  
    32113211/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
    32123212/* 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
    32183224
    32193225
     
    32293235var contentVisibilityControls = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["createHigherOrderComponent"])(function (BlockEdit) {
    32303236  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)) {
    32323238      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props);
    32333239    } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
     
    32443250    }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    32453251      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"], {
    32473253      props: props
    32483254    })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
     
    32503256    }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    32513257      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"], {
    32533259      props: props
    32543260    })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Slot"], {
     
    32693275function addContentVisibilityRulesAttribute(settings) {
    32703276  // 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)) {
    32723278    // Run the rules through a filter so we're able to add rules externally.
    32733279    var defaultRules = Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["applyFilters"])('contentVisibility.defaultContentVisibilityRules', {
     
    32763282    }); // Use Lodash's assign to gracefully handle if attributes are undefined
    32773283
    3278     settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_6___default()(settings.attributes, {
     3284    settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, {
    32793285      contentVisibilityRules: {
    32803286        type: 'object',
     
    33003306function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {
    33013307  // 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)) {
    33033309    extraProps.contentVisibilityRules = attributes.contentVisibilityRules;
    33043310  }
     
    33093315Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);
    33103316Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);
     3317/* --------------
     3318
     3319const 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 
     3330registerPlugin( 'block-settings-menu-group-test', {
     3331    render: ContentVisibilityPluginBlockSettingsMenuItem,
     3332} );
     3333
     3334-------------- */
    33113335
    33123336/***/ }),
     
    40074031});
    40084032/* 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
     4067var 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);
    40094142
    40104143/***/ }),
     
    42184351/* 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");
    42194352/* 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
    42204359
    42214360
     
    42324371      setState = _ref.setState,
    42334372      props = _ref.props;
     4373  var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : '';
    42344374  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    42354375    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Special Page', 'content-visibility'),
    42364376    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
    42384378  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    42394379    className: "content-visibility-page-inserter-panel-row"
     
    42444384  }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], {
    42454385    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
    42464390  })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", {
    42474391    className: "special-page-help-intro content-visibility-help-text"
     
    42554399    pages: [],
    42564400    specialPages: [],
    4257     posts: []
     4401    posts: [],
     4402    categories: [],
     4403    tags: []
    42584404  };
    42594405  return defaultRules;
    42604406}
     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
     4441var 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);
    42614516
    42624517/***/ }),
     
    43644619      setState = _ref.setState,
    43654620      props = _ref.props;
     4621  var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : '';
    43664622  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    43674623    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('User Authentication', 'content-visibility'),
    43684624    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
    43704626  }, 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"], {
    43714627    props: props
     
    43854641
    43864642// 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
     4664function 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);
    43874688
    43884689/***/ }),
     
    45224823/***/ }),
    45234824
     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
     4843function 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
    45244870/***/ "./src/helpers/has-parent-with-class.js":
    45254871/*!**********************************************!*\
     
    45594905/***/ }),
    45604906
     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
     4928function 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
    45614970/***/ "./src/helpers/is-valid-blocktype.js":
    45624971/*!*******************************************!*\
     
    47515160/***/ }),
    47525161
     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
    47535173/***/ "@wordpress/element":
    47545174/*!*********************************!*\
  • 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-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/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/tags/0.2.5/content-visibility.php

    r2510989 r2568520  
    1212 * Plugin URI:  https://richardtape.com/content-visibility/
    1313 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible.
    14  * Version:     0.2.4
     14 * Version:     0.2.5
    1515 * Author:      Rich Tape
    1616 * Author URI:  https://richardtape.com/
  • content-visibility/tags/0.2.5/includes/content-visibility.php

    r2489866 r2568520  
    248248
    249249}//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 */
     258function 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 */
     302function 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  
    122122                'wp-edit-post',
    123123                'wp-dom-ready',
     124                'wp-rich-text',
    124125            ),
    125126            filemtime( plugin_dir_path( dirname( __DIR__ ) ) . 'build/index.js' ),
     
    138139            $content_visibility_args['pages']        = \RichardTape\ContentVisibility\get_pages();
    139140            $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();
    140143        }
    141144
  • content-visibility/tags/0.2.5/includes/public/special-page/rule-logic-special-page.php

    r2471132 r2568520  
    8181
    8282                $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 );
    83101                break;
    84102
     
    221239
    222240
     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 */
     250function 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 */
     288function 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
    223316function rule_logic_special_page_generic( $rule_value_selections, $callback ) {
    224317
  • content-visibility/tags/0.2.5/readme.txt

    r2510989 r2568520  
    22Contributors: iamfriendly
    33Donate link: https://girlswhocode.com/
    4 Tags: block, content, visibility, contentvisibility, show, hide
     4Tags: contentvisibility, block, content, visibility, show, hide
    55Requires at least: 5.0
    6 Tested up to: 5.7.0
    7 Stable tag: 0.2.4
     6Tested up to: 5.8.0
     7Stable tag: 0.2.5
    88Requires PHP: 7.0
    99License: GPLv2 or later
     
    3838Since 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.
    3939
     40Version 0.2.5 adds the ability to show or hide your widgets on posts that are in specific category or tags.
     41
    4042## Coming Soon
    4143
     
    6668
    6769== 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.
    6874
    6975= 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-element', '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  
    209209  min-width: 190px;
    210210  font-size: 12px;
    211   line-height: 1.6; }
     211  line-height: 1.6;
     212  box-shadow: none; }
    212213
    213214/*
     
    225226  margin-top: 1rem;
    226227  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; }
    227239
    228240/*
  • 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  
    32113211/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
    32123212/* 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
    32183224
    32193225
     
    32293235var contentVisibilityControls = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["createHigherOrderComponent"])(function (BlockEdit) {
    32303236  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)) {
    32323238      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props);
    32333239    } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
     
    32443250    }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    32453251      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"], {
    32473253      props: props
    32483254    })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
     
    32503256    }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    32513257      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"], {
    32533259      props: props
    32543260    })), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Slot"], {
     
    32693275function addContentVisibilityRulesAttribute(settings) {
    32703276  // 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)) {
    32723278    // Run the rules through a filter so we're able to add rules externally.
    32733279    var defaultRules = Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["applyFilters"])('contentVisibility.defaultContentVisibilityRules', {
     
    32763282    }); // Use Lodash's assign to gracefully handle if attributes are undefined
    32773283
    3278     settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_6___default()(settings.attributes, {
     3284    settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, {
    32793285      contentVisibilityRules: {
    32803286        type: 'object',
     
    33003306function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {
    33013307  // 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)) {
    33033309    extraProps.contentVisibilityRules = attributes.contentVisibilityRules;
    33043310  }
     
    33093315Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);
    33103316Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);
     3317/* --------------
     3318
     3319const 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 
     3330registerPlugin( 'block-settings-menu-group-test', {
     3331    render: ContentVisibilityPluginBlockSettingsMenuItem,
     3332} );
     3333
     3334-------------- */
    33113335
    33123336/***/ }),
     
    40074031});
    40084032/* 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
     4067var 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);
    40094142
    40104143/***/ }),
     
    42184351/* 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");
    42194352/* 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
    42204359
    42214360
     
    42324371      setState = _ref.setState,
    42334372      props = _ref.props;
     4373  var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : '';
    42344374  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    42354375    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Special Page', 'content-visibility'),
    42364376    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
    42384378  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], {
    42394379    className: "content-visibility-page-inserter-panel-row"
     
    42444384  }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], {
    42454385    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
    42464390  })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", {
    42474391    className: "special-page-help-intro content-visibility-help-text"
     
    42554399    pages: [],
    42564400    specialPages: [],
    4257     posts: []
     4401    posts: [],
     4402    categories: [],
     4403    tags: []
    42584404  };
    42594405  return defaultRules;
    42604406}
     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
     4441var 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);
    42614516
    42624517/***/ }),
     
    43644619      setState = _ref.setState,
    43654620      props = _ref.props;
     4621  var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : '';
    43664622  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    43674623    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('User Authentication', 'content-visibility'),
    43684624    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
    43704626  }, 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"], {
    43714627    props: props
     
    43854641
    43864642// 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
     4664function 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);
    43874688
    43884689/***/ }),
     
    45224823/***/ }),
    45234824
     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
     4843function 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
    45244870/***/ "./src/helpers/has-parent-with-class.js":
    45254871/*!**********************************************!*\
     
    45594905/***/ }),
    45604906
     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
     4928function 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
    45614970/***/ "./src/helpers/is-valid-blocktype.js":
    45624971/*!*******************************************!*\
     
    47515160/***/ }),
    47525161
     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
    47535173/***/ "@wordpress/element":
    47545174/*!*********************************!*\
  • 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-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/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  
    1212 * Plugin URI:  https://richardtape.com/content-visibility/
    1313 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible.
    14  * Version:     0.2.4
     14 * Version:     0.2.5
    1515 * Author:      Rich Tape
    1616 * Author URI:  https://richardtape.com/
  • content-visibility/trunk/includes/content-visibility.php

    r2489866 r2568520  
    248248
    249249}//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 */
     258function 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 */
     302function 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  
    122122                'wp-edit-post',
    123123                'wp-dom-ready',
     124                'wp-rich-text',
    124125            ),
    125126            filemtime( plugin_dir_path( dirname( __DIR__ ) ) . 'build/index.js' ),
     
    138139            $content_visibility_args['pages']        = \RichardTape\ContentVisibility\get_pages();
    139140            $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();
    140143        }
    141144
  • content-visibility/trunk/includes/public/special-page/rule-logic-special-page.php

    r2471132 r2568520  
    8181
    8282                $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 );
    83101                break;
    84102
     
    221239
    222240
     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 */
     250function 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 */
     288function 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
    223316function rule_logic_special_page_generic( $rule_value_selections, $callback ) {
    224317
  • content-visibility/trunk/readme.txt

    r2510989 r2568520  
    22Contributors: iamfriendly
    33Donate link: https://girlswhocode.com/
    4 Tags: block, content, visibility, contentvisibility, show, hide
     4Tags: contentvisibility, block, content, visibility, show, hide
    55Requires at least: 5.0
    6 Tested up to: 5.7.0
    7 Stable tag: 0.2.4
     6Tested up to: 5.8.0
     7Stable tag: 0.2.5
    88Requires PHP: 7.0
    99License: GPLv2 or later
     
    3838Since 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.
    3939
     40Version 0.2.5 adds the ability to show or hide your widgets on posts that are in specific category or tags.
     41
    4042## Coming Soon
    4143
     
    6668
    6769== 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.
    6874
    6975= 0.2.4 =
Note: See TracChangeset for help on using the changeset viewer.