Plugin Directory

Changeset 2833193


Ignore:
Timestamp:
12/13/2022 06:23:00 PM (3 years ago)
Author:
iamfriendly
Message:

Update to version 0.2.9 from GitHub

Location:
content-visibility
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • content-visibility/tags/0.2.9/build/index.asset.php

    r2589501 r2833193  
    1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => 'c28fdfc67e7a7bafa09326248c260d87');
     1<?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '020be447b45cb72d83d4347ab15f2ddd');
  • content-visibility/tags/0.2.9/build/index.css

    r2589501 r2833193  
    5858  margin-bottom: 0; }
    5959
    60 .content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {
    61   text-align: right; }
    62 
    6360/*
    6461    Styling for the rule panels
     
    7067  width: 100%; }
    7168
     69/*
     70    It seems WP changed to capitalize labels, and that looks weird for us, so
     71    we'll normalize that.
     72*/
     73.content-visibility-controls.is-opened .content-visibility-control-panel label {
     74  text-transform: none;
     75  font-weight: normal;
     76  font-size: 1em; }
     77
    7278.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {
    7379  border-bottom: 1px solid #e2e4e7; }
     
    109115  height: 24px;
    110116  width: 24px;
    111   margin-left: 105%;
    112   margin-top: 1%;
    113   opacity: 0.25;
     117  position: absolute;
     118  top: 0;
     119  right: -2em;
     120  opacity: 0.2;
    114121  box-shadow: none !important;
    115122  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; }
     
    119126  height: 24px;
    120127  width: 24px;
    121   margin-left: 105%;
    122   margin-top: 1%;
    123   opacity: 0.25;
     128  position: absolute;
     129  top: 0;
     130  right: -2em;
     131  opacity: 0.2;
    124132  box-shadow: none !important;
    125133  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; }
     
    129137*/
    130138.content-visibility-controls-container .content-visibility-help-text {
    131   margin: 1rem 0 0;
     139  margin: 1rem 0 0 !important;
    132140  font-size: 12px;
    133141  font-style: normal;
     
    143151.content-visibility-multi-select {
    144152  width: 100%;
    145   margin: 1rem 0 0 0; }
     153  margin: 1rem 0 0 0;
     154  border: 1px solid #ccc;
     155  padding: 0.25em 0.5em;
     156  background: white; }
     157
     158.content-visibility-multi-select .dropdown-content {
     159  background: white;
     160  z-index: 999; }
    146161
    147162/*
     
    279294.content-visibility-close-popover {
    280295  position: absolute;
    281   top: -2rem;
    282   right: -1rem; }
     296  top: 0;
     297  right: 0; }
    283298
    284299/*
  • content-visibility/tags/0.2.9/build/index.css.map

    r2568520 r2833193  
    1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"AAAA;;;;;;;CAOC;AACD;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,eAAe;EACf,eAAe,EAAE;;AAEnB;EACE,UAAU;EACV,iBAAiB;EACjB,qBAAqB,EAAE;;AAEzB;;CAEC;AACD;EACE,WAAW,EAAE;;AAEf;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;EACE,WAAW;EACX,cAAc;EACd,WAAW;EACX,WAAW,EAAE;;AAEf;;CAEC;AACD;EACE,2BAA2B,EAAE;;AAE/B;EACE,gBAAgB,EAAE;;AAEpB;EACE,iBAAiB,EAAE;;AAErB;;CAEC;AACD;EACE,yBAAyB;EACzB,kBAAkB;EAClB,mBAAmB;EACnB,WAAW,EAAE;;AAEf;EACE,gCAAgC,EAAE;;AAEpC;;CAEC;AACD;EACE,YAAY,EAAE;;AAEhB;EACE,YAAY,EAAE;;AAEhB;;CAEC;AACD;EACE,gBAAgB,EAAE;;AAEpB;;CAEC;AACD;EACE,gBAAgB,EAAE;;AAEpB;EACE,kBAAkB,EAAE;;AAEtB;EACE,gBAAgB,EAAE;;AAEpB;;;;CAIC;AACD;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,2BAA2B;EAC3B,+WAA+W,EAAE;;AAEnX;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,2BAA2B;EAC3B,+fAA+f,EAAE;;AAEngB;;CAEC;AACD;EACE,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,WAAW;EACX,WAAW,EAAE;;AAEf;;;CAGC;AACD;EACE,WAAW;EACX,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,WAAW,EAAE;;AAEf;EACE,eAAe;EACf,eAAe;EACf,wBAAwB,EAAE;;AAE5B;;CAEC;AACD;;;EAGE,uBAAuB,EAAE;;AAE3B;;CAEC;AACD;EACE,iBAAiB,EAAE;;AAErB;EACE,oBAAoB,EAAE;;AAExB;;CAEC;AACD;EACE,YAAY;EACZ,qBAAqB,EAAE;;AAEzB;;CAEC;AACD;EACE,mBAAmB;EACnB,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,YAAY,EAAE;;AAEhB;;;;CAIC;AACD;EACE,yBAAyB;EACzB,cAAc;EACd,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,gBAAgB,EAAE;;AAEpB;;CAEC;AACD;EACE,qBAAqB;EACrB,gBAAgB;EAChB,0BAA0B,EAAE;;AAE9B;;CAEC;AACD;EACE,gBAAgB;EAChB,mBAAmB,EAAE;;AAEvB;;CAEC;AACD;EACE,gYAAgY;EAChY,qBAAqB;EACrB,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,eAAe;EACf,gBAAgB,EAAE;;AAEpB;EACE,aAAa;EACb,YAAY;EACZ,wBAAwB,EAAE;;AAE5B;EACE,iBAAiB;EACjB,gBAAgB;EAChB,gBAAgB,EAAE;;AAEpB;EACE,cAAc;EACd,eAAe;EACf,iBAAiB,EAAE;;AAErB;EACE,kBAAkB;EAClB,QAAQ;EACR,cAAc,EAAE;;AAElB;EACE,iBAAiB;EACjB,aAAa,EAAE;;AAEjB;;CAEC;AACD;EACE,YAAY;EACZ,gBAAgB,EAAE;;AAEpB,8BAA8B;AAC9B;EACE,kBAAkB;EAClB,UAAU;EACV,YAAY,EAAE;;AAEhB;;CAEC;AACD,2CAA2C;AAC3C;EACE,sBAAsB,EAAE;;AAE1B;EACE,gBAAgB,EAAE;;AAEpB,qDAAqD;AACrD;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY,EAAE","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n    Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n  display: block; }\n\n/*\n    Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n  margin: 1rem 0; }\n\n/*\n    Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n  max-width: none;\n  margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n  width: 50%;\n  margin: 0.5em 0 0;\n  display: inline-block; }\n\n/*\n    ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n  width: 100%; }\n\n/*\n    User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n  display: block; }\n\n.content-visibility-user-authenticated-control {\n  width: 100%;\n  display: block;\n  float: none;\n  clear: both; }\n\n/*\n    Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n  margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n  margin-bottom: 0; }\n\n.content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {\n  text-align: right; }\n\n/*\n    Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n  border: 1px solid #e2e4e7;\n  margin-bottom: 1em;\n  background: #fcfcfc;\n  width: 100%; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n  border-bottom: 1px solid #e2e4e7; }\n\n/*\n    When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n  opacity: 0.2; }\n\n.components-disabled {\n  opacity: 0.5; }\n\n/*\n    Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n  margin-bottom: 0; }\n\n/*\n    User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n  margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n  margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n  margin-bottom: 0; }\n\n/*\n    When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n    rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n    Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  margin-left: 105%;\n  margin-top: 1%;\n  opacity: 0.25;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  margin-left: 105%;\n  margin-top: 1%;\n  opacity: 0.25;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n    Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n  margin: 1rem 0 0;\n  font-size: 12px;\n  font-style: normal;\n  color: #757575;\n  clear: both;\n  float: none;\n  width: 100%; }\n\n/*\n    Multi-select component\n    ----------------------    \n*/\n.content-visibility-multi-select {\n  width: 100%;\n  margin: 1rem 0 0 0; }\n\n/*\n    Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n  overflow-x: hidden; }\n\n/*\n    Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n  width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n  max-width: none;\n  margin-right: 0;\n  padding: 0.7rem 0.7rem 0; }\n\n/*\n    Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n  background: transparent; }\n\n/*\n    Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n  padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n  margin-right: 0.5rem; }\n\n/*\n    Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n  height: 20px;\n  display: inline-block; }\n\n/*\n    Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n  margin-top: 0.25rem;\n  padding: 0 0.25rem; }\n\n/*\n    Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n  opacity: 0.5; }\n\n/*\n    Popover content toggle buttons. Make sure they can handle long values as someone may\n    select multiple options. Give max-width to ensure the button's icon is inline.\n    min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n  white-space: break-spaces;\n  max-width: 85%;\n  min-width: 190px;\n  font-size: 12px;\n  line-height: 1.6;\n  box-shadow: none; }\n\n/*\n    If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n  text-decoration: none;\n  line-height: 1.6;\n  text-transform: capitalize; }\n\n/*\n    The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n  margin-top: 1rem;\n  margin-bottom: 1rem; }\n\n/*\n    When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n  content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n  display: inline-block;\n  height: 12px;\n  width: 12px;\n  margin-left: 0.5rem;\n  line-height: 1; }\n\n/*\n    Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n  font-size: 12px;\n  margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n  padding: 1rem;\n  width: 23rem;\n  height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n  text-align: right;\n  margin-top: 1rem;\n  margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n  margin-left: 0;\n  margin-right: 0;\n  padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n  position: relative;\n  top: 3px;\n  color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n  text-align: right;\n  margin-top: 0; }\n\n/*\n    Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n  color: black;\n  font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n  position: absolute;\n  top: -2rem;\n  right: -1rem; }\n\n/*\n    Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n  flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n  margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n  position: relative;\n  top: 4px;\n  opacity: 0.6; }\n"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n    Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n  display: block; }\n\n/*\n    Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n  margin: 1rem 0; }\n\n/*\n    Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n  max-width: none;\n  margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n  width: 50%;\n  margin: 0.5em 0 0;\n  display: inline-block; }\n\n/*\n    ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n  width: 100%; }\n\n/*\n    User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n  display: block; }\n\n.content-visibility-user-authenticated-control {\n  width: 100%;\n  display: block;\n  float: none;\n  clear: both; }\n\n/*\n    Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n  margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n  margin-bottom: 0; }\n\n/*\n    Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n  border: 1px solid #e2e4e7;\n  margin-bottom: 1em;\n  background: #fcfcfc;\n  width: 100%; }\n\n/*\n    It seems WP changed to capitalize labels, and that looks weird for us, so\n    we'll normalize that.\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel label {\n  text-transform: none;\n  font-weight: normal;\n  font-size: 1em; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n  border-bottom: 1px solid #e2e4e7; }\n\n/*\n    When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n  opacity: 0.2; }\n\n.components-disabled {\n  opacity: 0.5; }\n\n/*\n    Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n  margin-bottom: 0; }\n\n/*\n    User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n  margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n  margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n  margin-bottom: 0; }\n\n/*\n    When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n    rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n    Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  position: absolute;\n  top: 0;\n  right: -2em;\n  opacity: 0.2;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  position: absolute;\n  top: 0;\n  right: -2em;\n  opacity: 0.2;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n    Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n  margin: 1rem 0 0 !important;\n  font-size: 12px;\n  font-style: normal;\n  color: #757575;\n  clear: both;\n  float: none;\n  width: 100%; }\n\n/*\n    Multi-select component\n    ----------------------    \n*/\n.content-visibility-multi-select {\n  width: 100%;\n  margin: 1rem 0 0 0;\n  border: 1px solid #ccc;\n  padding: 0.25em 0.5em;\n  background: white; }\n\n.content-visibility-multi-select .dropdown-content {\n  background: white;\n  z-index: 999; }\n\n/*\n    Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n  overflow-x: hidden; }\n\n/*\n    Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n  width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n  max-width: none;\n  margin-right: 0;\n  padding: 0.7rem 0.7rem 0; }\n\n/*\n    Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n  background: transparent; }\n\n/*\n    Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n  padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n  margin-right: 0.5rem; }\n\n/*\n    Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n  height: 20px;\n  display: inline-block; }\n\n/*\n    Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n  margin-top: 0.25rem;\n  padding: 0 0.25rem; }\n\n/*\n    Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n  opacity: 0.5; }\n\n/*\n    Popover content toggle buttons. Make sure they can handle long values as someone may\n    select multiple options. Give max-width to ensure the button's icon is inline.\n    min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n  white-space: break-spaces;\n  max-width: 85%;\n  min-width: 190px;\n  font-size: 12px;\n  line-height: 1.6;\n  box-shadow: none; }\n\n/*\n    If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n  text-decoration: none;\n  line-height: 1.6;\n  text-transform: capitalize; }\n\n/*\n    The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n  margin-top: 1rem;\n  margin-bottom: 1rem; }\n\n/*\n    When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n  content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n  display: inline-block;\n  height: 12px;\n  width: 12px;\n  margin-left: 0.5rem;\n  line-height: 1; }\n\n/*\n    Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n  font-size: 12px;\n  margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n  padding: 1rem;\n  width: 23rem;\n  height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n  text-align: right;\n  margin-top: 1rem;\n  margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n  margin-left: 0;\n  margin-right: 0;\n  padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n  position: relative;\n  top: 3px;\n  color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n  text-align: right;\n  margin-top: 0; }\n\n/*\n    Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n  color: black;\n  font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n  position: absolute;\n  top: 0;\n  right: 0; }\n\n/*\n    Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n  flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n  margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n  position: relative;\n  top: 4px;\n  opacity: 0.6; }\n"],"sourceRoot":""}
  • content-visibility/tags/0.2.9/build/index.js

    r2589501 r2833193  
    176176  \***************************************************************/
    177177/*! no static exports found */
    178 /***/ (function(module, exports) {
    179 
     178/***/ (function(module, exports, __webpack_require__) {
     179
     180var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/toPropertyKey.js");
    180181function _defineProperty(obj, key, value) {
     182  key = toPropertyKey(key);
    181183  if (key in obj) {
    182184    Object.defineProperty(obj, key, {
     
    189191    obj[key] = value;
    190192  }
    191 
    192193  return obj;
    193194}
    194 
    195 module.exports = _defineProperty;
     195module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
    196196
    197197/***/ }),
     
    205205
    206206function _extends() {
    207   module.exports = _extends = Object.assign || function (target) {
     207  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
    208208    for (var i = 1; i < arguments.length; i++) {
    209209      var source = arguments[i];
    210 
    211210      for (var key in source) {
    212211        if (Object.prototype.hasOwnProperty.call(source, key)) {
     
    215214      }
    216215    }
    217 
    218216    return target;
    219   };
    220 
     217  }, module.exports.__esModule = true, module.exports["default"] = module.exports;
    221218  return _extends.apply(this, arguments);
    222219}
    223 
    224 module.exports = _extends;
     220module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
     221
     222/***/ }),
     223
     224/***/ "./node_modules/@babel/runtime/helpers/toPrimitive.js":
     225/*!************************************************************!*\
     226  !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
     227  \************************************************************/
     228/*! no static exports found */
     229/***/ (function(module, exports, __webpack_require__) {
     230
     231var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"];
     232function _toPrimitive(input, hint) {
     233  if (_typeof(input) !== "object" || input === null) return input;
     234  var prim = input[Symbol.toPrimitive];
     235  if (prim !== undefined) {
     236    var res = prim.call(input, hint || "default");
     237    if (_typeof(res) !== "object") return res;
     238    throw new TypeError("@@toPrimitive must return a primitive value.");
     239  }
     240  return (hint === "string" ? String : Number)(input);
     241}
     242module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
     243
     244/***/ }),
     245
     246/***/ "./node_modules/@babel/runtime/helpers/toPropertyKey.js":
     247/*!**************************************************************!*\
     248  !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
     249  \**************************************************************/
     250/*! no static exports found */
     251/***/ (function(module, exports, __webpack_require__) {
     252
     253var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"];
     254var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/toPrimitive.js");
     255function _toPropertyKey(arg) {
     256  var key = toPrimitive(arg, "string");
     257  return _typeof(key) === "symbol" ? key : String(key);
     258}
     259module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
    225260
    226261/***/ }),
     
    236271  "@babel/helpers - typeof";
    237272
    238   if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    239     module.exports = _typeof = function _typeof(obj) {
    240       return typeof obj;
    241     };
    242   } else {
    243     module.exports = _typeof = function _typeof(obj) {
    244       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    245     };
    246   }
    247 
    248   return _typeof(obj);
     273  return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
     274    return typeof obj;
     275  } : function (obj) {
     276    return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
     277  }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
    249278}
    250 
    251 module.exports = _typeof;
    252 
    253 /***/ }),
    254 
    255 /***/ "./node_modules/goober/dist/goober.module.js":
    256 /*!***************************************************!*\
    257   !*** ./node_modules/goober/dist/goober.module.js ***!
    258   \***************************************************/
     279module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
     280
     281/***/ }),
     282
     283/***/ "./node_modules/goober/dist/goober.esm.js":
     284/*!************************************************!*\
     285  !*** ./node_modules/goober/dist/goober.esm.js ***!
     286  \************************************************/
    259287/*! exports provided: css, extractCss, glob, keyframes, setup, styled */
    260288/***/ (function(module, __webpack_exports__, __webpack_require__) {
     
    262290"use strict";
    263291__webpack_require__.r(__webpack_exports__);
    264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; });
     292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return u; });
    265293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractCss", function() { return r; });
    266 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return d; });
    267 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return g; });
    268 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return b; });
    269 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return h; });
    270 let e={data:""},t=t=>{try{let e=t?t.querySelector("#_goober"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement("style")),e.innerHTML=" ",e.id="_goober"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data="",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\/\*[\s\S]*?\*\/|\s{2,}|\n/gm,o=(e,t)=>{let r,a="",l="",n="";for(let c in e){let s=e[c];"object"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):c,l+="@"==c[0]?"f"==c[1]?o(s,c):c+"{"+o(s,"k"==c[1]?"":t)+"}":o(s,r)):"@"==c[0]&&"i"==c[1]?a=c+" "+s+";":n+=o.p?o.p(c.replace(/[A-Z]/g,"-$&").toLowerCase(),s):c.replace(/[A-Z]/g,"-$&").toLowerCase()+":"+s+";"}return n[0]?(r=t?t+"{"+n+"}":n,a+r+l):a+l},n={},c=e=>{let t="";for(let r in e)t+=r+("object"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i="object"==typeof e?c(e):e,u=n[i]||(n[i]="go"+i.split("").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t="object"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,""));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):e}return e+a+(null==n?"":n)},"");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/g.test(s),c.className=i.apply(r,a)+(s?" "+s:""),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}
     294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return b; });
     295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return h; });
     296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return m; });
     297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return j; });
     298let e={data:""},t=t=>"object"==typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data="",l},l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,a=/\/\*[^]*?\*\/|  +/g,n=/\n+/g,o=(e,t)=>{let r="",l="",a="";for(let n in e){let c=e[n];"@"==n[0]?"i"==n[1]?r=n+" "+c+";":l+="f"==n[1]?o(c,n):n+"{"+o(c,"k"==n[1]?"":t)+"}":"object"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=o.p?o.p(n,c):n+":"+c+";")}return r+(t&&a?t+"{"+a+"}":a)+l},c={},s=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,""));)t[4]?o.shift():t[3]?(r=t[3].replace(n," ").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n," ").trim();return o[0]})(e);c[d]=o(p?{["@keyframes "+d]:t}:t,r?"":"."+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):!1===e?"":e}return e+l+(null==n?"":n)},"");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/.test(s),c.className=u.apply(r,l)+(s?" "+s:""),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}
    271299
    272300
     
    21742202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; });
    21752203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectPanel", function() { return SelectPanel; });
    2176 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.module.js");
     2204/* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.esm.js");
    21772205/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
    21782206/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
     
    21802208
    21812209
    2182 var debounce = function debounce(func, wait) {
    2183   var timeout;
    2184   return function () {
    2185     for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    2186       args[_key] = arguments[_key];
     2210const defaultStrings = {
     2211  allItemsAreSelected: "All items are selected.",
     2212  clearSearch: "Clear Search",
     2213  clearSelected: "Clear Selected",
     2214  noOptions: "No options",
     2215  search: "Search",
     2216  selectAll: "Select All",
     2217  selectSomeItems: "Select..."
     2218};
     2219const defaultProps = {
     2220  value: [],
     2221  focusSearchOnOpen: true,
     2222  hasSelectAll: true,
     2223  className: "multi-select",
     2224  debounceDuration: 200,
     2225  options: []
     2226};
     2227const MultiSelectContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createContext({});
     2228const MultiSelectProvider = ({
     2229  props,
     2230  children
     2231}) => {
     2232  const t = key => {
     2233    var _props$overrideString;
     2234
     2235    return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];
     2236  };
     2237
     2238  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectContext.Provider, {
     2239    value: {
     2240      t,
     2241      ...defaultProps,
     2242      ...props
    21872243    }
    2188 
     2244  }, children);
     2245};
     2246const useMultiSelect = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.useContext(MultiSelectContext);
     2247
     2248/**
     2249 * combines classNames in a friendly way
     2250 *
     2251 * @param {*} classes
     2252 */
     2253const cn = (...classes) => classes.join(" ");
     2254
     2255/**
     2256 * similar to `useEffect` but gets triggered only when value changes
     2257 * @param fn executable function on dependency updates
     2258 * @param inputs dependency array
     2259 */
     2260
     2261function useDidUpdateEffect(fn, inputs) {
     2262  const didMountRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false);
     2263  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
     2264    if (didMountRef.current) fn();else didMountRef.current = true;
     2265  }, inputs);
     2266}
     2267
     2268const debounce = (func, wait) => {
     2269  let timeout;
     2270  return function (...args) {
    21892271    clearTimeout(timeout);
    2190     timeout = setTimeout(function () {
     2272    timeout = setTimeout(() => {
    21912273      func.apply(null, args);
    21922274    }, wait);
     
    22132295  }
    22142296
    2215   var cleanFilter = cleanUpText(filter, substitutions);
     2297  const cleanFilter = cleanUpText(filter, substitutions);
    22162298  return options // Filter out undefined or null Options.
    2217   .filter(function (_ref) {
    2218     var label = _ref.label,
    2219         value = _ref.value;
    2220     return label != null && value != null;
    2221   }) // Create a {score, Option} pair for each Option based on its label's
     2299  .filter(({
     2300    label,
     2301    value
     2302  }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's
    22222303  // similarity to the filter text.
    2223   .map(function (option) {
    2224     return {
    2225       option: option,
    2226       score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)
    2227     };
    2228   }) // Only include matches of the entire substring, with a slight
     2304  .map(option => ({
     2305    option: option,
     2306    score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)
     2307  })) // Only include matches of the entire substring, with a slight
    22292308  // affordance for transposition or extra characters.
    2230   .filter(function (pair) {
    2231     return pair.score >= cleanFilter.length - 2;
    2232   }) // Sort 'em by order of their score.
    2233   .sort(function (a, b) {
    2234     return b.score - a.score;
    2235   }) // …and grab the original Options back from their pairs.
    2236   .map(function (pair) {
    2237     return pair.option;
    2238   });
     2309  .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.
     2310  .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.
     2311  .map(pair => pair.option);
    22392312}
    22402313/**
     
    22542327
    22552328function typeaheadSimilarity(a, b) {
    2256   var aLength = a.length;
    2257   var bLength = b.length;
    2258   var table = [];
     2329  const aLength = a.length;
     2330  const bLength = b.length;
     2331  const table = [];
    22592332
    22602333  if (!aLength || !bLength) {
     
    22642337
    22652338  if (aLength < bLength) {
    2266     var _ref2 = [b, a];
    2267     a = _ref2[0];
    2268     b = _ref2[1];
     2339    [a, b] = [b, a];
    22692340  } // Early exit if `a` includes `b`; these will be scored higher than any
    22702341  // other options with the same `b` (filter string), with a preference for
     
    22862357
    22872358
    2288   for (var x = 0; x <= aLength; ++x) {
     2359  for (let x = 0; x <= aLength; ++x) {
    22892360    table[x] = [0];
    22902361  }
    22912362
    2292   for (var y = 0; y <= bLength; ++y) {
     2363  for (let y = 0; y <= bLength; ++y) {
    22932364    table[0][y] = 0;
    22942365  } // Populate the rest of the table with a dynamic programming algorithm.
    22952366
    22962367
    2297   for (var _x = 1; _x <= aLength; ++_x) {
    2298     for (var _y = 1; _y <= bLength; ++_y) {
    2299       table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);
     2368  for (let x = 1; x <= aLength; ++x) {
     2369    for (let y = 1; y <= bLength; ++y) {
     2370      table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);
    23002371    }
    23012372  }
     
    23302401  }
    23312402
    2332   var safeSubstitutions = substitutions; // For Flow.
     2403  const safeSubstitutions = substitutions; // For Flow.
    23332404  // Replace all strings in `safeSubstitutions` with their standardized
    23342405  // counterparts.
    23352406
    2336   return Object.keys(safeSubstitutions).reduce(function (output, substitution) {
    2337     var unsubbed = new RegExp(substitution, "g");
     2407  return Object.keys(safeSubstitutions).reduce((output, substitution) => {
     2408    const unsubbed = new RegExp(substitution, "g");
    23382409    return output.replace(unsubbed, safeSubstitutions[substitution]);
    23392410  }, input);
    23402411}
    23412412
    2342 var strings = {
    2343   selectSomeItems: "Select...",
    2344   allItemsAreSelected: "All items are selected.",
    2345   selectAll: "Select All",
    2346   search: "Search",
    2347   clearSearch: "Clear Search",
    2348   clearSelected: "Clear Selected"
    2349 };
    2350 function getString(key, overrideStrings) {
    2351   return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];
    2352 }
    2353 
    2354 var Cross = function Cross() {
    2355   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
    2356     width: "24",
    2357     height: "24",
    2358     fill: "none",
    2359     stroke: "currentColor",
    2360     strokeWidth: "2",
    2361     className: "dropdown-search-clear-icon gray"
    2362   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
    2363     x1: "18",
    2364     y1: "6",
    2365     x2: "6",
    2366     y2: "18"
    2367   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
    2368     x1: "6",
    2369     y1: "6",
    2370     x2: "18",
    2371     y2: "18"
    2372   }));
    2373 };
    2374 
    2375 var DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2413const Cross = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2414  width: "24",
     2415  height: "24",
     2416  fill: "none",
     2417  stroke: "currentColor",
     2418  strokeWidth: "2",
     2419  className: "dropdown-search-clear-icon gray"
     2420}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
     2421  x1: "18",
     2422  y1: "6",
     2423  x2: "6",
     2424  y2: "18"
     2425}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
     2426  x1: "6",
     2427  y1: "6",
     2428  x2: "18",
     2429  y2: "18"
     2430}));
     2431
     2432const DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    23762433  "& input,& span": {
    23772434    verticalAlign: "middle",
     
    23872444});
    23882445
    2389 var DefaultItemRenderer = function DefaultItemRenderer(_ref) {
    2390   var checked = _ref.checked,
    2391       option = _ref.option,
    2392       onClick = _ref.onClick,
    2393       disabled = _ref.disabled;
    2394   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    2395     className: DefaultRenderer + " item-renderer " + (disabled && "disabled")
    2396   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
    2397     type: "checkbox",
    2398     onChange: onClick,
    2399     checked: checked,
    2400     tabIndex: -1,
    2401     disabled: disabled
    2402   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label));
    2403 };
     2446const DefaultItemRenderer = ({
     2447  checked,
     2448  option,
     2449  onClick,
     2450  disabled
     2451}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     2452  className: cn(DefaultRenderer, "item-renderer", disabled && "disabled")
     2453}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
     2454  type: "checkbox",
     2455  onChange: onClick,
     2456  checked: checked,
     2457  tabIndex: -1,
     2458  disabled: disabled
     2459}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label));
    24042460
    24052461/**
    24062462 * This component represents an individual item in the multi-select drop-down
    24072463 */
    2408 var ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2464const ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    24092465  boxSizing: "border-box",
    24102466  cursor: "pointer",
     
    24202476});
    24212477
    2422 var SelectItem = function SelectItem(_ref) {
    2423   var _ref$itemRenderer = _ref.itemRenderer,
    2424       ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,
    2425       option = _ref.option,
    2426       checked = _ref.checked,
    2427       focused = _ref.focused,
    2428       tabIndex = _ref.tabIndex,
    2429       disabled = _ref.disabled,
    2430       onSelectionChanged = _ref.onSelectionChanged,
    2431       onClick = _ref.onClick;
    2432   var itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
    2433   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2478const SelectItem = ({
     2479  itemRenderer: ItemRenderer = DefaultItemRenderer,
     2480  option,
     2481  checked,
     2482  focused,
     2483  tabIndex,
     2484  disabled,
     2485  onSelectionChanged,
     2486  onClick
     2487}) => {
     2488  const itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2489  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
    24342490    updateFocus(); // eslint-disable-next-line
    2435   }, [focused]);
    2436 
    2437   var toggleChecked = function toggleChecked() {
     2491  }, [checked, focused]);
     2492
     2493  const toggleChecked = () => {
    24382494    onSelectionChanged(!checked);
    24392495  };
    24402496
    2441   var handleClick = function handleClick(e) {
     2497  const handleClick = e => {
    24422498    toggleChecked();
    24432499    onClick(e);
    24442500  };
    24452501
    2446   var updateFocus = function updateFocus() {
     2502  const updateFocus = () => {
    24472503    if (focused && !disabled && itemRef) {
    24482504      itemRef.current.focus();
     
    24502506  };
    24512507
    2452   var handleKeyDown = function handleKeyDown(e) {
     2508  const handleKeyDown = e => {
    24532509    switch (e.which) {
    24542510      case 13: // Enter
     
    24672523
    24682524  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", {
    2469     className: ItemContainer + " select-item " + (checked && "selected"),
     2525    className: cn(ItemContainer, "select-item", checked && "selected"),
    24702526    role: "option",
    24712527    "aria-selected": checked,
     
    24842540 * This component represents an unadorned list of SelectItem (s).
    24852541 */
    2486 var SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2542const SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    24872543  margin: 0,
    24882544  paddingLeft: 0,
     
    24922548  }
    24932549});
    2494 var skipIndex = 2;
    2495 
    2496 var SelectList = function SelectList(_ref) {
    2497   var value = _ref.value,
    2498       onChange = _ref.onChange,
    2499       disabled = _ref.disabled,
    2500       ItemRenderer = _ref.ItemRenderer,
    2501       options = _ref.options,
    2502       focusIndex = _ref.focusIndex,
    2503       _onClick = _ref.onClick;
    2504 
    2505   var handleSelectionChanged = function handleSelectionChanged(option, checked) {
     2550const skipIndex = 2;
     2551
     2552const SelectList = ({
     2553  options,
     2554  focusIndex,
     2555  onClick
     2556}) => {
     2557  const {
     2558    disabled,
     2559    value,
     2560    onChange,
     2561    ItemRenderer
     2562  } = useMultiSelect();
     2563
     2564  const handleSelectionChanged = (option, checked) => {
    25062565    if (disabled) {
    25072566      return;
    25082567    }
    25092568
    2510     onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {
    2511       return o.value !== option.value;
    2512     }));
     2569    onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));
    25132570  };
    25142571
    25152572  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", {
    25162573    className: SelectListUl
    2517   }, options.map(function (o, i) {
    2518     var tabIndex = i + skipIndex;
     2574  }, options.map((o, i) => {
     2575    const tabIndex = i + skipIndex;
    25192576    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", {
    2520       key: o.hasOwnProperty("key") ? o.key : i
     2577      key: (o == null ? void 0 : o.key) || i
    25212578    }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, {
    25222579      focused: focusIndex === tabIndex,
    25232580      tabIndex: tabIndex,
    25242581      option: o,
    2525       onSelectionChanged: function onSelectionChanged(c) {
    2526         return handleSelectionChanged(o, c);
    2527       },
    2528       checked: value.find(function (s) {
    2529         return s.value === o.value;
    2530       }) ? true : false,
    2531       onClick: function onClick(e) {
    2532         return _onClick(e, tabIndex);
    2533       },
     2582      onSelectionChanged: c => handleSelectionChanged(o, c),
     2583      checked: value.find(s => s.value === o.value) ? true : false,
     2584      onClick: e => onClick(e, tabIndex),
    25342585      itemRenderer: ItemRenderer,
    25352586      disabled: o.disabled || disabled
     
    25502601})(FocusType || (FocusType = {}));
    25512602
    2552 var SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2603const SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    25532604  width: "100%",
    25542605  position: "relative",
     
    25622613  }
    25632614});
    2564 var SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2615const SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    25652616  cursor: "pointer",
    25662617  position: "absolute",
     
    25752626  }
    25762627});
    2577 var SelectPanel = function SelectPanel(props) {
    2578   var onChange = props.onChange,
    2579       options = props.options,
    2580       value = props.value,
    2581       customFilterOptions = props.filterOptions,
    2582       selectAllLabel = props.selectAllLabel,
    2583       ItemRenderer = props.ItemRenderer,
    2584       disabled = props.disabled,
    2585       disableSearch = props.disableSearch,
    2586       focusSearchOnOpen = props.focusSearchOnOpen,
    2587       hasSelectAll = props.hasSelectAll,
    2588       overrideStrings = props.overrideStrings,
    2589       ClearIcon = props.ClearIcon,
    2590       debounceDuration = props.debounceDuration;
    2591 
    2592   var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""),
    2593       searchText = _useState[0],
    2594       setSearchText = _useState[1];
    2595 
    2596   var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""),
    2597       searchTextForFilter = _useState2[0],
    2598       setSearchTextForFilter = _useState2[1];
    2599 
    2600   var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),
    2601       focusIndex = _useState3[0],
    2602       setFocusIndex = _useState3[1];
    2603 
    2604   var debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(function (query) {
    2605     return setSearchTextForFilter(query);
    2606   }, debounceDuration), []);
    2607   var selectAllOption = {
    2608     label: selectAllLabel || getString("selectAll", overrideStrings),
     2628const NoOptions = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2629  padding: "var(--rmsc-p)",
     2630  textAlign: "center",
     2631  color: "var(--rmsc-gray)"
     2632});
     2633
     2634const SelectPanel = () => {
     2635  const {
     2636    t,
     2637    onChange,
     2638    options,
     2639    value,
     2640    filterOptions: customFilterOptions,
     2641    selectAllLabel,
     2642    ItemRenderer,
     2643    disabled,
     2644    disableSearch,
     2645    focusSearchOnOpen,
     2646    hasSelectAll,
     2647    ClearIcon,
     2648    debounceDuration
     2649  } = useMultiSelect();
     2650  const searchInputRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2651  const [searchText, setSearchText] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])("");
     2652  const [filteredOptions, setFilteredOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(options);
     2653  const [searchTextForFilter, setSearchTextForFilter] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])("");
     2654  const [focusIndex, setFocusIndex] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);
     2655  const debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(query => setSearchTextForFilter(query), debounceDuration), []);
     2656  const selectAllOption = {
     2657    label: selectAllLabel || t("selectAll"),
    26092658    value: ""
    26102659  };
    26112660
    2612   var selectAllValues = function selectAllValues(checked) {
    2613     var filteredValues = filteredOptions().filter(function (o) {
    2614       return !o.disabled;
    2615     }).map(function (o) {
    2616       return o.value;
    2617     });
     2661  const selectAllValues = checked => {
     2662    const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);
    26182663
    26192664    if (checked) {
    2620       var selectedValues = value.map(function (o) {
    2621         return o.value;
    2622       });
    2623       var finalSelectedValues = [].concat(selectedValues, filteredValues);
    2624       return options.filter(function (_ref) {
    2625         var value = _ref.value;
    2626         return finalSelectedValues.includes(value);
    2627       });
     2665      const selectedValues = value.map(o => o.value);
     2666      const finalSelectedValues = [...selectedValues, ...filteredValues];
     2667      return filteredOptions.filter(o => finalSelectedValues.includes(o.value));
    26282668    }
    26292669
    2630     return value.filter(function (o) {
    2631       return !filteredValues.includes(o.value);
    2632     });
     2670    return value.filter(o => !filteredValues.includes(o.value));
    26332671  };
    26342672
    2635   var selectAllChanged = function selectAllChanged(checked) {
    2636     var newOptions = selectAllValues(checked);
     2673  const selectAllChanged = checked => {
     2674    const newOptions = selectAllValues(checked);
    26372675    onChange(newOptions);
    26382676  };
    26392677
    2640   var handleSearchChange = function handleSearchChange(e) {
     2678  const handleSearchChange = e => {
    26412679    debouncedSearch(e.target.value);
    26422680    setSearchText(e.target.value);
     
    26442682  };
    26452683
    2646   var handleClear = function handleClear() {
     2684  const handleClear = () => {
     2685    var _searchInputRef$curre;
     2686
    26472687    setSearchTextForFilter("");
    26482688    setSearchText("");
     2689    searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();
    26492690  };
    26502691
    2651   var handleItemClicked = function handleItemClicked(index) {
    2652     return setFocusIndex(index);
    2653   };
    2654 
    2655   var handleKeyDown = function handleKeyDown(e) {
     2692  const handleItemClicked = index => setFocusIndex(index);
     2693
     2694  const handleKeyDown = e => {
    26562695    switch (e.which) {
    26572696      case 38:
     
    26812720  };
    26822721
    2683   var handleSearchFocus = function handleSearchFocus() {
     2722  const handleSearchFocus = () => {
    26842723    setFocusIndex(FocusType.SEARCH);
    26852724  };
    26862725
    2687   var filteredOptions = function filteredOptions() {
    2688     return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);
    2689   };
    2690 
    2691   var updateFocus = function updateFocus(offset) {
    2692     var newFocus = focusIndex + offset;
     2726  const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);
     2727
     2728  const updateFocus = offset => {
     2729    let newFocus = focusIndex + offset;
    26932730    newFocus = Math.max(1, newFocus);
    26942731    newFocus = Math.min(newFocus, options.length + 1);
     
    26962733  };
    26972734
    2698   var _useMemo = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () {
    2699     var filteredOptionsList = filteredOptions().filter(function (o) {
    2700       return !o.disabled;
    2701     });
    2702     return [filteredOptionsList.every(function (o) {
    2703       return value.findIndex(function (v) {
    2704         return v.value === o.value;
    2705       }) !== -1;
    2706     }), filteredOptionsList.length !== 0]; // eslint-disable-next-line
    2707   }, [searchText, value]),
    2708       isAllOptionSelected = _useMemo[0],
    2709       hasSelectableOptions = _useMemo[1];
    2710 
     2735  const [isAllOptionSelected, hasSelectableOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => {
     2736    const filteredOptionsList = filteredOptions.filter(o => !o.disabled);
     2737    return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line
     2738  }, [filteredOptions, value]);
     2739  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
     2740    getFilteredOptions().then(setFilteredOptions);
     2741  }, [searchTextForFilter, options]);
    27112742  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    27122743    className: "select-panel",
     
    27172748  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
    27182749    autoFocus: focusSearchOnOpen,
    2719     placeholder: getString("search", overrideStrings),
     2750    placeholder: t("search"),
    27202751    type: "text",
    2721     "aria-describedby": getString("search", overrideStrings),
    2722     onKeyDown: function onKeyDown(e) {
    2723       return e.stopPropagation();
    2724     },
     2752    "aria-describedby": t("search"),
     2753    onKeyDown: e => e.stopPropagation(),
    27252754    onChange: handleSearchChange,
    27262755    onFocus: handleSearchFocus,
    2727     value: searchText
     2756    value: searchText,
     2757    ref: searchInputRef
    27282758  }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
    27292759    type: "button",
    2730     className: SearchClearButton + " search-clear-button",
     2760    className: cn(SearchClearButton, "search-clear-button"),
    27312761    hidden: !searchText,
    27322762    onClick: handleClear,
    2733     "aria-label": getString("clearSearch", overrideStrings)
     2763    "aria-label": t("clearSearch")
    27342764  }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, {
    27352765    focused: focusIndex === 1,
     
    27382768    option: selectAllOption,
    27392769    onSelectionChanged: selectAllChanged,
    2740     onClick: function onClick() {
    2741       return handleItemClicked(0);
    2742     },
     2770    onClick: () => handleItemClicked(1),
    27432771    itemRenderer: ItemRenderer,
    27442772    disabled: disabled
    2745   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, {
    2746     options: filteredOptions(),
     2773  }), filteredOptions.length ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, {
     2774    options: filteredOptions,
    27472775    focusIndex: focusIndex,
    2748     onClick: function onClick(_e, index) {
    2749       return handleItemClicked(index);
    2750     },
    2751     ItemRenderer: ItemRenderer,
    2752     disabled: disabled
    2753   })));
     2776    onClick: (_e, index) => handleItemClicked(index)
     2777  }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     2778    className: cn(NoOptions, "no-options")
     2779  }, t("noOptions")));
    27542780};
    27552781
    2756 function Arrow(_ref) {
    2757   var expanded = _ref.expanded;
    2758   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
    2759     width: "24",
    2760     height: "24",
    2761     fill: "none",
    2762     stroke: "currentColor",
    2763     strokeWidth: "2",
    2764     className: "dropdown-heading-dropdown-arrow gray"
    2765   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", {
    2766     d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9"
    2767   }));
    2768 }
    2769 
    2770 var Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2782const Arrow = ({
     2783  expanded
     2784}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2785  width: "24",
     2786  height: "24",
     2787  fill: "none",
     2788  stroke: "currentColor",
     2789  strokeWidth: "2",
     2790  className: "dropdown-heading-dropdown-arrow gray"
     2791}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", {
     2792  d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9"
     2793}));
     2794
     2795const DropdownHeader = () => {
     2796  const {
     2797    t,
     2798    value,
     2799    options,
     2800    valueRenderer
     2801  } = useMultiSelect();
     2802  const noneSelected = value.length === 0;
     2803  const allSelected = value.length === options.length;
     2804  const customText = valueRenderer && valueRenderer(value, options);
     2805
     2806  const getSelectedText = () => value.map(s => s.label).join(", ");
     2807
     2808  return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
     2809    className: "gray"
     2810  }, customText || t("selectSomeItems")) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? t("allItemsAreSelected") : getSelectedText()));
     2811};
     2812
     2813const Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    27712814  animation: "rotate 2s linear infinite",
    27722815  "& .path": {
     
    27962839  }
    27972840});
    2798 
    2799 function Loading(_ref) {
    2800   var _ref$size = _ref.size,
    2801       size = _ref$size === void 0 ? 24 : _ref$size;
    2802   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    2803     style: {
    2804       width: size,
    2805       marginRight: "0.2rem"
    2806     }
    2807   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2841const Loading = ({
     2842  size = 24
     2843}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
     2844  style: {
    28082845    width: size,
    2809     height: size,
    2810     className: Spinner,
    2811     viewBox: "0 0 50 50",
    2812     style: {
    2813       display: "inline",
    2814       verticalAlign: "middle"
    2815     }
    2816   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", {
    2817     cx: "25",
    2818     cy: "25",
    2819     r: "20",
    2820     fill: "none",
    2821     className: "path"
    2822   })));
    2823 }
     2846    marginRight: "0.2rem"
     2847  }
     2848}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2849  width: size,
     2850  height: size,
     2851  className: Spinner,
     2852  viewBox: "0 0 50 50",
     2853  style: {
     2854    display: "inline",
     2855    verticalAlign: "middle"
     2856  }
     2857}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", {
     2858  cx: "25",
     2859  cy: "25",
     2860  r: "20",
     2861  fill: "none",
     2862  className: "path"
     2863})));
    28242864
    28252865/**
     
    28282868 * drops-down the contentComponent and applies the contentProps.
    28292869 */
    2830 var PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2870const PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28312871  position: "absolute",
    28322872  zIndex: 1,
     
    28422882  }
    28432883});
    2844 var DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2884const DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28452885  position: "relative",
    28462886  outline: 0,
     
    28532893  }
    28542894});
    2855 var DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2895const DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28562896  position: "relative",
    28572897  padding: "0 var(--rmsc-p)",
     
    28692909  }
    28702910});
    2871 var ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2911const ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28722912  cursor: "pointer",
    28732913  background: "none",
     
    28772917});
    28782918
    2879 var Dropdown = function Dropdown(_ref) {
    2880   var children = _ref.children,
    2881       ContentComponent = _ref.contentComponent,
    2882       contentProps = _ref.contentProps,
    2883       isLoading = _ref.isLoading,
    2884       disabled = _ref.disabled,
    2885       shouldToggleOnHover = _ref.shouldToggleOnHover,
    2886       labelledBy = _ref.labelledBy,
    2887       onMenuToggle = _ref.onMenuToggle,
    2888       ArrowRenderer = _ref.ArrowRenderer,
    2889       ClearSelectedIcon = _ref.ClearSelectedIcon,
    2890       defaultIsOpen = _ref.defaultIsOpen,
    2891       isOpen = _ref.isOpen;
    2892 
    2893   var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true),
    2894       isInternalExpand = _useState[0],
    2895       setIsInternalExpand = _useState[1];
    2896 
    2897   var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen),
    2898       expanded = _useState2[0],
    2899       setExpanded = _useState2[1];
    2900 
    2901   var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false),
    2902       hasFocus = _useState3[0],
    2903       setHasFocus = _useState3[1];
    2904 
    2905   var FinalArrow = ArrowRenderer || Arrow;
    2906   var wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
    2907   /* eslint-disable react-hooks/exhaustive-deps */
    2908 
    2909   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2919const Dropdown = () => {
     2920  const {
     2921    t,
     2922    onMenuToggle,
     2923    ArrowRenderer,
     2924    shouldToggleOnHover,
     2925    isLoading,
     2926    disabled,
     2927    onChange,
     2928    labelledBy,
     2929    value,
     2930    isOpen,
     2931    defaultIsOpen,
     2932    ClearSelectedIcon
     2933  } = useMultiSelect();
     2934  const [isInternalExpand, setIsInternalExpand] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true);
     2935  const [expanded, setExpanded] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen);
     2936  const [hasFocus, setHasFocus] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false);
     2937  const FinalArrow = ArrowRenderer || Arrow;
     2938  const wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2939  useDidUpdateEffect(() => {
    29102940    onMenuToggle && onMenuToggle(expanded);
    29112941  }, [expanded]);
    2912   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2942  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
    29132943    if (defaultIsOpen === undefined && typeof isOpen === "boolean") {
    29142944      setIsInternalExpand(false);
     
    29172947  }, [isOpen]);
    29182948
    2919   var handleKeyDown = function handleKeyDown(e) {
     2949  const handleKeyDown = e => {
    29202950    var _wrapper$current;
    29212951
     
    29472977  };
    29482978
    2949   var handleHover = function handleHover(iexpanded) {
     2979  const handleHover = iexpanded => {
    29502980    isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);
    29512981  };
    29522982
    2953   var handleFocus = function handleFocus() {
    2954     return !hasFocus && setHasFocus(true);
    2955   };
    2956 
    2957   var handleBlur = function handleBlur(e) {
     2983  const handleFocus = () => !hasFocus && setHasFocus(true);
     2984
     2985  const handleBlur = e => {
    29582986    if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {
    29592987      setHasFocus(false);
     
    29622990  };
    29632991
    2964   var handleMouseEnter = function handleMouseEnter() {
    2965     return handleHover(true);
    2966   };
    2967 
    2968   var handleMouseLeave = function handleMouseLeave() {
    2969     return handleHover(false);
    2970   };
    2971 
    2972   var toggleExpanded = function toggleExpanded() {
     2992  const handleMouseEnter = () => handleHover(true);
     2993
     2994  const handleMouseLeave = () => handleHover(false);
     2995
     2996  const toggleExpanded = () => {
    29732997    isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);
    29742998  };
    29752999
    2976   var handleClearSelected = function handleClearSelected(e) {
     3000  const handleClearSelected = e => {
    29773001    e.stopPropagation();
    2978     contentProps["onChange"]([]);
     3002    onChange([]);
    29793003    isInternalExpand && setExpanded(false);
    29803004  };
     
    29823006  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    29833007    tabIndex: 0,
    2984     className: DropdownContainer + " dropdown-container",
     3008    className: cn(DropdownContainer, "dropdown-container"),
    29853009    "aria-labelledby": labelledBy,
    29863010    "aria-expanded": expanded,
     
    29943018    onMouseLeave: handleMouseLeave
    29953019  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    2996     className: DropdownHeading + " dropdown-heading",
     3020    className: cn(DropdownHeading, "dropdown-heading"),
    29973021    onClick: toggleExpanded
    29983022  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    29993023    className: "dropdown-heading-value"
    3000   }, children), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), contentProps["value"].length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
     3024  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, null)), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), value.length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
    30013025    type: "button",
    3002     className: ClearSelectedButton + " clear-selected-button",
     3026    className: cn(ClearSelectedButton, "clear-selected-button"),
    30033027    onClick: handleClearSelected,
    3004     "aria-label": getString("clearSelected", contentProps["overrideStrings"])
     3028    disabled: disabled,
     3029    "aria-label": t("clearSelected")
    30053030  }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, {
    30063031    expanded: expanded
    30073032  })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    3008     className: PanelContainer + " dropdown-content"
     3033    className: cn(PanelContainer, "dropdown-content")
    30093034  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    30103035    className: "panel-content"
    3011   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ContentComponent, Object.assign({}, contentProps)))));
     3036  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectPanel, null))));
    30123037};
    30133038
    3014 var DropdownHeader = function DropdownHeader(_ref) {
    3015   var value = _ref.value,
    3016       options = _ref.options,
    3017       valueRenderer = _ref.valueRenderer,
    3018       overrideStrings = _ref.overrideStrings;
    3019   var noneSelected = value.length === 0;
    3020   var allSelected = value.length === options.length;
    3021   var customText = valueRenderer && valueRenderer(value, options);
    3022 
    3023   var getSelectedText = function getSelectedText() {
    3024     return value.map(function (s) {
    3025       return s.label;
    3026     }).join(", ");
    3027   };
    3028 
    3029   return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    3030     className: "gray"
    3031   }, customText || getString("selectSomeItems", overrideStrings)) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? getString("allItemsAreSelected", overrideStrings) : getSelectedText()));
    3032 };
    3033 
    3034 var MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     3039const MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    30353040  "--rmscMain": "#4285f4",
    30363041  "--rmscHover": "#f1f3f5",
     
    30513056});
    30523057
    3053 var MultiSelect = function MultiSelect(_ref) {
    3054   var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,
    3055       focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,
    3056       _ref$hasSelectAll = _ref.hasSelectAll,
    3057       hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,
    3058       shouldToggleOnHover = _ref.shouldToggleOnHover,
    3059       _ref$className = _ref.className,
    3060       className = _ref$className === void 0 ? "multi-select" : _ref$className,
    3061       options = _ref.options,
    3062       value = _ref.value,
    3063       valueRenderer = _ref.valueRenderer,
    3064       overrideStrings = _ref.overrideStrings,
    3065       onChange = _ref.onChange,
    3066       disabled = _ref.disabled,
    3067       ItemRenderer = _ref.ItemRenderer,
    3068       ArrowRenderer = _ref.ArrowRenderer,
    3069       selectAllLabel = _ref.selectAllLabel,
    3070       isLoading = _ref.isLoading,
    3071       disableSearch = _ref.disableSearch,
    3072       filterOptions = _ref.filterOptions,
    3073       labelledBy = _ref.labelledBy,
    3074       onMenuToggle = _ref.onMenuToggle,
    3075       ClearIcon = _ref.ClearIcon,
    3076       _ref$debounceDuration = _ref.debounceDuration,
    3077       debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,
    3078       ClearSelectedIcon = _ref.ClearSelectedIcon,
    3079       defaultIsOpen = _ref.defaultIsOpen,
    3080       isOpen = _ref.isOpen;
    3081   var nvalue = value || [];
    3082   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    3083     className: MultiSelectBox + " " + className
    3084   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, {
    3085     isLoading: isLoading,
    3086     contentComponent: SelectPanel,
    3087     shouldToggleOnHover: shouldToggleOnHover,
    3088     contentProps: {
    3089       ItemRenderer: ItemRenderer,
    3090       options: options,
    3091       value: nvalue,
    3092       hasSelectAll: hasSelectAll,
    3093       selectAllLabel: selectAllLabel,
    3094       onChange: onChange,
    3095       disabled: disabled,
    3096       disableSearch: disableSearch,
    3097       focusSearchOnOpen: focusSearchOnOpen,
    3098       filterOptions: filterOptions,
    3099       overrideStrings: overrideStrings,
    3100       ClearIcon: ClearIcon,
    3101       debounceDuration: debounceDuration
    3102     },
    3103     disabled: disabled,
    3104     labelledBy: labelledBy,
    3105     onMenuToggle: onMenuToggle,
    3106     ArrowRenderer: ArrowRenderer,
    3107     ClearSelectedIcon: ClearSelectedIcon,
    3108     defaultIsOpen: defaultIsOpen,
    3109     isOpen: isOpen
    3110   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, {
    3111     value: nvalue,
    3112     options: options,
    3113     valueRenderer: valueRenderer,
    3114     overrideStrings: overrideStrings
    3115   })));
    3116 };
     3058const MultiSelect = props => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectProvider, {
     3059  props: props
     3060}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     3061  className: cn(MultiSelectBox, props.className || "multi-select")
     3062}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, null)));
    31173063
    31183064/* harmony default export */ __webpack_exports__["default"] = (MultiSelect);
     
    32373183    if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) {
    32383184      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props);
    3239     } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
     3185    }
     3186
     3187    // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
    32403188    // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's
    32413189    // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both
    32423190    // get updated when a block is updated.
    3243 
    3244 
    32453191    var showControls = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? 'show-controls' : 'hide-controls';
    32463192    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_blockEditor__WEBPACK_IMPORTED_MODULE_4__["InspectorControls"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    32653211}, 'contentVisibilityControls');
    32663212Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);
     3213
    32673214/**
    32683215 * Filters registered block settings, extending attributes with our custom data.
     
    32723219 * @return {Object} Filtered block settings.
    32733220 */
    3274 
    32753221function addContentVisibilityRulesAttribute(settings) {
    32763222  // If this is a valid block
     
    32803226      contentVisibilityRulesEnabled: false,
    32813227      userAuthenticated: ''
    3282     }); // Use Lodash's assign to gracefully handle if attributes are undefined
    3283 
     3228    });
     3229
     3230    // Use Lodash's assign to gracefully handle if attributes are undefined
    32843231    settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, {
    32853232      contentVisibilityRules: {
     
    32893236    });
    32903237  }
    3291 
    32923238  return settings;
    32933239} // end addContentVisibilityRulesAttribute()
     
    33033249 * @return {Object} Filtered props applied to save element.
    33043250 */
    3305 
    33063251function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {
    33073252  // If the current block is valid, add our prop.
     
    33093254    extraProps.contentVisibilityRules = attributes.contentVisibilityRules;
    33103255  }
    3311 
    33123256  return extraProps;
    33133257} // end addContentVisibilityRulesPropOnSave()
     
    33153259Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);
    33163260Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);
     3261
    33173262/* --------------
    33183263
     
    33743319})(function (_ref) {
    33753320  var option = _ref.option,
    3376       setState = _ref.setState,
    3377       props = _ref.props;
     3321    setState = _ref.setState,
     3322    props = _ref.props;
    33783323  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    3379 
    33803324  if (!rulesEnabled) {
    33813325    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], {
     
    33833327    }));
    33843328  }
    3385 
    33863329  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], {
    33873330    props: props
    33883331  });
    33893332});
     3333
    33903334/**
    33913335 * Filters registered block settings, extending attributes with our custom data.
     
    33953339 * @return {Object} Filtered block settings.
    33963340 */
    3397 
    33983341function addContentVisibilityAttribute(settings) {
    33993342  // If this is a valid block
     
    34063349    });
    34073350  }
    3408 
    34093351  return settings;
    34103352} // end addContentVisibilityAttribute()
     
    34203362 * @return {Object} Filtered props applied to save element.
    34213363 */
    3422 
    34233364function addBlockVisibilityPropOnSave(extraProps, blockType, attributes) {
    34243365  // If the current block is valid, add our prop.
     
    34263367    extraProps.contentVisibility = attributes.contentVisibility;
    34273368  }
    3428 
    34293369  return extraProps;
    34303370} // end addBlockVisibilityPropOnSave()
     
    34673407
    34683408
    3469 
    3470 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    3471 
    3472 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
    3473 
     3409function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     3410function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    34743411
    34753412
     
    34823419})(function (_ref) {
    34833420  var rulesEnabled = _ref.rulesEnabled,
    3484       setState = _ref.setState,
    3485       props = _ref.props;
     3421    setState = _ref.setState,
     3422    props = _ref.props;
    34863423  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__["ToggleControl"], {
    34873424    label: props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Enabled', 'content-visibility') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Disabled', 'content-visibility'),
     
    34903427      return setState(function (state) {
    34913428        var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules);
    3492 
    34933429        newBVRules.contentVisibilityRulesEnabled = rulesEnabled;
    34943430        props.setAttributes({
    34953431          contentVisibilityRules: newBVRules
    3496         }); // Fire an action so we can see what's happened in other controls. This can be useful,
     3432        });
     3433
     3434        // Fire an action so we can see what's happened in other controls. This can be useful,
    34973435        // for example when setting rules for roles - pointless if a user isn't signed in.
    3498 
    3499         Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); // Sets the state
    3500 
     3436        Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props);
     3437
     3438        // Sets the state
    35013439        return {
    35023440          rulesEnabled: !state.rulesEnabled
     
    35063444  });
    35073445});
     3446
    35083447/**
    35093448 * Filters registered block settings, extending attributes with our custom data.
     
    35133452 * @return {Object} Filtered block settings.
    35143453 */
    3515 
    35163454function addContentVisibilityRulesEnabledAttribute(settings) {
    35173455  // If this is a valid block
     
    35243462    });
    35253463  }
    3526 
    35273464  return settings;
    35283465} // end addContentVisibilityRulesEnabledAttribute()
     
    35383475 * @return {Object} Filtered props applied to save element.
    35393476 */
    3540 
    35413477function addContentVisibilityRulesEnabledPropOnSave(extraProps, blockType, attributes) {
    35423478  // If the current block is valid, add our prop.
     
    35443480    extraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;
    35453481  }
    3546 
    35473482  return extraProps;
    35483483} // end addContentVisibilityRulesEnabledPropOnSave()
     
    35553490 * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.
    35563491 */
    3557 
    35583492var withCustomClassName = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["createHigherOrderComponent"])(function (BlockListBlock) {
    35593493  return function (props) {
     
    35613495      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, props);
    35623496    }
    3563 
    35643497    var iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;
    35653498    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, props, {
     
    36053538})(function (_ref) {
    36063539  var option = _ref.option,
    3607       setState = _ref.setState,
    3608       props = _ref.props;
     3540    setState = _ref.setState,
     3541    props = _ref.props;
    36093542  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    36103543  var contentVisibility = props.attributes.hasOwnProperty('contentVisibility');
    3611 
    36123544  if (!rulesEnabled || !contentVisibility) {
    36133545    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], {
     
    36153547    }));
    36163548  }
    3617 
    36183549  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], {
    36193550    props: props
    36203551  });
    36213552});
     3553
    36223554/**
    36233555 * Render the <ContentVisibilityUserAuthenticationControl> component by adding
     
    36263558 * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.
    36273559 */
    3628 
    36293560function BlockVisibilityUserAuthenitcationFill() {
    36303561  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], {
     
    36353566    });
    36363567  });
    3637 } // Add our component to the Slot provided by BlockVisibilityControls
    3638 
    3639 
     3568}
     3569
     3570// Add our component to the Slot provided by BlockVisibilityControls
    36403571Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', {
    36413572  render: BlockVisibilityUserAuthenitcationFill
     
    36633594
    36643595
    3665 
    3666 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    3667 
    3668 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
     3596function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     3597function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    36693598
    36703599
     
    37083637})(function (_ref) {
    37093638  var option = _ref.option,
    3710       setState = _ref.setState,
    3711       props = _ref.props,
    3712       data = _ref.data,
    3713       labelledBy = _ref.labelledBy,
    3714       type = _ref.type;
    3715 
     3639    setState = _ref.setState,
     3640    props = _ref.props,
     3641    data = _ref.data,
     3642    labelledBy = _ref.labelledBy,
     3643    type = _ref.type;
    37163644  /**
    37173645   * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for
     
    37313659    });
    37323660  };
    3733 
    37343661  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", {
    37353662    className: "content-visibility-multi-select"
     
    37413668    ItemRenderer: function ItemRenderer(_ref2) {
    37423669      var checked = _ref2.checked,
    3743           option = _ref2.option,
    3744           onClick = _ref2.onClick,
    3745           disabled = _ref2.disabled;
     3670        option = _ref2.option,
     3671        onClick = _ref2.onClick,
     3672        disabled = _ref2.disabled;
    37463673      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", {
    37473674        className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled")
     
    37533680        disabled: disabled
    37543681      }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label));
    3755     } // isOpen={ true }
    3756 
     3682    }
     3683    // isOpen={ true }
    37573684  }));
    37583685});
     
    37863713})(function (_ref) {
    37873714  var option = _ref.option,
    3788       setState = _ref.setState,
    3789       props = _ref.props;
     3715    setState = _ref.setState,
     3716    props = _ref.props;
    37903717  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    37913718    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Shown or Hidden', 'content-visibility-user-role'),
     
    38513778})(function (_ref) {
    38523779  var isVisible = _ref.isVisible,
    3853       setState = _ref.setState,
    3854       props = _ref.props;
    3855 
     3780    setState = _ref.setState,
     3781    props = _ref.props;
    38563782  /**
    38573783   * Our data, passed from PHP and manipulated to be useful here in JS.
    38583784   */
    38593785  var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])();
     3786
    38603787  /**
    38613788   * This controls the key used where the data is stored.
    38623789   */
    3863 
    38643790  var type = 'pages';
     3791
    38653792  /**
    38663793   * Helps with the content of the inserter button.
    38673794   */
    3868 
    38693795  var niceName = {
    38703796    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'),
    38713797    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility')
    38723798  };
     3799
    38733800  /**
    38743801   * Toggle the visible state. Detemines whether the popup is open or not.
    38753802   */
    3876 
    38773803  var toggleVisible = function toggleVisible() {
    38783804    setState(function (state) {
     
    38823808    });
    38833809  };
    3884 
    38853810  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    38863811    className: "content-visibility-special-page-inserter"
     
    39603885})(function (_ref) {
    39613886  var isVisible = _ref.isVisible,
    3962       setState = _ref.setState,
    3963       props = _ref.props;
    3964 
     3887    setState = _ref.setState,
     3888    props = _ref.props;
    39653889  /**
    39663890   * Our data, passed from PHP and manipulated to be useful here in JS.
    39673891   */
    39683892  var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])();
     3893
    39693894  /**
    39703895   * This controls the key used where the data is stored.
    39713896   */
    3972 
    39733897  var type = 'posts';
     3898
    39743899  /**
    39753900   * Helps with the content of the inserter button.
    39763901   */
    3977 
    39783902  var niceName = {
    39793903    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'),
    39803904    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility')
    39813905  };
     3906
    39823907  /**
    39833908   * Toggle the visible state. Detemines whether the popup is open or not.
    39843909   */
    3985 
    39863910  var toggleVisible = function toggleVisible() {
    39873911    setState(function (state) {
     
    39913915    });
    39923916  };
    3993 
    39943917  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    39953918    className: "content-visibility-special-page-inserter"
     
    40693992})(function (_ref) {
    40703993  var isVisible = _ref.isVisible,
    4071       setState = _ref.setState,
    4072       props = _ref.props;
    4073 
     3994    setState = _ref.setState,
     3995    props = _ref.props;
    40743996  /**
    40753997   * Our data, passed from PHP and manipulated to be useful here in JS.
    40763998   */
    40773999  var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4000
    40784001  /**
    40794002   * This controls the key used where the data is stored.
    40804003   */
    4081 
    40824004  var type = 'categories';
     4005
    40834006  /**
    40844007   * Helps with the content of the inserter button.
    40854008   */
    4086 
    40874009  var niceName = {
    40884010    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'),
    40894011    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility')
    40904012  };
     4013
    40914014  /**
    40924015   * Toggle the visible state. Detemines whether the popup is open or not.
    40934016   */
    4094 
    40954017  var toggleVisible = function toggleVisible() {
    40964018    setState(function (state) {
     
    41004022    });
    41014023  };
    4102 
    41034024  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    41044025    className: "content-visibility-special-page-inserter"
     
    41744095})(function (_ref) {
    41754096  var option = _ref.option,
    4176       setState = _ref.setState,
    4177       props = _ref.props;
     4097    setState = _ref.setState,
     4098    props = _ref.props;
    41784099  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    41794100  var contentVisibility = props.attributes.hasOwnProperty('contentVisibility');
    4180 
    41814101  if (!rulesEnabled || !contentVisibility) {
    41824102    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], {
     
    41844104    }));
    41854105  }
    4186 
    41874106  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], {
    41884107    props: props
    41894108  });
    41904109});
     4110
    41914111/**
    41924112 * Render the <ContentVisibilitySpecialPageControls> component by adding
     
    41954115 * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.
    41964116 */
    4197 
    41984117function ContentVisibilitySpecialPageFill() {
    41994118  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], {
     
    42044123    });
    42054124  });
    4206 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.
    4207 
    4208 
     4125}
     4126
     4127// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.
    42094128if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) {
    42104129  // Add our component to the Slot provided by BlockVisibilityControls
     
    42514170})(function (_ref) {
    42524171  var isVisible = _ref.isVisible,
    4253       setState = _ref.setState,
    4254       props = _ref.props;
    4255 
     4172    setState = _ref.setState,
     4173    props = _ref.props;
    42564174  /**
    42574175   * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages
     
    42594177   */
    42604178  var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4179
    42614180  /**
    42624181   * This controls the key used where the data is stored.
    42634182   */
    4264 
    42654183  var type = 'specialPages';
     4184
    42664185  /**
    42674186   * Helps with the content of the inserter button.
    42684187   */
    4269 
    42704188  var niceName = {
    42714189    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'),
    42724190    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility')
    42734191  };
     4192
    42744193  /**
    42754194   * Toggle the visible state. Detemines whether the popup is open or not.
    42764195   */
    4277 
    42784196  var toggleVisible = function toggleVisible() {
    42794197    setState(function (state) {
     
    42834201    });
    42844202  };
    4285 
    42864203  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    42874204    className: "content-visibility-special-page-inserter"
     
    43694286})(function (_ref) {
    43704287  var option = _ref.option,
    4371       setState = _ref.setState,
    4372       props = _ref.props;
     4288    setState = _ref.setState,
     4289    props = _ref.props;
    43734290  var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : '';
    43744291  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    43914308    className: "special-page-help-intro content-visibility-help-text"
    43924309  }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility')));
    4393 }); // Register our visibility rule in the main rules object.
    4394 
     4310});
     4311
     4312// Register our visibility rule in the main rules object.
    43954313Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule);
    4396 
    43974314function registerSpecialPageVisibilityRule(defaultRules) {
    43984315  defaultRules.specialPage = {
     
    44434360})(function (_ref) {
    44444361  var isVisible = _ref.isVisible,
    4445       setState = _ref.setState,
    4446       props = _ref.props;
    4447 
     4362    setState = _ref.setState,
     4363    props = _ref.props;
    44484364  /**
    44494365   * Our data, passed from PHP and manipulated to be useful here in JS.
    44504366   */
    44514367  var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4368
    44524369  /**
    44534370   * This controls the key used where the data is stored.
    44544371   */
    4455 
    44564372  var type = 'tags';
     4373
    44574374  /**
    44584375   * Helps with the content of the inserter button.
    44594376   */
    4460 
    44614377  var niceName = {
    44624378    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'),
    44634379    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility')
    44644380  };
     4381
    44654382  /**
    44664383   * Toggle the visible state. Detemines whether the popup is open or not.
    44674384   */
    4468 
    44694385  var toggleVisible = function toggleVisible() {
    44704386    setState(function (state) {
     
    44744390    });
    44754391  };
    4476 
    44774392  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    44784393    className: "content-visibility-special-page-inserter"
     
    45414456
    45424457
    4543 
    4544 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    4545 
    4546 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
    4547 
     4458function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     4459function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    45484460
    45494461
     
    45544466})(function (_ref) {
    45554467  var option = _ref.option,
    4556       setState = _ref.setState,
    4557       props = _ref.props;
     4468    setState = _ref.setState,
     4469    props = _ref.props;
    45584470  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["RadioControl"], {
    45594471    label: "",
     
    45734485        option: option
    45744486      });
    4575 
    45764487      var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules);
    4577 
    45784488      newBVRules.userAuthenticated = option;
    45794489      props.setAttributes({
    45804490        contentVisibilityRules: newBVRules
    4581       }); // Fire an action so we can see what's happened in other controls. This can be useful,
     4491      });
     4492
     4493      // Fire an action so we can see what's happened in other controls. This can be useful,
    45824494      // for example when setting rules for roles - pointless if a user isn't signed in.
    4583 
    45844495      Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props);
    45854496    }
     
    46174528})(function (_ref) {
    46184529  var option = _ref.option,
    4619       setState = _ref.setState,
    4620       props = _ref.props;
     4530    setState = _ref.setState,
     4531    props = _ref.props;
    46214532  var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : '';
    46224533  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    46564567/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    46574568
     4569
    46584570/**
    46594571 * PHP sends through a list of all the categories on the site. We massage that data to be
     
    46614573 *
    46624574 */
    4663 
    46644575function getCategories() {
    46654576  var categories = [];
    4666 
    46674577  if (ContentVisibility.categories.length === 0) {
    46684578    return [{
     
    46724582    }];
    46734583  }
    4674 
    46754584  for (var category in ContentVisibility.categories) {
    46764585    categories.push({
     
    46804589    });
    46814590  }
    4682 
    46834591  return categories;
    46844592} // end getCategories()
    4685 
    46864593
    46874594/* harmony default export */ __webpack_exports__["default"] = (getCategories);
     
    47014608/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    47024609
     4610
    47034611/**
    47044612 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be
     
    47064614 *
    47074615 */
    4708 
    47094616function getPages() {
    47104617  var pages = [];
    4711 
    47124618  if (ContentVisibility.pages.length === 0) {
    47134619    return [{
     
    47174623    }];
    47184624  }
    4719 
    47204625  for (var page in ContentVisibility.pages) {
    47214626    pages.push({
     
    47254630    });
    47264631  }
    4727 
    47284632  return pages;
    47294633} // end getPages()
    4730 
    47314634
    47324635/* harmony default export */ __webpack_exports__["default"] = (getPages);
     
    47464649/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    47474650
     4651
    47484652/**
    47494653 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be
     
    47514655 *
    47524656 */
    4753 
    47544657function getPosts() {
    47554658  var posts = [];
    4756 
    47574659  if (ContentVisibility.posts.length === 0) {
    47584660    return [{
     
    47624664    }];
    47634665  }
    4764 
    47654666  for (var post in ContentVisibility.posts) {
    47664667    posts.push({
     
    47704671    });
    47714672  }
    4772 
    47734673  return posts;
    47744674} // end getPosts()
    4775 
    47764675
    47774676/* harmony default export */ __webpack_exports__["default"] = (getPosts);
     
    47944693
    47954694
     4695
    47964696/**
    47974697 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages
     
    47994699 *
    48004700 */
    4801 
    48024701function getSpecialPages() {
    48034702  var specialPages = [];
    4804 
    48054703  for (var specialPage in ContentVisibility.specialPages) {
    48064704    specialPages.push({
     
    48144712    });
    48154713  }
    4816 
    48174714  return specialPages;
    48184715} // end getSpecialPages()
    4819 
    48204716
    48214717/* harmony default export */ __webpack_exports__["default"] = (getSpecialPages);
     
    48354731/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    48364732
     4733
    48374734/**
    48384735 * PHP sends through a list of all the tags on the site. We massage that data to be
     
    48404737 *
    48414738 */
    4842 
    48434739function getTags() {
    48444740  var tags = [];
    4845 
    48464741  if (ContentVisibility.tags.length === 0) {
    48474742    return [{
     
    48514746    }];
    48524747  }
    4853 
    48544748  for (var tag in ContentVisibility.tags) {
    48554749    tags.push({
     
    48594753    });
    48604754  }
    4861 
    48624755  return tags;
    48634756} // end getTags()
    4864 
    48654757
    48664758/* harmony default export */ __webpack_exports__["default"] = (getTags);
     
    48794771/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
    48804772/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
    4881 
    48824773
    48834774/**
     
    49004791} //end hasParentWithClass()
    49014792
    4902 
    49034793/* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass);
    49044794
     
    49174807/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__);
    49184808
     4809
    49194810/**
    49204811 * Determine if the passed block props contain rules of the passed type.
     
    49254816 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.
    49264817 */
    4927 
    49284818function hasRules(props, type) {
    49294819  if (!props.attributes.contentVisibilityRules) {
    49304820    return false;
    49314821  }
    4932 
    49334822  if (!props.attributes.contentVisibilityRules[type]) {
    49344823    return false;
    4935   } // Default to false. Passed through a filter later.
    4936 
    4937 
     4824  }
     4825
     4826  // Default to false. Passed through a filter later.
    49384827  var hasRules = false;
    4939 
    49404828  switch (type) {
    49414829    case 'userAuthenticated':
     
    49434831        hasRules = true;
    49444832      }
    4945 
    49464833      break;
    4947 
    49484834    case 'specialPage':
    4949       var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; // If *any* of the special pages contains rules, then this is true. Is an array of arrays.
    4950 
    4951       var specialPageRulesValues = Object.values(allSpecialPageRules); // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.
    4952 
     4835      var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;
     4836
     4837      // If *any* of the special pages contains rules, then this is true. Is an array of arrays.
     4838      var specialPageRulesValues = Object.values(allSpecialPageRules);
     4839
     4840      // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.
    49534841      hasRules = specialPageRulesValues.some(function (el) {
    49544842        return el.length > 0;
    49554843      });
    49564844      break;
    4957 
    49584845    default:
    49594846      break;
    49604847  }
    4961 
    49624848  return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type);
    49634849} // end hasRules()
    4964 
    49654850
    49664851/* harmony default export */ __webpack_exports__["default"] = (hasRules);
     
    49874872} // end isValidBlockType()
    49884873
    4989 
    49904874/* harmony default export */ __webpack_exports__["default"] = (isValidBlockType);
    49914875
     
    50034887/* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js");
    50044888
     4889
    50054890/**
    50064891 * The Popup component closes if it loses focus by default. For us, we want to ensure it
     
    50114896 * @return null
    50124897 */
    5013 
    50144898var keepPopupOpen = function keepPopupOpen(event) {
    50154899  if (false === event) {
    50164900    return;
    5017   } // Determine if what has been clicked on is in the popover or not.
    5018 
    5019 
     4901  }
     4902
     4903  // Determine if what has been clicked on is in the popover or not.
    50204904  var eTarget = event.target;
    5021 
    50224905  if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) {
    50234906    event.stopPropagation();
    50244907  }
    5025 
    50264908  return;
    50274909};
    5028 
    50294910/* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen);
    50304911
     
    50434924/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    50444925
     4926
    50454927/**
    50464928 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are
     
    50554937 * @return string the text to be used for the button.
    50564938 */
    5057 
    50584939var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) {
    50594940  // if nothing is set, return a prompt to select special pages.
     
    50614942    return defaultVal;
    50624943  }
    5063 
    50644944  var shownOrHidden = props.attributes.contentVisibility;
    50654945  var specialPages = props.attributes.contentVisibilityRules.specialPage[type];
     
    50694949  return insertText;
    50704950};
    5071 
    50724951/* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText);
    50734952
     
    50934972  if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) {
    50944973    return 'content-visibility-special-page-inserter-toggle';
    5095   } // We have some items selected, so we have a couple classes.
    5096 
    5097 
     4974  }
     4975
     4976  // We have some items selected, so we have a couple classes.
    50984977  return 'content-visibility-special-page-inserter-toggle has-items';
    50994978};
    5100 
    51014979/* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass);
    51024980
  • content-visibility/tags/0.2.9/build/index.js.map

    r2589501 r2833193  
    1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/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 || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n    // Add our component to the Slot provided by BlockVisibilityControls\n    registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n     * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n     */\n    const specialPages = getSpecialPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'specialPages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Special Page', 'content-visibility' ),\n        plural: __( 'Special Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"text-page\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n                        <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n                        { specialPages.map( specialPage => (\n                            <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n                        ) ) }\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n    option: [],\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'Special Page', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n        >\n\n            <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n                <SpecialPagePageInserter props={ props } />\n                <PagePageInserter props={ props } />\n                <PostPageInserter props={ props } />\n                <CategoryPageInserter props={ props } />\n                <TagPageInserter props={ props } />\n            </PanelRow>\n\n            { props.attributes.contentVisibility && (\n                <p className=\"special-page-help-intro content-visibility-help-text\">\n                    { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n                </p>\n            ) }\n\n        </PanelBody>\n    );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n    defaultRules.specialPage = {\n        pages: [],\n        specialPages: [],\n        posts: [],\n        categories: [],\n        tags: []\n    };\n\n    return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getTags();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'tags';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Tag', 'content-visibility' ),\n        plural: __( 'Tags', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"tag\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-tags-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n\n        <RadioControl\n            label=''\n            help=''\n            className=\"content-visibility-user-authenticated-control\"\n            selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n            options={ [\n                { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n                { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n            ] }\n            onChange={ ( option ) => {\n\n                // Set the state and props.\n                setState( { option } );\n\n                let newBVRules = { ...props.attributes.contentVisibilityRules };\n                newBVRules.userAuthenticated = option;\n\n                props.setAttributes( {\n                    contentVisibilityRules: newBVRules,\n                } );\n\n                // Fire an action so we can see what's happened in other controls. This can be useful,\n                // for example when setting rules for roles - pointless if a user isn't signed in.\n                doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n            } }\n        />\n\n    );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'User Authentication', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n        >\n            <PanelRow>\n                <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n                { props.attributes.contentVisibility && (\n                    <p className=\"user-auth-help-intro content-visibility-help-text\">\n                        { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n                    </p>\n                ) }\n\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n    const categories = [];\n\n    if ( ContentVisibility.categories.length === 0 ) {\n        return [ {\n            label: __( 'No categories found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const category in ContentVisibility.categories ) {\n    \n        categories.push( { \n            label: ContentVisibility.categories[category].label,\n            value: ContentVisibility.categories[category].id,\n            notes: ContentVisibility.categories[category].notes\n        } );\n    \n    }\n\n    return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n    const pages = [];\n\n    if ( ContentVisibility.pages.length === 0 ) {\n        return [ {\n            label: __( 'No pages found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const page in ContentVisibility.pages ) {\n    \n        pages.push( { \n            label: ContentVisibility.pages[page].label,\n            value: ContentVisibility.pages[page].id,\n            notes: ContentVisibility.pages[page].notes\n        } );\n    \n    }\n\n    return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n    const posts = [];\n\n    if ( ContentVisibility.posts.length === 0 ) {\n        return [ {\n            label: __( 'No posts found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const post in ContentVisibility.posts ) {\n    \n        posts.push( { \n            label: ContentVisibility.posts[post].label,\n            value: ContentVisibility.posts[post].id,\n            notes: ContentVisibility.posts[post].notes\n        } );\n    \n    }\n\n    return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n    const specialPages = [];\n\n    for ( const specialPage in ContentVisibility.specialPages ) {\n    \n        specialPages.push( { \n            label: ContentVisibility.specialPages[specialPage].label,\n            value: ContentVisibility.specialPages[specialPage].keyValue,\n            notes: ContentVisibility.specialPages[specialPage].notes,\n            icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n        } );\n    \n    }\n\n    return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n    const tags = [];\n\n    if ( ContentVisibility.tags.length === 0 ) {\n        return [ {\n            label: __( 'No tags found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const tag in ContentVisibility.tags ) {\n    \n        tags.push( { \n            label: ContentVisibility.tags[tag].label,\n            value: ContentVisibility.tags[tag].id,\n            notes: ContentVisibility.tags[tag].notes\n        } );\n    \n    }\n\n    return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n    // SVGs are weird, man.\n    if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n        return true;\n    } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n        return element.parentNode && hasParentWithClass( element.parentNode, classname );\n    } else {\n        return false;\n    }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n    if ( ! props.attributes.contentVisibilityRules ) {\n        return false;\n    }\n\n    if ( ! props.attributes.contentVisibilityRules[type] ) {\n        return false;\n    }\n\n    // Default to false. Passed through a filter later.\n    let hasRules = false;\n\n    switch ( type ) {\n        \n        case 'userAuthenticated':\n\n            if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n                hasRules = true;\n            }\n\n            break;\n        \n        case 'specialPage':\n\n            let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n            // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n            let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n            // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n            hasRules = specialPageRulesValues.some( function( el ) {\n                return el.length > 0;\n            });\n\n            break;\n\n        default:\n            break;\n    }\n\n    return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n    const invalidBlockTypes = [\n        'something/unsupported',\n    ];\n\n    return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n    if ( false === event ) {\n        return;\n    }\n\n    // Determine if what has been clicked on is in the popover or not.\n    let eTarget = event.target;\n\n    if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n        event.stopPropagation();\n    }\n\n    return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n *                        object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n    \n    // if nothing is set, return a prompt to select special pages.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return defaultVal;\n    }\n\n    let shownOrHidden     = props.attributes.contentVisibility;\n    let specialPages      = props.attributes.contentVisibilityRules.specialPage[type];    \n    let specialPagesCount = specialPages.length;\n\n    let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n    let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount  + ' ' + niceType;\n\n    return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n    // If we don't have any items selected, just basic class.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return 'content-visibility-special-page-inserter-toggle';\n    }\n\n    // We have some items selected, so we have a couple classes.\n    return 'content-visibility-special-page-inserter-toggle has-items';\n    \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.esm.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,+G;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wG;;;;;;;;;;;ACdA,cAAc,mBAAO,CAAC,oEAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4G;;;;;;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAK,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B,4CAAK;;AAElC;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAM;AAC5B,EAAE,uDAAS;AACX,kCAAkC;AAClC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,kDAAkD,cAAc;AACnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,iBAAiB,cAAc;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,4CAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;;AAET;AACA;AACA;AACA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,oDAAM;AACxB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,2CAA2C,kDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B,kDAAG;AAClC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,oDAAM;AAC/B,sCAAsC,sDAAQ;AAC9C,gDAAgD,sDAAQ;AACxD,wDAAwD,sDAAQ;AAChE,sCAAsC,sDAAQ;AAC9C,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,qDAAO;AAC7D;AACA,gIAAgI;AAChI,GAAG;AACH,EAAE,uDAAS;AACX;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,4BAA4B,4CAAK;AACpC;AACA;AACA;AACA,GAAG,IAAI,4CAAK;AACZ;AACA,GAAG;AACH;;AAEA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,wCAAwC,4CAAK;AAChD;;AAEA,6BAA6B,kDAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD,sDAAQ;AAC1D,kCAAkC,sDAAQ;AAC1C,kCAAkC,sDAAQ;AAC1C;AACA,kBAAkB,oDAAM;AACxB;AACA;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,oDAAoD,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/|  +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isIndex = require('./_isIndex'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n    eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n    isLength = require('./isLength'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n    nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n    overRest = require('./_overRest'),\n    setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n    defineProperty = require('./_defineProperty'),\n    identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n    baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n    isArrayLike = require('./isArrayLike'),\n    isIndex = require('./_isIndex'),\n    isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n    shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n    copyObject = require('./_copyObject'),\n    createAssigner = require('./_createAssigner'),\n    isArrayLike = require('./isArrayLike'),\n    isPrototype = require('./_isPrototype'),\n    keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * function Bar() {\n *   this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n  if (isPrototype(source) || isArrayLike(source)) {\n    copyObject(source, keys(source), object);\n    return;\n  }\n  for (var key in source) {\n    if (hasOwnProperty.call(source, key)) {\n      assignValue(object, key, source[key]);\n    }\n  }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n    isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n    isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n    stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n    baseUnary = require('./_baseUnary'),\n    nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeys = require('./_baseKeys'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nconst defaultStrings = {\n  allItemsAreSelected: \"All items are selected.\",\n  clearSearch: \"Clear Search\",\n  clearSelected: \"Clear Selected\",\n  noOptions: \"No options\",\n  search: \"Search\",\n  selectAll: \"Select All\",\n  selectSomeItems: \"Select...\"\n};\nconst defaultProps = {\n  value: [],\n  focusSearchOnOpen: true,\n  hasSelectAll: true,\n  className: \"multi-select\",\n  debounceDuration: 200,\n  options: []\n};\nconst MultiSelectContext = /*#__PURE__*/React.createContext({});\nconst MultiSelectProvider = ({\n  props,\n  children\n}) => {\n  const t = key => {\n    var _props$overrideString;\n\n    return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];\n  };\n\n  return React.createElement(MultiSelectContext.Provider, {\n    value: {\n      t,\n      ...defaultProps,\n      ...props\n    }\n  }, children);\n};\nconst useMultiSelect = () => React.useContext(MultiSelectContext);\n\n/**\r\n * combines classNames in a friendly way\r\n *\r\n * @param {*} classes\r\n */\nconst cn = (...classes) => classes.join(\" \");\n\n/**\r\n * similar to `useEffect` but gets triggered only when value changes\r\n * @param fn executable function on dependency updates\r\n * @param inputs dependency array\r\n */\n\nfunction useDidUpdateEffect(fn, inputs) {\n  const didMountRef = useRef(false);\n  useEffect(() => {\n    if (didMountRef.current) fn();else didMountRef.current = true;\n  }, inputs);\n}\n\nconst debounce = (func, wait) => {\n  let timeout;\n  return function (...args) {\n    clearTimeout(timeout);\n    timeout = setTimeout(() => {\n      func.apply(null, args);\n    }, wait);\n  };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param  options  An unfiltered list of Options.\r\n * @param? filter  A string to compare against Option labels.\r\n * @param? substitutions  Strings with multiple spellings or variations that we\r\n *           expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n  // If the filter is blank, return the full list of Options.\n  if (!filter) {\n    return options;\n  }\n\n  const cleanFilter = cleanUpText(filter, substitutions);\n  return options // Filter out undefined or null Options.\n  .filter(({\n    label,\n    value\n  }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's\n  // similarity to the filter text.\n  .map(option => ({\n    option: option,\n    score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n  })) // Only include matches of the entire substring, with a slight\n  // affordance for transposition or extra characters.\n  .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.\n  .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.\n  .map(pair => pair.option);\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param  a  The longer string (though, we flip them if it's shorter).\r\n * @param  b  The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n *           closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n  const aLength = a.length;\n  const bLength = b.length;\n  const table = [];\n\n  if (!aLength || !bLength) {\n    return 0;\n  } // Ensure `a` isn't shorter than `b`.\n\n\n  if (aLength < bLength) {\n    [a, b] = [b, a];\n  } // Early exit if `a` includes `b`; these will be scored higher than any\n  // other options with the same `b` (filter string), with a preference for\n  // shorter `a` strings (option labels).\n\n\n  if (a.indexOf(b) !== -1) {\n    return bLength + 1 / aLength;\n  } // Initialize the table axes:\n  //\n  //    0 0 0 0 ... bLength\n  //    0\n  //    0\n  //\n  //   ...\n  //\n  // aLength\n  //\n\n\n  for (let x = 0; x <= aLength; ++x) {\n    table[x] = [0];\n  }\n\n  for (let y = 0; y <= bLength; ++y) {\n    table[0][y] = 0;\n  } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n  for (let x = 1; x <= aLength; ++x) {\n    for (let y = 1; y <= bLength; ++y) {\n      table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);\n    }\n  }\n\n  return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param  input  An unsanitized input string.\r\n * @param  substitutions  Strings with multiple spellings or variations that we\r\n *          expect to match, for example accented characters or abbreviated\r\n *          words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n  if (!input) {\n    return \"\";\n  } // Uppercase and remove all non-alphanumeric, non-accented characters.\n  // Also remove underscores.\n\n\n  input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n  if (!substitutions) {\n    return input;\n  }\n\n  const safeSubstitutions = substitutions; // For Flow.\n  // Replace all strings in `safeSubstitutions` with their standardized\n  // counterparts.\n\n  return Object.keys(safeSubstitutions).reduce((output, substitution) => {\n    const unsubbed = new RegExp(substitution, \"g\");\n    return output.replace(unsubbed, safeSubstitutions[substitution]);\n  }, input);\n}\n\nconst Cross = () => React.createElement(\"svg\", {\n  width: \"24\",\n  height: \"24\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeWidth: \"2\",\n  className: \"dropdown-search-clear-icon gray\"\n}, React.createElement(\"line\", {\n  x1: \"18\",\n  y1: \"6\",\n  x2: \"6\",\n  y2: \"18\"\n}), React.createElement(\"line\", {\n  x1: \"6\",\n  y1: \"6\",\n  x2: \"18\",\n  y2: \"18\"\n}));\n\nconst DefaultRenderer = /*#__PURE__*/css({\n  \"& input,& span\": {\n    verticalAlign: \"middle\",\n    margin: 0\n  },\n  span: {\n    display: \"inline-block\",\n    paddingLeft: \"5px\"\n  },\n  \"&.disabled\": {\n    opacity: 0.5\n  }\n});\n\nconst DefaultItemRenderer = ({\n  checked,\n  option,\n  onClick,\n  disabled\n}) => React.createElement(\"div\", {\n  className: cn(DefaultRenderer, \"item-renderer\", disabled && \"disabled\")\n}, React.createElement(\"input\", {\n  type: \"checkbox\",\n  onChange: onClick,\n  checked: checked,\n  tabIndex: -1,\n  disabled: disabled\n}), React.createElement(\"span\", null, option.label));\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nconst ItemContainer = /*#__PURE__*/css({\n  boxSizing: \"border-box\",\n  cursor: \"pointer\",\n  display: \"block\",\n  padding: \"var(--rmsc-p)\",\n  outline: 0,\n  \"&:hover,&:focus\": {\n    background: \"var(--rmsc-hover)\"\n  },\n  \"&.selected\": {\n    background: \"var(--rmsc-selected)\"\n  }\n});\n\nconst SelectItem = ({\n  itemRenderer: ItemRenderer = DefaultItemRenderer,\n  option,\n  checked,\n  focused,\n  tabIndex,\n  disabled,\n  onSelectionChanged,\n  onClick\n}) => {\n  const itemRef = useRef();\n  useEffect(() => {\n    updateFocus(); // eslint-disable-next-line\n  }, [checked, focused]);\n\n  const toggleChecked = () => {\n    onSelectionChanged(!checked);\n  };\n\n  const handleClick = e => {\n    toggleChecked();\n    onClick(e);\n  };\n\n  const updateFocus = () => {\n    if (focused && !disabled && itemRef) {\n      itemRef.current.focus();\n    }\n  };\n\n  const handleKeyDown = e => {\n    switch (e.which) {\n      case 13: // Enter\n\n      case 32:\n        // Space\n        toggleChecked();\n        break;\n\n      default:\n        return;\n    }\n\n    e.preventDefault();\n  };\n\n  return React.createElement(\"label\", {\n    className: cn(ItemContainer, \"select-item\", checked && \"selected\"),\n    role: \"option\",\n    \"aria-selected\": checked,\n    tabIndex: tabIndex,\n    ref: itemRef,\n    onKeyDown: handleKeyDown\n  }, React.createElement(ItemRenderer, {\n    option: option,\n    checked: checked,\n    onClick: handleClick,\n    disabled: disabled\n  }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nconst SelectListUl = /*#__PURE__*/css({\n  margin: 0,\n  paddingLeft: 0,\n  li: {\n    listStyle: \"none\",\n    margin: 0\n  }\n});\nconst skipIndex = 2;\n\nconst SelectList = ({\n  options,\n  focusIndex,\n  onClick\n}) => {\n  const {\n    disabled,\n    value,\n    onChange,\n    ItemRenderer\n  } = useMultiSelect();\n\n  const handleSelectionChanged = (option, checked) => {\n    if (disabled) {\n      return;\n    }\n\n    onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));\n  };\n\n  return React.createElement(\"ul\", {\n    className: SelectListUl\n  }, options.map((o, i) => {\n    const tabIndex = i + skipIndex;\n    return React.createElement(\"li\", {\n      key: (o == null ? void 0 : o.key) || i\n    }, React.createElement(SelectItem, {\n      focused: focusIndex === tabIndex,\n      tabIndex: tabIndex,\n      option: o,\n      onSelectionChanged: c => handleSelectionChanged(o, c),\n      checked: value.find(s => s.value === o.value) ? true : false,\n      onClick: e => onClick(e, tabIndex),\n      itemRenderer: ItemRenderer,\n      disabled: o.disabled || disabled\n    }));\n  }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component.  It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n  FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n  FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nconst SelectSearchContainer = /*#__PURE__*/css({\n  width: \"100%\",\n  position: \"relative\",\n  borderBottom: \"1px solid var(--rmsc-border)\",\n  input: {\n    height: \"var(--rmsc-h)\",\n    padding: \"0 var(--rmsc-p)\",\n    width: \"100%\",\n    outline: 0,\n    border: 0\n  }\n});\nconst SearchClearButton = /*#__PURE__*/css({\n  cursor: \"pointer\",\n  position: \"absolute\",\n  top: 0,\n  right: 0,\n  bottom: 0,\n  background: \"none\",\n  border: 0,\n  padding: \"0 calc(var(--rmsc-p)/2)\",\n  \"[hidden]\": {\n    display: \"none\"\n  }\n});\nconst NoOptions = /*#__PURE__*/css({\n  padding: \"var(--rmsc-p)\",\n  textAlign: \"center\",\n  color: \"var(--rmsc-gray)\"\n});\n\nconst SelectPanel = () => {\n  const {\n    t,\n    onChange,\n    options,\n    value,\n    filterOptions: customFilterOptions,\n    selectAllLabel,\n    ItemRenderer,\n    disabled,\n    disableSearch,\n    focusSearchOnOpen,\n    hasSelectAll,\n    ClearIcon,\n    debounceDuration\n  } = useMultiSelect();\n  const searchInputRef = useRef();\n  const [searchText, setSearchText] = useState(\"\");\n  const [filteredOptions, setFilteredOptions] = useState(options);\n  const [searchTextForFilter, setSearchTextForFilter] = useState(\"\");\n  const [focusIndex, setFocusIndex] = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);\n  const debouncedSearch = useCallback(debounce(query => setSearchTextForFilter(query), debounceDuration), []);\n  const selectAllOption = {\n    label: selectAllLabel || t(\"selectAll\"),\n    value: \"\"\n  };\n\n  const selectAllValues = checked => {\n    const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);\n\n    if (checked) {\n      const selectedValues = value.map(o => o.value);\n      const finalSelectedValues = [...selectedValues, ...filteredValues];\n      return filteredOptions.filter(o => finalSelectedValues.includes(o.value));\n    }\n\n    return value.filter(o => !filteredValues.includes(o.value));\n  };\n\n  const selectAllChanged = checked => {\n    const newOptions = selectAllValues(checked);\n    onChange(newOptions);\n  };\n\n  const handleSearchChange = e => {\n    debouncedSearch(e.target.value);\n    setSearchText(e.target.value);\n    setFocusIndex(FocusType.SEARCH);\n  };\n\n  const handleClear = () => {\n    var _searchInputRef$curre;\n\n    setSearchTextForFilter(\"\");\n    setSearchText(\"\");\n    searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();\n  };\n\n  const handleItemClicked = index => setFocusIndex(index);\n\n  const handleKeyDown = e => {\n    switch (e.which) {\n      case 38:\n        // Up Arrow\n        if (e.altKey) {\n          return;\n        }\n\n        updateFocus(-1);\n        break;\n\n      case 40:\n        // Down Arrow\n        if (e.altKey) {\n          return;\n        }\n\n        updateFocus(1);\n        break;\n\n      default:\n        return;\n    }\n\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  const handleSearchFocus = () => {\n    setFocusIndex(FocusType.SEARCH);\n  };\n\n  const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n\n  const updateFocus = offset => {\n    let newFocus = focusIndex + offset;\n    newFocus = Math.max(1, newFocus);\n    newFocus = Math.min(newFocus, options.length + 1);\n    setFocusIndex(newFocus);\n  };\n\n  const [isAllOptionSelected, hasSelectableOptions] = useMemo(() => {\n    const filteredOptionsList = filteredOptions.filter(o => !o.disabled);\n    return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n  }, [filteredOptions, value]);\n  useEffect(() => {\n    getFilteredOptions().then(setFilteredOptions);\n  }, [searchTextForFilter, options]);\n  return React.createElement(\"div\", {\n    className: \"select-panel\",\n    role: \"listbox\",\n    onKeyDown: handleKeyDown\n  }, !disableSearch && React.createElement(\"div\", {\n    className: SelectSearchContainer\n  }, React.createElement(\"input\", {\n    autoFocus: focusSearchOnOpen,\n    placeholder: t(\"search\"),\n    type: \"text\",\n    \"aria-describedby\": t(\"search\"),\n    onKeyDown: e => e.stopPropagation(),\n    onChange: handleSearchChange,\n    onFocus: handleSearchFocus,\n    value: searchText,\n    ref: searchInputRef\n  }), React.createElement(\"button\", {\n    type: \"button\",\n    className: cn(SearchClearButton, \"search-clear-button\"),\n    hidden: !searchText,\n    onClick: handleClear,\n    \"aria-label\": t(\"clearSearch\")\n  }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n    focused: focusIndex === 1,\n    tabIndex: 1,\n    checked: isAllOptionSelected,\n    option: selectAllOption,\n    onSelectionChanged: selectAllChanged,\n    onClick: () => handleItemClicked(1),\n    itemRenderer: ItemRenderer,\n    disabled: disabled\n  }), filteredOptions.length ? React.createElement(SelectList, {\n    options: filteredOptions,\n    focusIndex: focusIndex,\n    onClick: (_e, index) => handleItemClicked(index)\n  }) : React.createElement(\"div\", {\n    className: cn(NoOptions, \"no-options\")\n  }, t(\"noOptions\")));\n};\n\nconst Arrow = ({\n  expanded\n}) => React.createElement(\"svg\", {\n  width: \"24\",\n  height: \"24\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeWidth: \"2\",\n  className: \"dropdown-heading-dropdown-arrow gray\"\n}, React.createElement(\"path\", {\n  d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n}));\n\nconst DropdownHeader = () => {\n  const {\n    t,\n    value,\n    options,\n    valueRenderer\n  } = useMultiSelect();\n  const noneSelected = value.length === 0;\n  const allSelected = value.length === options.length;\n  const customText = valueRenderer && valueRenderer(value, options);\n\n  const getSelectedText = () => value.map(s => s.label).join(\", \");\n\n  return noneSelected ? React.createElement(\"span\", {\n    className: \"gray\"\n  }, customText || t(\"selectSomeItems\")) : React.createElement(\"span\", null, customText || (allSelected ? t(\"allItemsAreSelected\") : getSelectedText()));\n};\n\nconst Spinner = /*#__PURE__*/css({\n  animation: \"rotate 2s linear infinite\",\n  \"& .path\": {\n    stroke: \"var(--rmsc-border)\",\n    strokeWidth: \"4px\",\n    strokeLinecap: \"round\",\n    animation: \"dash 1.5s ease-in-out infinite\"\n  },\n  \"@keyframes rotate\": {\n    \"100%\": {\n      transform: \"rotate(360deg)\"\n    }\n  },\n  \"@keyframes dash\": {\n    \"0%\": {\n      strokeDasharray: \"1,150\",\n      strokeDashoffset: 0\n    },\n    \"50%\": {\n      strokeDasharray: \"90,150\",\n      strokeDashoffset: \"-35\"\n    },\n    \"100%\": {\n      strokeDasharray: \"90,150\",\n      strokeDashoffset: \"-124\"\n    }\n  }\n});\nconst Loading = ({\n  size = 24\n}) => React.createElement(\"span\", {\n  style: {\n    width: size,\n    marginRight: \"0.2rem\"\n  }\n}, React.createElement(\"svg\", {\n  width: size,\n  height: size,\n  className: Spinner,\n  viewBox: \"0 0 50 50\",\n  style: {\n    display: \"inline\",\n    verticalAlign: \"middle\"\n  }\n}, React.createElement(\"circle\", {\n  cx: \"25\",\n  cy: \"25\",\n  r: \"20\",\n  fill: \"none\",\n  className: \"path\"\n})));\n\n/**\r\n * A generic dropdown component.  It takes the children of the component\r\n * and hosts it in the component.  When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nconst PanelContainer = /*#__PURE__*/css({\n  position: \"absolute\",\n  zIndex: 1,\n  top: \"100%\",\n  width: \"100%\",\n  paddingTop: \"8px\",\n  \".panel-content\": {\n    maxHeight: \"300px\",\n    overflowY: \"auto\",\n    borderRadius: \"var(--rmsc-radius)\",\n    background: \"var(--rmsc-bg)\",\n    boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n  }\n});\nconst DropdownContainer = /*#__PURE__*/css({\n  position: \"relative\",\n  outline: 0,\n  backgroundColor: \"var(--rmsc-bg)\",\n  border: \"1px solid var(--rmsc-border)\",\n  borderRadius: \"var(--rmsc-radius)\",\n  \"&:focus-within\": {\n    boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n    borderColor: \"var(--rmsc-main)\"\n  }\n});\nconst DropdownHeading = /*#__PURE__*/css({\n  position: \"relative\",\n  padding: \"0 var(--rmsc-p)\",\n  display: \"flex\",\n  alignItems: \"center\",\n  width: \"100%\",\n  height: \"var(--rmsc-h)\",\n  cursor: \"default\",\n  outline: 0,\n  \".dropdown-heading-value\": {\n    overflow: \"hidden\",\n    textOverflow: \"ellipsis\",\n    whiteSpace: \"nowrap\",\n    flex: 1\n  }\n});\nconst ClearSelectedButton = /*#__PURE__*/css({\n  cursor: \"pointer\",\n  background: \"none\",\n  border: 0,\n  padding: 0,\n  display: \"flex\"\n});\n\nconst Dropdown = () => {\n  const {\n    t,\n    onMenuToggle,\n    ArrowRenderer,\n    shouldToggleOnHover,\n    isLoading,\n    disabled,\n    onChange,\n    labelledBy,\n    value,\n    isOpen,\n    defaultIsOpen,\n    ClearSelectedIcon\n  } = useMultiSelect();\n  const [isInternalExpand, setIsInternalExpand] = useState(true);\n  const [expanded, setExpanded] = useState(defaultIsOpen);\n  const [hasFocus, setHasFocus] = useState(false);\n  const FinalArrow = ArrowRenderer || Arrow;\n  const wrapper = useRef();\n  useDidUpdateEffect(() => {\n    onMenuToggle && onMenuToggle(expanded);\n  }, [expanded]);\n  useEffect(() => {\n    if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n      setIsInternalExpand(false);\n      setExpanded(isOpen);\n    }\n  }, [isOpen]);\n\n  const handleKeyDown = e => {\n    var _wrapper$current;\n\n    if (isInternalExpand) {\n      switch (e.which) {\n        case 27: // Escape\n\n        case 38:\n          // Up Arrow\n          setExpanded(false);\n          wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n          break;\n\n        case 32: // Space\n\n        case 13: // Enter Key\n\n        case 40:\n          // Down Arrow\n          setExpanded(true);\n          break;\n\n        default:\n          return;\n      }\n    }\n\n    e.preventDefault();\n  };\n\n  const handleHover = iexpanded => {\n    isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n  };\n\n  const handleFocus = () => !hasFocus && setHasFocus(true);\n\n  const handleBlur = e => {\n    if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n      setHasFocus(false);\n      setExpanded(false);\n    }\n  };\n\n  const handleMouseEnter = () => handleHover(true);\n\n  const handleMouseLeave = () => handleHover(false);\n\n  const toggleExpanded = () => {\n    isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n  };\n\n  const handleClearSelected = e => {\n    e.stopPropagation();\n    onChange([]);\n    isInternalExpand && setExpanded(false);\n  };\n\n  return React.createElement(\"div\", {\n    tabIndex: 0,\n    className: cn(DropdownContainer, \"dropdown-container\"),\n    \"aria-labelledby\": labelledBy,\n    \"aria-expanded\": expanded,\n    \"aria-readonly\": true,\n    \"aria-disabled\": disabled,\n    ref: wrapper,\n    onKeyDown: handleKeyDown,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    onMouseEnter: handleMouseEnter,\n    onMouseLeave: handleMouseLeave\n  }, React.createElement(\"div\", {\n    className: cn(DropdownHeading, \"dropdown-heading\"),\n    onClick: toggleExpanded\n  }, React.createElement(\"div\", {\n    className: \"dropdown-heading-value\"\n  }, React.createElement(DropdownHeader, null)), isLoading && React.createElement(Loading, null), value.length > 0 && React.createElement(\"button\", {\n    type: \"button\",\n    className: cn(ClearSelectedButton, \"clear-selected-button\"),\n    onClick: handleClearSelected,\n    disabled: disabled,\n    \"aria-label\": t(\"clearSelected\")\n  }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n    expanded: expanded\n  })), expanded && React.createElement(\"div\", {\n    className: cn(PanelContainer, \"dropdown-content\")\n  }, React.createElement(\"div\", {\n    className: \"panel-content\"\n  }, React.createElement(SelectPanel, null))));\n};\n\nconst MultiSelectBox = /*#__PURE__*/css({\n  \"--rmscMain\": \"#4285f4\",\n  \"--rmscHover\": \"#f1f3f5\",\n  \"--rmscSelected\": \"#e2e6ea\",\n  \"--rmscBorder\": \"#ccc\",\n  \"--rmscGray\": \"#aaa\",\n  \"--rmscBg\": \"#fff\",\n  \"--rmscP\": \"10px\",\n  \"--rmscRadius\": \"4px\",\n  \"--rmscH\": \"38px\",\n  \"*\": {\n    boxSizing: \"border-box\",\n    transition: \"all 0.2s ease\"\n  },\n  \".gray\": {\n    color: \"var(--rmsc-gray)\"\n  }\n});\n\nconst MultiSelect = props => React.createElement(MultiSelectProvider, {\n  props: props\n}, React.createElement(\"div\", {\n  className: cn(MultiSelectBox, props.className || \"multi-select\")\n}, React.createElement(Dropdown, null)));\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n    return (props) => {\n\n        if ( ! isValidBlockType( props.name ) ) {\n            return <BlockEdit {...props} />;\n        }\n\n        // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n        // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n        // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n        // get updated when a block is updated.\n        let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n        return (\n            <Fragment>\n                <BlockEdit {...props} />\n                <InspectorControls>\n                    <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n                        <PanelRow className=\"content-visibility-rules-enabled\">\n                            <ContentVisibilityRulesEnabled props={props} />\n                        </PanelRow>\n\n                        <div className={showControls + \" content-visibility-controls-container\"}>\n                            <PanelRow className=\"content-visibility-displayed-control\">\n                                <ContentVisibilityDisplayedControl props={props} />\n                            </PanelRow>\n\n                            <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n                        </div>\n\n                    </PanelBody>\n                </InspectorControls>\n            </Fragment>\n        );\n\n    };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n    // If this is a valid block\n    if (isValidBlockType(settings.name)) {\n\n        // Run the rules through a filter so we're able to add rules externally.\n        let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n            contentVisibilityRulesEnabled: false,\n            userAuthenticated: ''\n        });\n\n        // Use Lodash's assign to gracefully handle if attributes are undefined\n        settings.attributes = assign(settings.attributes, {\n            contentVisibilityRules: {\n                type: 'object',\n                default: defaultRules\n            },\n        });\n    }\n\n    return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n    // If the current block is valid, add our prop.\n    if (isValidBlockType(blockType.name)) {\n        extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n    }\n\n    return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n    <PluginBlockSettingsMenuItem\n        allowedBlocks={ [ 'core/paragraph' ] }\n        icon=\"smiley\"\n        label=\"Menu item text\"\n        onClick={ () => {\n            console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n        } }\n    />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n    render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n    if ( ! rulesEnabled ) {\n        return (\n            <Disabled>\n                <ContentVisibilityShownHiddenControl props={ props } />\n            </Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilityShownHiddenControl props={ props } />\n    );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n    rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n    <ToggleControl\n        label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n        checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n        onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n            let newBVRules = { ...props.attributes.contentVisibilityRules };\n            newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n            props.setAttributes( {\n                contentVisibilityRules: newBVRules,\n            } );\n\n            // Fire an action so we can see what's happened in other controls. This can be useful,\n            // for example when setting rules for roles - pointless if a user isn't signed in.\n            doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n            // Sets the state\n            return (\n                { rulesEnabled: ! state.rulesEnabled }\n            );\n        } ) }\n    />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n    }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n    return ( props ) => {\n\n        if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n            return <BlockListBlock {...props} />;\n        }\n\n        let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n        return <BlockListBlock {...props} className={ iconClassName } />\n\n    };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled    = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n    let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n    if ( ! rulesEnabled || ! contentVisibility ) {\n        return (\n            <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n    );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n    return (\n        <Fill name=\"content-visibility-extra-controls\">\n            {\n                ( fillProps ) => {\n                    return (\n                        <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n                    )\n                }\n            }\n        </Fill>\n    );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n *     // Set the state and props.\n *     setState( { option } );\n *     props.setAttributes( {\n *         contentVisibilityRules: {\n *             ...props.attributes.contentVisibilityRules,\n *             specialPage: {\n *                 ...props.attributes.contentVisibilityRules.specialPage,\n *                 pages: option\n *             }\n *         },\n *     } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n    option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n    /**\n     * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n     * this instance of the component.\n     * \n     * @param {array} option current value of what is selected.\n     */\n    const onChange = ( option ) => {\n\n        // Set the state and props.\n        setState( { option } );\n\n        props.setAttributes( {\n            contentVisibilityRules: {\n                ...props.attributes.contentVisibilityRules,\n                specialPage: {\n                    ...props.attributes.contentVisibilityRules.specialPage,\n                    [type]: option\n                }\n            },\n        } );\n\n    };\n\n    return (\n        <div className=\"content-visibility-multi-select\">\n            <MultiSelect\n                options={ data }\n                value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n                onChange={ onChange }\n                labelledBy={ labelledBy }\n                ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n                    return (\n                        <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n                            <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n                            <span>{option.icon || \"\"} {option.label}</span>\n                        </div>\n                    );\n                } }\n                // isOpen={ true }\n            />\n        </div>\n    );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n        <PanelBody\n            title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n            initialOpen={ true }\n            className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n        >\n            <PanelRow>\n                <RadioControl\n                    label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n                    help=\"\"\n                    selected={ props.attributes.contentVisibility || option }\n                    options={ [\n                        { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n                        { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n                    ] }\n                    onChange={ ( option ) => {\n\n                        setState( { option } );\n\n                        props.setAttributes( {\n                            contentVisibility: option,\n                        } );\n\n                    } }\n                />\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'pages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Page', 'content-visibility' ),\n        plural: __( 'Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"networking\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getPosts();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'posts';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Post', 'content-visibility' ),\n        plural: __( 'Posts', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"admin-post\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getCategories();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'categories';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Category', 'content-visibility' ),\n        plural: __( 'Categories', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"category\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-categories-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled    = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n    let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n    if ( ! rulesEnabled || ! contentVisibility ) {\n        return (\n            <Disabled>\n                <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n            </Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n    );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n    return (\n        <Fill name=\"content-visibility-extra-controls\">\n            {\n                ( fillProps ) => {\n                    return (\n                        <ContentVisibilitySpecialPageControls props={ fillProps } />\n                    )\n                }\n            }\n        </Fill>\n    );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n    // Add our component to the Slot provided by BlockVisibilityControls\n    registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n     * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n     */\n    const specialPages = getSpecialPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'specialPages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Special Page', 'content-visibility' ),\n        plural: __( 'Special Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"text-page\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n                        <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n                        { specialPages.map( specialPage => (\n                            <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n                        ) ) }\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n    option: [],\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'Special Page', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n        >\n\n            <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n                <SpecialPagePageInserter props={ props } />\n                <PagePageInserter props={ props } />\n                <PostPageInserter props={ props } />\n                <CategoryPageInserter props={ props } />\n                <TagPageInserter props={ props } />\n            </PanelRow>\n\n            { props.attributes.contentVisibility && (\n                <p className=\"special-page-help-intro content-visibility-help-text\">\n                    { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n                </p>\n            ) }\n\n        </PanelBody>\n    );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n    defaultRules.specialPage = {\n        pages: [],\n        specialPages: [],\n        posts: [],\n        categories: [],\n        tags: []\n    };\n\n    return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getTags();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'tags';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Tag', 'content-visibility' ),\n        plural: __( 'Tags', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"tag\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-tags-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n\n        <RadioControl\n            label=''\n            help=''\n            className=\"content-visibility-user-authenticated-control\"\n            selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n            options={ [\n                { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n                { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n            ] }\n            onChange={ ( option ) => {\n\n                // Set the state and props.\n                setState( { option } );\n\n                let newBVRules = { ...props.attributes.contentVisibilityRules };\n                newBVRules.userAuthenticated = option;\n\n                props.setAttributes( {\n                    contentVisibilityRules: newBVRules,\n                } );\n\n                // Fire an action so we can see what's happened in other controls. This can be useful,\n                // for example when setting rules for roles - pointless if a user isn't signed in.\n                doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n            } }\n        />\n\n    );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'User Authentication', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n        >\n            <PanelRow>\n                <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n                { props.attributes.contentVisibility && (\n                    <p className=\"user-auth-help-intro content-visibility-help-text\">\n                        { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n                    </p>\n                ) }\n\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n    const categories = [];\n\n    if ( ContentVisibility.categories.length === 0 ) {\n        return [ {\n            label: __( 'No categories found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const category in ContentVisibility.categories ) {\n    \n        categories.push( { \n            label: ContentVisibility.categories[category].label,\n            value: ContentVisibility.categories[category].id,\n            notes: ContentVisibility.categories[category].notes\n        } );\n    \n    }\n\n    return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n    const pages = [];\n\n    if ( ContentVisibility.pages.length === 0 ) {\n        return [ {\n            label: __( 'No pages found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const page in ContentVisibility.pages ) {\n    \n        pages.push( { \n            label: ContentVisibility.pages[page].label,\n            value: ContentVisibility.pages[page].id,\n            notes: ContentVisibility.pages[page].notes\n        } );\n    \n    }\n\n    return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n    const posts = [];\n\n    if ( ContentVisibility.posts.length === 0 ) {\n        return [ {\n            label: __( 'No posts found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const post in ContentVisibility.posts ) {\n    \n        posts.push( { \n            label: ContentVisibility.posts[post].label,\n            value: ContentVisibility.posts[post].id,\n            notes: ContentVisibility.posts[post].notes\n        } );\n    \n    }\n\n    return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n    const specialPages = [];\n\n    for ( const specialPage in ContentVisibility.specialPages ) {\n    \n        specialPages.push( { \n            label: ContentVisibility.specialPages[specialPage].label,\n            value: ContentVisibility.specialPages[specialPage].keyValue,\n            notes: ContentVisibility.specialPages[specialPage].notes,\n            icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n        } );\n    \n    }\n\n    return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n    const tags = [];\n\n    if ( ContentVisibility.tags.length === 0 ) {\n        return [ {\n            label: __( 'No tags found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const tag in ContentVisibility.tags ) {\n    \n        tags.push( { \n            label: ContentVisibility.tags[tag].label,\n            value: ContentVisibility.tags[tag].id,\n            notes: ContentVisibility.tags[tag].notes\n        } );\n    \n    }\n\n    return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n    // SVGs are weird, man.\n    if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n        return true;\n    } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n        return element.parentNode && hasParentWithClass( element.parentNode, classname );\n    } else {\n        return false;\n    }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n    if ( ! props.attributes.contentVisibilityRules ) {\n        return false;\n    }\n\n    if ( ! props.attributes.contentVisibilityRules[type] ) {\n        return false;\n    }\n\n    // Default to false. Passed through a filter later.\n    let hasRules = false;\n\n    switch ( type ) {\n        \n        case 'userAuthenticated':\n\n            if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n                hasRules = true;\n            }\n\n            break;\n        \n        case 'specialPage':\n\n            let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n            // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n            let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n            // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n            hasRules = specialPageRulesValues.some( function( el ) {\n                return el.length > 0;\n            });\n\n            break;\n\n        default:\n            break;\n    }\n\n    return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n    const invalidBlockTypes = [\n        'something/unsupported',\n    ];\n\n    return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n    if ( false === event ) {\n        return;\n    }\n\n    // Determine if what has been clicked on is in the popover or not.\n    let eTarget = event.target;\n\n    if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n        event.stopPropagation();\n    }\n\n    return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n *                        object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n    \n    // if nothing is set, return a prompt to select special pages.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return defaultVal;\n    }\n\n    let shownOrHidden     = props.attributes.contentVisibility;\n    let specialPages      = props.attributes.contentVisibilityRules.specialPage[type];    \n    let specialPagesCount = specialPages.length;\n\n    let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n    let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount  + ' ' + niceType;\n\n    return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n    // If we don't have any items selected, just basic class.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return 'content-visibility-special-page-inserter-toggle';\n    }\n\n    // We have some items selected, so we have a couple classes.\n    return 'content-visibility-special-page-inserter-toggle has-items';\n    \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}
  • content-visibility/tags/0.2.9/content-visibility.php

    r2589501 r2833193  
    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.7
     14 * Version:     0.2.9
    1515 * Author:      Rich Tape
    1616 * Author URI:  https://richardtape.com/
  • content-visibility/tags/0.2.9/includes/content-visibility.php

    r2568520 r2833193  
    1414
    1515add_action( 'plugins_loaded', __NAMESPACE__ . '\\plugins_loaded__bv_loader' );
     16
     17// An issue has been reported that any blocks registered with PHP and renders to the
     18// editor using the ServerSideRender component will fail due to validation error from rest API endpoint.
     19//
     20// This is due to the default attributes were originally added on the client side only. And the server does not know they are/should exist.
     21//
     22// The solution is to make sure that any blocks registered through PHP does also have the required attributes on the server side by override the block attributes
     23// when blocks are registered with PHP. The WordPress core blocks are excluded.
     24add_filter( 'register_block_type_args', __NAMESPACE__ . '\\add_block_default_attributes', 10, 2 );
     25
     26/**
     27 * Fires when new blocks are registered
     28 *
     29 * @param array $args an array of block settings
     30 * @param string $name the name of the block
     31 *
     32 * @return array $args an array of modified block settings
     33 *
     34 * @since 0.2.8
     35 */
     36function add_block_default_attributes( $args, $name ) {
     37
     38    $args['attributes']['contentVisibilityRules'] = array(
     39        'type' => 'object',
     40        'default' => array(
     41            'contentVisibilityRulesEnabled' => false,
     42            'userAuthenticated' => '',
     43        )
     44    );
     45
     46    return $args;
     47}//end add_block_default_attributes()
    1648
    1749/**
  • content-visibility/tags/0.2.9/readme.txt

    r2589501 r2833193  
    44Tags: contentvisibility, block, content, visibility, show, hide
    55Requires at least: 5.0
    6 Tested up to: 5.8.0
    7 Stable tag: 0.2.7
     6Tested up to: 6.1.1
     7Stable tag: 0.2.9
    88Requires PHP: 7.0
    99License: GPLv2 or later
     
    6969== Changelog ==
    7070
     71= 0.2.9 =
     72* WordPress 6.1.1 compatibility.
     73* Fixed the styling weirdness causing some blocks to be misaligned when they have rules set.
     74* Tweaked styling of block inspector controls to fall more in line with newer WP rules.
     75* Fixed styles of multi-select field for widgets.
     76
     77= 0.2.8 =
     78* Fixed an issue where blocks registered with PHP throwing error when rendering it with ServerSideRender components in the editor.
     79
    7180= 0.2.7 =
    7281* Fixed an issue where in some cases the block controls for widgets still weren't appearing on the new 5.8 widgets screen.
  • content-visibility/trunk/build/index.asset.php

    r2589501 r2833193  
    1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => 'c28fdfc67e7a7bafa09326248c260d87');
     1<?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '020be447b45cb72d83d4347ab15f2ddd');
  • content-visibility/trunk/build/index.css

    r2589501 r2833193  
    5858  margin-bottom: 0; }
    5959
    60 .content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {
    61   text-align: right; }
    62 
    6360/*
    6461    Styling for the rule panels
     
    7067  width: 100%; }
    7168
     69/*
     70    It seems WP changed to capitalize labels, and that looks weird for us, so
     71    we'll normalize that.
     72*/
     73.content-visibility-controls.is-opened .content-visibility-control-panel label {
     74  text-transform: none;
     75  font-weight: normal;
     76  font-size: 1em; }
     77
    7278.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {
    7379  border-bottom: 1px solid #e2e4e7; }
     
    109115  height: 24px;
    110116  width: 24px;
    111   margin-left: 105%;
    112   margin-top: 1%;
    113   opacity: 0.25;
     117  position: absolute;
     118  top: 0;
     119  right: -2em;
     120  opacity: 0.2;
    114121  box-shadow: none !important;
    115122  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; }
     
    119126  height: 24px;
    120127  width: 24px;
    121   margin-left: 105%;
    122   margin-top: 1%;
    123   opacity: 0.25;
     128  position: absolute;
     129  top: 0;
     130  right: -2em;
     131  opacity: 0.2;
    124132  box-shadow: none !important;
    125133  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; }
     
    129137*/
    130138.content-visibility-controls-container .content-visibility-help-text {
    131   margin: 1rem 0 0;
     139  margin: 1rem 0 0 !important;
    132140  font-size: 12px;
    133141  font-style: normal;
     
    143151.content-visibility-multi-select {
    144152  width: 100%;
    145   margin: 1rem 0 0 0; }
     153  margin: 1rem 0 0 0;
     154  border: 1px solid #ccc;
     155  padding: 0.25em 0.5em;
     156  background: white; }
     157
     158.content-visibility-multi-select .dropdown-content {
     159  background: white;
     160  z-index: 999; }
    146161
    147162/*
     
    279294.content-visibility-close-popover {
    280295  position: absolute;
    281   top: -2rem;
    282   right: -1rem; }
     296  top: 0;
     297  right: 0; }
    283298
    284299/*
  • content-visibility/trunk/build/index.css.map

    r2568520 r2833193  
    1 {"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"AAAA;;;;;;;CAOC;AACD;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,eAAe;EACf,eAAe,EAAE;;AAEnB;EACE,UAAU;EACV,iBAAiB;EACjB,qBAAqB,EAAE;;AAEzB;;CAEC;AACD;EACE,WAAW,EAAE;;AAEf;;CAEC;AACD;EACE,cAAc,EAAE;;AAElB;EACE,WAAW;EACX,cAAc;EACd,WAAW;EACX,WAAW,EAAE;;AAEf;;CAEC;AACD;EACE,2BAA2B,EAAE;;AAE/B;EACE,gBAAgB,EAAE;;AAEpB;EACE,iBAAiB,EAAE;;AAErB;;CAEC;AACD;EACE,yBAAyB;EACzB,kBAAkB;EAClB,mBAAmB;EACnB,WAAW,EAAE;;AAEf;EACE,gCAAgC,EAAE;;AAEpC;;CAEC;AACD;EACE,YAAY,EAAE;;AAEhB;EACE,YAAY,EAAE;;AAEhB;;CAEC;AACD;EACE,gBAAgB,EAAE;;AAEpB;;CAEC;AACD;EACE,gBAAgB,EAAE;;AAEpB;EACE,kBAAkB,EAAE;;AAEtB;EACE,gBAAgB,EAAE;;AAEpB;;;;CAIC;AACD;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,2BAA2B;EAC3B,+WAA+W,EAAE;;AAEnX;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,2BAA2B;EAC3B,+fAA+f,EAAE;;AAEngB;;CAEC;AACD;EACE,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,WAAW;EACX,WAAW,EAAE;;AAEf;;;CAGC;AACD;EACE,WAAW;EACX,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,WAAW,EAAE;;AAEf;EACE,eAAe;EACf,eAAe;EACf,wBAAwB,EAAE;;AAE5B;;CAEC;AACD;;;EAGE,uBAAuB,EAAE;;AAE3B;;CAEC;AACD;EACE,iBAAiB,EAAE;;AAErB;EACE,oBAAoB,EAAE;;AAExB;;CAEC;AACD;EACE,YAAY;EACZ,qBAAqB,EAAE;;AAEzB;;CAEC;AACD;EACE,mBAAmB;EACnB,kBAAkB,EAAE;;AAEtB;;CAEC;AACD;EACE,YAAY,EAAE;;AAEhB;;;;CAIC;AACD;EACE,yBAAyB;EACzB,cAAc;EACd,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,gBAAgB,EAAE;;AAEpB;;CAEC;AACD;EACE,qBAAqB;EACrB,gBAAgB;EAChB,0BAA0B,EAAE;;AAE9B;;CAEC;AACD;EACE,gBAAgB;EAChB,mBAAmB,EAAE;;AAEvB;;CAEC;AACD;EACE,gYAAgY;EAChY,qBAAqB;EACrB,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,cAAc,EAAE;;AAElB;;CAEC;AACD;EACE,eAAe;EACf,gBAAgB,EAAE;;AAEpB;EACE,aAAa;EACb,YAAY;EACZ,wBAAwB,EAAE;;AAE5B;EACE,iBAAiB;EACjB,gBAAgB;EAChB,gBAAgB,EAAE;;AAEpB;EACE,cAAc;EACd,eAAe;EACf,iBAAiB,EAAE;;AAErB;EACE,kBAAkB;EAClB,QAAQ;EACR,cAAc,EAAE;;AAElB;EACE,iBAAiB;EACjB,aAAa,EAAE;;AAEjB;;CAEC;AACD;EACE,YAAY;EACZ,gBAAgB,EAAE;;AAEpB,8BAA8B;AAC9B;EACE,kBAAkB;EAClB,UAAU;EACV,YAAY,EAAE;;AAEhB;;CAEC;AACD,2CAA2C;AAC3C;EACE,sBAAsB,EAAE;;AAE1B;EACE,gBAAgB,EAAE;;AAEpB,qDAAqD;AACrD;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY,EAAE","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n    Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n  display: block; }\n\n/*\n    Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n  margin: 1rem 0; }\n\n/*\n    Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n  max-width: none;\n  margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n  width: 50%;\n  margin: 0.5em 0 0;\n  display: inline-block; }\n\n/*\n    ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n  width: 100%; }\n\n/*\n    User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n  display: block; }\n\n.content-visibility-user-authenticated-control {\n  width: 100%;\n  display: block;\n  float: none;\n  clear: both; }\n\n/*\n    Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n  margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n  margin-bottom: 0; }\n\n.content-visibility-displayed-control .components-base-control__field .components-radio-control__option:last-of-type {\n  text-align: right; }\n\n/*\n    Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n  border: 1px solid #e2e4e7;\n  margin-bottom: 1em;\n  background: #fcfcfc;\n  width: 100%; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n  border-bottom: 1px solid #e2e4e7; }\n\n/*\n    When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n  opacity: 0.2; }\n\n.components-disabled {\n  opacity: 0.5; }\n\n/*\n    Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n  margin-bottom: 0; }\n\n/*\n    User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n  margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n  margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n  margin-bottom: 0; }\n\n/*\n    When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n    rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n    Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  margin-left: 105%;\n  margin-top: 1%;\n  opacity: 0.25;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  margin-left: 105%;\n  margin-top: 1%;\n  opacity: 0.25;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n    Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n  margin: 1rem 0 0;\n  font-size: 12px;\n  font-style: normal;\n  color: #757575;\n  clear: both;\n  float: none;\n  width: 100%; }\n\n/*\n    Multi-select component\n    ----------------------    \n*/\n.content-visibility-multi-select {\n  width: 100%;\n  margin: 1rem 0 0 0; }\n\n/*\n    Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n  overflow-x: hidden; }\n\n/*\n    Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n  width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n  max-width: none;\n  margin-right: 0;\n  padding: 0.7rem 0.7rem 0; }\n\n/*\n    Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n  background: transparent; }\n\n/*\n    Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n  padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n  margin-right: 0.5rem; }\n\n/*\n    Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n  height: 20px;\n  display: inline-block; }\n\n/*\n    Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n  margin-top: 0.25rem;\n  padding: 0 0.25rem; }\n\n/*\n    Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n  opacity: 0.5; }\n\n/*\n    Popover content toggle buttons. Make sure they can handle long values as someone may\n    select multiple options. Give max-width to ensure the button's icon is inline.\n    min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n  white-space: break-spaces;\n  max-width: 85%;\n  min-width: 190px;\n  font-size: 12px;\n  line-height: 1.6;\n  box-shadow: none; }\n\n/*\n    If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n  text-decoration: none;\n  line-height: 1.6;\n  text-transform: capitalize; }\n\n/*\n    The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n  margin-top: 1rem;\n  margin-bottom: 1rem; }\n\n/*\n    When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n  content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n  display: inline-block;\n  height: 12px;\n  width: 12px;\n  margin-left: 0.5rem;\n  line-height: 1; }\n\n/*\n    Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n  font-size: 12px;\n  margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n  padding: 1rem;\n  width: 23rem;\n  height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n  text-align: right;\n  margin-top: 1rem;\n  margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n  margin-left: 0;\n  margin-right: 0;\n  padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n  position: relative;\n  top: 3px;\n  color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n  text-align: right;\n  margin-top: 0; }\n\n/*\n    Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n  color: black;\n  font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n  position: absolute;\n  top: -2rem;\n  right: -1rem; }\n\n/*\n    Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n  flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n  margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n  position: relative;\n  top: 4px;\n  opacity: 0.6; }\n"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///editor.scss"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n* Styles for the Content Visibility WordPress plugin by Rich Tape.\n*\n* This file provides the core styling for the main Content Visibility Plugin. We mostly\n* use native WordPress control components, and rely on their styling to make this plugin\n* feel native to WordPress. However, there are some tweaks needed as we're using components\n* in ways that WordPress doesn't use yet - and hence doesn't provide styling affordances for.\n*/\n/*\n    Ensure our slots for add-ons are block.\n*/\n.content-visibility-controls .content-visibility-extra-controls {\n  display: block; }\n\n/*\n    Give the Rules Enabled toggle a little more breathing room.\n*/\n.content-visibility-controls .content-visibility-rules-enabled .components-toggle-control {\n  margin: 1rem 0; }\n\n/*\n    Make the Show/Hidden radio buttons sit next to each other...\n*/\n.content-visibility-controls .components-base-control__label {\n  max-width: none;\n  margin-top: 1em; }\n\n.content-visibility-controls .components-radio-control__option {\n  width: 50%;\n  margin: 0.5em 0 0;\n  display: inline-block; }\n\n/*\n    ...But not for User Roles\n*/\n.content-visibility-controls .content-visibility-user-role-control .components-radio-control__option {\n  width: 100%; }\n\n/*\n    User Auth controls, with the help text, look weird due to flex.\n*/\n.content-visibility-control-panel.content-visibility-user-authenticated-controls .components-panel__row {\n  display: block; }\n\n.content-visibility-user-authenticated-control {\n  width: 100%;\n  display: block;\n  float: none;\n  clear: both; }\n\n/*\n    Make the shown/not shown control stand out a little\n*/\n.content-visibility-displayed-control .components-base-control.components-radio-control {\n  margin-bottom: 0 !important; }\n\n.content-visibility-displayed-control .components-base-control.components-radio-control .components-base-control__field {\n  margin-bottom: 0; }\n\n/*\n    Styling for the rule panels\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel {\n  border: 1px solid #e2e4e7;\n  margin-bottom: 1em;\n  background: #fcfcfc;\n  width: 100%; }\n\n/*\n    It seems WP changed to capitalize labels, and that looks weird for us, so\n    we'll normalize that.\n*/\n.content-visibility-controls.is-opened .content-visibility-control-panel label {\n  text-transform: none;\n  font-weight: normal;\n  font-size: 1em; }\n\n.content-visibility-controls.is-opened .content-visibility-control-panel.is-opened .components-panel__body-toggle {\n  border-bottom: 1px solid #e2e4e7; }\n\n/*\n    When the rules are disabled (default) we lower opacity of controls\n*/\n.content-visibility-controls-container.hide-controls {\n  opacity: 0.2; }\n\n.components-disabled {\n  opacity: 0.5; }\n\n/*\n    Tidy up margins for user auth\n*/\n.content-visibility-user-authenticated-controls .components-panel__row .content-visibility-user-authenticated-control {\n  margin-bottom: 0; }\n\n/*\n    User roles have a massive margin, reduce that\n*/\n.content-visibility-user-role-controls .components-panel__row ul {\n  margin-bottom: 0; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control {\n  margin-bottom: 5px; }\n\n.content-visibility-user-role-controls .components-panel__row ul .components-base-control:last-of-type {\n  margin-bottom: 0; }\n\n/*\n    When a block has rules enabled, we style it to show it has rules. Looks a bit weird that we have two\n    rules almost identical. But the BlockListBlock component only accepts one className so this is how it has to be.\n    Different icons used for 'shown' or 'hidden' rules.\n*/\n.wp-admin .wp-block.content-visibility-rules-enabled-shown:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  position: absolute;\n  top: 0;\n  right: -2em;\n  opacity: 0.2;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>') !important; }\n\n.wp-admin .wp-block.content-visibility-rules-enabled-hidden:after {\n  display: block;\n  height: 24px;\n  width: 24px;\n  position: absolute;\n  top: 0;\n  right: -2em;\n  opacity: 0.2;\n  box-shadow: none !important;\n  content: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-eye-off\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></svg>') !important; }\n\n/*\n    Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n  margin: 1rem 0 0 !important;\n  font-size: 12px;\n  font-style: normal;\n  color: #757575;\n  clear: both;\n  float: none;\n  width: 100%; }\n\n/*\n    Multi-select component\n    ----------------------    \n*/\n.content-visibility-multi-select {\n  width: 100%;\n  margin: 1rem 0 0 0;\n  border: 1px solid #ccc;\n  padding: 0.25em 0.5em;\n  background: white; }\n\n.content-visibility-multi-select .dropdown-content {\n  background: white;\n  z-index: 999; }\n\n/*\n    Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n  overflow-x: hidden; }\n\n/*\n    Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n  width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n  max-width: none;\n  margin-right: 0;\n  padding: 0.7rem 0.7rem 0; }\n\n/*\n    Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n  background: transparent; }\n\n/*\n    Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n  padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n  margin-right: 0.5rem; }\n\n/*\n    Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n  height: 20px;\n  display: inline-block; }\n\n/*\n    Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n  margin-top: 0.25rem;\n  padding: 0 0.25rem; }\n\n/*\n    Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n  opacity: 0.5; }\n\n/*\n    Popover content toggle buttons. Make sure they can handle long values as someone may\n    select multiple options. Give max-width to ensure the button's icon is inline.\n    min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n  white-space: break-spaces;\n  max-width: 85%;\n  min-width: 190px;\n  font-size: 12px;\n  line-height: 1.6;\n  box-shadow: none; }\n\n/*\n    If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n  text-decoration: none;\n  line-height: 1.6;\n  text-transform: capitalize; }\n\n/*\n    The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n  margin-top: 1rem;\n  margin-bottom: 1rem; }\n\n/*\n    When a specific rule is set, we add a little indicator so folks can see which types of rules are set at a glance.\n*/\n.content-visibility-control-panel.has-active-rules h2 button::after {\n  content: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300a32a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check-circle'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'%3E%3C/path%3E%3Cpolyline points='22 4 12 14.01 9 11.01'%3E%3C/polyline%3E%3C/svg%3E\");\n  display: inline-block;\n  height: 12px;\n  width: 12px;\n  margin-left: 0.5rem;\n  line-height: 1; }\n\n/*\n    Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n  font-size: 12px;\n  margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n  padding: 1rem;\n  width: 23rem;\n  height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n  text-align: right;\n  margin-top: 1rem;\n  margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n  margin-left: 0;\n  margin-right: 0;\n  padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n  position: relative;\n  top: 3px;\n  color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n  text-align: right;\n  margin-top: 0; }\n\n/*\n    Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n  color: black;\n  font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n  position: absolute;\n  top: 0;\n  right: 0; }\n\n/*\n    Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n  flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n  margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n  position: relative;\n  top: 4px;\n  opacity: 0.6; }\n"],"sourceRoot":""}
  • content-visibility/trunk/build/index.js

    r2589501 r2833193  
    176176  \***************************************************************/
    177177/*! no static exports found */
    178 /***/ (function(module, exports) {
    179 
     178/***/ (function(module, exports, __webpack_require__) {
     179
     180var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/toPropertyKey.js");
    180181function _defineProperty(obj, key, value) {
     182  key = toPropertyKey(key);
    181183  if (key in obj) {
    182184    Object.defineProperty(obj, key, {
     
    189191    obj[key] = value;
    190192  }
    191 
    192193  return obj;
    193194}
    194 
    195 module.exports = _defineProperty;
     195module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
    196196
    197197/***/ }),
     
    205205
    206206function _extends() {
    207   module.exports = _extends = Object.assign || function (target) {
     207  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
    208208    for (var i = 1; i < arguments.length; i++) {
    209209      var source = arguments[i];
    210 
    211210      for (var key in source) {
    212211        if (Object.prototype.hasOwnProperty.call(source, key)) {
     
    215214      }
    216215    }
    217 
    218216    return target;
    219   };
    220 
     217  }, module.exports.__esModule = true, module.exports["default"] = module.exports;
    221218  return _extends.apply(this, arguments);
    222219}
    223 
    224 module.exports = _extends;
     220module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
     221
     222/***/ }),
     223
     224/***/ "./node_modules/@babel/runtime/helpers/toPrimitive.js":
     225/*!************************************************************!*\
     226  !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
     227  \************************************************************/
     228/*! no static exports found */
     229/***/ (function(module, exports, __webpack_require__) {
     230
     231var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"];
     232function _toPrimitive(input, hint) {
     233  if (_typeof(input) !== "object" || input === null) return input;
     234  var prim = input[Symbol.toPrimitive];
     235  if (prim !== undefined) {
     236    var res = prim.call(input, hint || "default");
     237    if (_typeof(res) !== "object") return res;
     238    throw new TypeError("@@toPrimitive must return a primitive value.");
     239  }
     240  return (hint === "string" ? String : Number)(input);
     241}
     242module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
     243
     244/***/ }),
     245
     246/***/ "./node_modules/@babel/runtime/helpers/toPropertyKey.js":
     247/*!**************************************************************!*\
     248  !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
     249  \**************************************************************/
     250/*! no static exports found */
     251/***/ (function(module, exports, __webpack_require__) {
     252
     253var _typeof = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"];
     254var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/toPrimitive.js");
     255function _toPropertyKey(arg) {
     256  var key = toPrimitive(arg, "string");
     257  return _typeof(key) === "symbol" ? key : String(key);
     258}
     259module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
    225260
    226261/***/ }),
     
    236271  "@babel/helpers - typeof";
    237272
    238   if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    239     module.exports = _typeof = function _typeof(obj) {
    240       return typeof obj;
    241     };
    242   } else {
    243     module.exports = _typeof = function _typeof(obj) {
    244       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    245     };
    246   }
    247 
    248   return _typeof(obj);
     273  return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
     274    return typeof obj;
     275  } : function (obj) {
     276    return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
     277  }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
    249278}
    250 
    251 module.exports = _typeof;
    252 
    253 /***/ }),
    254 
    255 /***/ "./node_modules/goober/dist/goober.module.js":
    256 /*!***************************************************!*\
    257   !*** ./node_modules/goober/dist/goober.module.js ***!
    258   \***************************************************/
     279module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
     280
     281/***/ }),
     282
     283/***/ "./node_modules/goober/dist/goober.esm.js":
     284/*!************************************************!*\
     285  !*** ./node_modules/goober/dist/goober.esm.js ***!
     286  \************************************************/
    259287/*! exports provided: css, extractCss, glob, keyframes, setup, styled */
    260288/***/ (function(module, __webpack_exports__, __webpack_require__) {
     
    262290"use strict";
    263291__webpack_require__.r(__webpack_exports__);
    264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; });
     292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return u; });
    265293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractCss", function() { return r; });
    266 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return d; });
    267 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return g; });
    268 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return b; });
    269 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return h; });
    270 let e={data:""},t=t=>{try{let e=t?t.querySelector("#_goober"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement("style")),e.innerHTML=" ",e.id="_goober"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data="",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\/\*[\s\S]*?\*\/|\s{2,}|\n/gm,o=(e,t)=>{let r,a="",l="",n="";for(let c in e){let s=e[c];"object"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):c,l+="@"==c[0]?"f"==c[1]?o(s,c):c+"{"+o(s,"k"==c[1]?"":t)+"}":o(s,r)):"@"==c[0]&&"i"==c[1]?a=c+" "+s+";":n+=o.p?o.p(c.replace(/[A-Z]/g,"-$&").toLowerCase(),s):c.replace(/[A-Z]/g,"-$&").toLowerCase()+":"+s+";"}return n[0]?(r=t?t+"{"+n+"}":n,a+r+l):a+l},n={},c=e=>{let t="";for(let r in e)t+=r+("object"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i="object"==typeof e?c(e):e,u=n[i]||(n[i]="go"+i.split("").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t="object"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,""));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{["@keyframes "+u]:t}:t,r?"":"."+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):e}return e+a+(null==n?"":n)},"");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/g.test(s),c.className=i.apply(r,a)+(s?" "+s:""),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}
     294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "glob", function() { return b; });
     295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return h; });
     296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setup", function() { return m; });
     297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styled", function() { return j; });
     298let e={data:""},t=t=>"object"==typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data="",l},l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,a=/\/\*[^]*?\*\/|  +/g,n=/\n+/g,o=(e,t)=>{let r="",l="",a="";for(let n in e){let c=e[n];"@"==n[0]?"i"==n[1]?r=n+" "+c+";":l+="f"==n[1]?o(c,n):n+"{"+o(c,"k"==n[1]?"":t)+"}":"object"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=o.p?o.p(n,c):n+":"+c+";")}return r+(t&&a?t+"{"+a+"}":a)+l},c={},s=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return"go"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,""));)t[4]?o.shift():t[3]?(r=t[3].replace(n," ").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n," ").trim();return o[0]})(e);c[d]=o(p?{["@keyframes "+d]:t}:t,r?"":"."+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":o(e,""):!1===e?"":e}return e+l+(null==n?"":n)},"");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/.test(s),c.className=u.apply(r,l)+(s?" "+s:""),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}
    271299
    272300
     
    21742202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; });
    21752203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectPanel", function() { return SelectPanel; });
    2176 /* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.module.js");
     2204/* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! goober */ "./node_modules/goober/dist/goober.esm.js");
    21772205/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
    21782206/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
     
    21802208
    21812209
    2182 var debounce = function debounce(func, wait) {
    2183   var timeout;
    2184   return function () {
    2185     for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    2186       args[_key] = arguments[_key];
     2210const defaultStrings = {
     2211  allItemsAreSelected: "All items are selected.",
     2212  clearSearch: "Clear Search",
     2213  clearSelected: "Clear Selected",
     2214  noOptions: "No options",
     2215  search: "Search",
     2216  selectAll: "Select All",
     2217  selectSomeItems: "Select..."
     2218};
     2219const defaultProps = {
     2220  value: [],
     2221  focusSearchOnOpen: true,
     2222  hasSelectAll: true,
     2223  className: "multi-select",
     2224  debounceDuration: 200,
     2225  options: []
     2226};
     2227const MultiSelectContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createContext({});
     2228const MultiSelectProvider = ({
     2229  props,
     2230  children
     2231}) => {
     2232  const t = key => {
     2233    var _props$overrideString;
     2234
     2235    return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];
     2236  };
     2237
     2238  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectContext.Provider, {
     2239    value: {
     2240      t,
     2241      ...defaultProps,
     2242      ...props
    21872243    }
    2188 
     2244  }, children);
     2245};
     2246const useMultiSelect = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.useContext(MultiSelectContext);
     2247
     2248/**
     2249 * combines classNames in a friendly way
     2250 *
     2251 * @param {*} classes
     2252 */
     2253const cn = (...classes) => classes.join(" ");
     2254
     2255/**
     2256 * similar to `useEffect` but gets triggered only when value changes
     2257 * @param fn executable function on dependency updates
     2258 * @param inputs dependency array
     2259 */
     2260
     2261function useDidUpdateEffect(fn, inputs) {
     2262  const didMountRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false);
     2263  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
     2264    if (didMountRef.current) fn();else didMountRef.current = true;
     2265  }, inputs);
     2266}
     2267
     2268const debounce = (func, wait) => {
     2269  let timeout;
     2270  return function (...args) {
    21892271    clearTimeout(timeout);
    2190     timeout = setTimeout(function () {
     2272    timeout = setTimeout(() => {
    21912273      func.apply(null, args);
    21922274    }, wait);
     
    22132295  }
    22142296
    2215   var cleanFilter = cleanUpText(filter, substitutions);
     2297  const cleanFilter = cleanUpText(filter, substitutions);
    22162298  return options // Filter out undefined or null Options.
    2217   .filter(function (_ref) {
    2218     var label = _ref.label,
    2219         value = _ref.value;
    2220     return label != null && value != null;
    2221   }) // Create a {score, Option} pair for each Option based on its label's
     2299  .filter(({
     2300    label,
     2301    value
     2302  }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's
    22222303  // similarity to the filter text.
    2223   .map(function (option) {
    2224     return {
    2225       option: option,
    2226       score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)
    2227     };
    2228   }) // Only include matches of the entire substring, with a slight
     2304  .map(option => ({
     2305    option: option,
     2306    score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)
     2307  })) // Only include matches of the entire substring, with a slight
    22292308  // affordance for transposition or extra characters.
    2230   .filter(function (pair) {
    2231     return pair.score >= cleanFilter.length - 2;
    2232   }) // Sort 'em by order of their score.
    2233   .sort(function (a, b) {
    2234     return b.score - a.score;
    2235   }) // …and grab the original Options back from their pairs.
    2236   .map(function (pair) {
    2237     return pair.option;
    2238   });
     2309  .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.
     2310  .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.
     2311  .map(pair => pair.option);
    22392312}
    22402313/**
     
    22542327
    22552328function typeaheadSimilarity(a, b) {
    2256   var aLength = a.length;
    2257   var bLength = b.length;
    2258   var table = [];
     2329  const aLength = a.length;
     2330  const bLength = b.length;
     2331  const table = [];
    22592332
    22602333  if (!aLength || !bLength) {
     
    22642337
    22652338  if (aLength < bLength) {
    2266     var _ref2 = [b, a];
    2267     a = _ref2[0];
    2268     b = _ref2[1];
     2339    [a, b] = [b, a];
    22692340  } // Early exit if `a` includes `b`; these will be scored higher than any
    22702341  // other options with the same `b` (filter string), with a preference for
     
    22862357
    22872358
    2288   for (var x = 0; x <= aLength; ++x) {
     2359  for (let x = 0; x <= aLength; ++x) {
    22892360    table[x] = [0];
    22902361  }
    22912362
    2292   for (var y = 0; y <= bLength; ++y) {
     2363  for (let y = 0; y <= bLength; ++y) {
    22932364    table[0][y] = 0;
    22942365  } // Populate the rest of the table with a dynamic programming algorithm.
    22952366
    22962367
    2297   for (var _x = 1; _x <= aLength; ++_x) {
    2298     for (var _y = 1; _y <= bLength; ++_y) {
    2299       table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);
     2368  for (let x = 1; x <= aLength; ++x) {
     2369    for (let y = 1; y <= bLength; ++y) {
     2370      table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);
    23002371    }
    23012372  }
     
    23302401  }
    23312402
    2332   var safeSubstitutions = substitutions; // For Flow.
     2403  const safeSubstitutions = substitutions; // For Flow.
    23332404  // Replace all strings in `safeSubstitutions` with their standardized
    23342405  // counterparts.
    23352406
    2336   return Object.keys(safeSubstitutions).reduce(function (output, substitution) {
    2337     var unsubbed = new RegExp(substitution, "g");
     2407  return Object.keys(safeSubstitutions).reduce((output, substitution) => {
     2408    const unsubbed = new RegExp(substitution, "g");
    23382409    return output.replace(unsubbed, safeSubstitutions[substitution]);
    23392410  }, input);
    23402411}
    23412412
    2342 var strings = {
    2343   selectSomeItems: "Select...",
    2344   allItemsAreSelected: "All items are selected.",
    2345   selectAll: "Select All",
    2346   search: "Search",
    2347   clearSearch: "Clear Search",
    2348   clearSelected: "Clear Selected"
    2349 };
    2350 function getString(key, overrideStrings) {
    2351   return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];
    2352 }
    2353 
    2354 var Cross = function Cross() {
    2355   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
    2356     width: "24",
    2357     height: "24",
    2358     fill: "none",
    2359     stroke: "currentColor",
    2360     strokeWidth: "2",
    2361     className: "dropdown-search-clear-icon gray"
    2362   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
    2363     x1: "18",
    2364     y1: "6",
    2365     x2: "6",
    2366     y2: "18"
    2367   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
    2368     x1: "6",
    2369     y1: "6",
    2370     x2: "18",
    2371     y2: "18"
    2372   }));
    2373 };
    2374 
    2375 var DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2413const Cross = () => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2414  width: "24",
     2415  height: "24",
     2416  fill: "none",
     2417  stroke: "currentColor",
     2418  strokeWidth: "2",
     2419  className: "dropdown-search-clear-icon gray"
     2420}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
     2421  x1: "18",
     2422  y1: "6",
     2423  x2: "6",
     2424  y2: "18"
     2425}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", {
     2426  x1: "6",
     2427  y1: "6",
     2428  x2: "18",
     2429  y2: "18"
     2430}));
     2431
     2432const DefaultRenderer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    23762433  "& input,& span": {
    23772434    verticalAlign: "middle",
     
    23872444});
    23882445
    2389 var DefaultItemRenderer = function DefaultItemRenderer(_ref) {
    2390   var checked = _ref.checked,
    2391       option = _ref.option,
    2392       onClick = _ref.onClick,
    2393       disabled = _ref.disabled;
    2394   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    2395     className: DefaultRenderer + " item-renderer " + (disabled && "disabled")
    2396   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
    2397     type: "checkbox",
    2398     onChange: onClick,
    2399     checked: checked,
    2400     tabIndex: -1,
    2401     disabled: disabled
    2402   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label));
    2403 };
     2446const DefaultItemRenderer = ({
     2447  checked,
     2448  option,
     2449  onClick,
     2450  disabled
     2451}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     2452  className: cn(DefaultRenderer, "item-renderer", disabled && "disabled")
     2453}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
     2454  type: "checkbox",
     2455  onChange: onClick,
     2456  checked: checked,
     2457  tabIndex: -1,
     2458  disabled: disabled
     2459}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, option.label));
    24042460
    24052461/**
    24062462 * This component represents an individual item in the multi-select drop-down
    24072463 */
    2408 var ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2464const ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    24092465  boxSizing: "border-box",
    24102466  cursor: "pointer",
     
    24202476});
    24212477
    2422 var SelectItem = function SelectItem(_ref) {
    2423   var _ref$itemRenderer = _ref.itemRenderer,
    2424       ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,
    2425       option = _ref.option,
    2426       checked = _ref.checked,
    2427       focused = _ref.focused,
    2428       tabIndex = _ref.tabIndex,
    2429       disabled = _ref.disabled,
    2430       onSelectionChanged = _ref.onSelectionChanged,
    2431       onClick = _ref.onClick;
    2432   var itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
    2433   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2478const SelectItem = ({
     2479  itemRenderer: ItemRenderer = DefaultItemRenderer,
     2480  option,
     2481  checked,
     2482  focused,
     2483  tabIndex,
     2484  disabled,
     2485  onSelectionChanged,
     2486  onClick
     2487}) => {
     2488  const itemRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2489  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
    24342490    updateFocus(); // eslint-disable-next-line
    2435   }, [focused]);
    2436 
    2437   var toggleChecked = function toggleChecked() {
     2491  }, [checked, focused]);
     2492
     2493  const toggleChecked = () => {
    24382494    onSelectionChanged(!checked);
    24392495  };
    24402496
    2441   var handleClick = function handleClick(e) {
     2497  const handleClick = e => {
    24422498    toggleChecked();
    24432499    onClick(e);
    24442500  };
    24452501
    2446   var updateFocus = function updateFocus() {
     2502  const updateFocus = () => {
    24472503    if (focused && !disabled && itemRef) {
    24482504      itemRef.current.focus();
     
    24502506  };
    24512507
    2452   var handleKeyDown = function handleKeyDown(e) {
     2508  const handleKeyDown = e => {
    24532509    switch (e.which) {
    24542510      case 13: // Enter
     
    24672523
    24682524  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", {
    2469     className: ItemContainer + " select-item " + (checked && "selected"),
     2525    className: cn(ItemContainer, "select-item", checked && "selected"),
    24702526    role: "option",
    24712527    "aria-selected": checked,
     
    24842540 * This component represents an unadorned list of SelectItem (s).
    24852541 */
    2486 var SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2542const SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    24872543  margin: 0,
    24882544  paddingLeft: 0,
     
    24922548  }
    24932549});
    2494 var skipIndex = 2;
    2495 
    2496 var SelectList = function SelectList(_ref) {
    2497   var value = _ref.value,
    2498       onChange = _ref.onChange,
    2499       disabled = _ref.disabled,
    2500       ItemRenderer = _ref.ItemRenderer,
    2501       options = _ref.options,
    2502       focusIndex = _ref.focusIndex,
    2503       _onClick = _ref.onClick;
    2504 
    2505   var handleSelectionChanged = function handleSelectionChanged(option, checked) {
     2550const skipIndex = 2;
     2551
     2552const SelectList = ({
     2553  options,
     2554  focusIndex,
     2555  onClick
     2556}) => {
     2557  const {
     2558    disabled,
     2559    value,
     2560    onChange,
     2561    ItemRenderer
     2562  } = useMultiSelect();
     2563
     2564  const handleSelectionChanged = (option, checked) => {
    25062565    if (disabled) {
    25072566      return;
    25082567    }
    25092568
    2510     onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {
    2511       return o.value !== option.value;
    2512     }));
     2569    onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));
    25132570  };
    25142571
    25152572  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", {
    25162573    className: SelectListUl
    2517   }, options.map(function (o, i) {
    2518     var tabIndex = i + skipIndex;
     2574  }, options.map((o, i) => {
     2575    const tabIndex = i + skipIndex;
    25192576    return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", {
    2520       key: o.hasOwnProperty("key") ? o.key : i
     2577      key: (o == null ? void 0 : o.key) || i
    25212578    }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, {
    25222579      focused: focusIndex === tabIndex,
    25232580      tabIndex: tabIndex,
    25242581      option: o,
    2525       onSelectionChanged: function onSelectionChanged(c) {
    2526         return handleSelectionChanged(o, c);
    2527       },
    2528       checked: value.find(function (s) {
    2529         return s.value === o.value;
    2530       }) ? true : false,
    2531       onClick: function onClick(e) {
    2532         return _onClick(e, tabIndex);
    2533       },
     2582      onSelectionChanged: c => handleSelectionChanged(o, c),
     2583      checked: value.find(s => s.value === o.value) ? true : false,
     2584      onClick: e => onClick(e, tabIndex),
    25342585      itemRenderer: ItemRenderer,
    25352586      disabled: o.disabled || disabled
     
    25502601})(FocusType || (FocusType = {}));
    25512602
    2552 var SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2603const SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    25532604  width: "100%",
    25542605  position: "relative",
     
    25622613  }
    25632614});
    2564 var SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2615const SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    25652616  cursor: "pointer",
    25662617  position: "absolute",
     
    25752626  }
    25762627});
    2577 var SelectPanel = function SelectPanel(props) {
    2578   var onChange = props.onChange,
    2579       options = props.options,
    2580       value = props.value,
    2581       customFilterOptions = props.filterOptions,
    2582       selectAllLabel = props.selectAllLabel,
    2583       ItemRenderer = props.ItemRenderer,
    2584       disabled = props.disabled,
    2585       disableSearch = props.disableSearch,
    2586       focusSearchOnOpen = props.focusSearchOnOpen,
    2587       hasSelectAll = props.hasSelectAll,
    2588       overrideStrings = props.overrideStrings,
    2589       ClearIcon = props.ClearIcon,
    2590       debounceDuration = props.debounceDuration;
    2591 
    2592   var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""),
    2593       searchText = _useState[0],
    2594       setSearchText = _useState[1];
    2595 
    2596   var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(""),
    2597       searchTextForFilter = _useState2[0],
    2598       setSearchTextForFilter = _useState2[1];
    2599 
    2600   var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),
    2601       focusIndex = _useState3[0],
    2602       setFocusIndex = _useState3[1];
    2603 
    2604   var debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(function (query) {
    2605     return setSearchTextForFilter(query);
    2606   }, debounceDuration), []);
    2607   var selectAllOption = {
    2608     label: selectAllLabel || getString("selectAll", overrideStrings),
     2628const NoOptions = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2629  padding: "var(--rmsc-p)",
     2630  textAlign: "center",
     2631  color: "var(--rmsc-gray)"
     2632});
     2633
     2634const SelectPanel = () => {
     2635  const {
     2636    t,
     2637    onChange,
     2638    options,
     2639    value,
     2640    filterOptions: customFilterOptions,
     2641    selectAllLabel,
     2642    ItemRenderer,
     2643    disabled,
     2644    disableSearch,
     2645    focusSearchOnOpen,
     2646    hasSelectAll,
     2647    ClearIcon,
     2648    debounceDuration
     2649  } = useMultiSelect();
     2650  const searchInputRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2651  const [searchText, setSearchText] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])("");
     2652  const [filteredOptions, setFilteredOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(options);
     2653  const [searchTextForFilter, setSearchTextForFilter] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])("");
     2654  const [focusIndex, setFocusIndex] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);
     2655  const debouncedSearch = Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(debounce(query => setSearchTextForFilter(query), debounceDuration), []);
     2656  const selectAllOption = {
     2657    label: selectAllLabel || t("selectAll"),
    26092658    value: ""
    26102659  };
    26112660
    2612   var selectAllValues = function selectAllValues(checked) {
    2613     var filteredValues = filteredOptions().filter(function (o) {
    2614       return !o.disabled;
    2615     }).map(function (o) {
    2616       return o.value;
    2617     });
     2661  const selectAllValues = checked => {
     2662    const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);
    26182663
    26192664    if (checked) {
    2620       var selectedValues = value.map(function (o) {
    2621         return o.value;
    2622       });
    2623       var finalSelectedValues = [].concat(selectedValues, filteredValues);
    2624       return options.filter(function (_ref) {
    2625         var value = _ref.value;
    2626         return finalSelectedValues.includes(value);
    2627       });
     2665      const selectedValues = value.map(o => o.value);
     2666      const finalSelectedValues = [...selectedValues, ...filteredValues];
     2667      return filteredOptions.filter(o => finalSelectedValues.includes(o.value));
    26282668    }
    26292669
    2630     return value.filter(function (o) {
    2631       return !filteredValues.includes(o.value);
    2632     });
     2670    return value.filter(o => !filteredValues.includes(o.value));
    26332671  };
    26342672
    2635   var selectAllChanged = function selectAllChanged(checked) {
    2636     var newOptions = selectAllValues(checked);
     2673  const selectAllChanged = checked => {
     2674    const newOptions = selectAllValues(checked);
    26372675    onChange(newOptions);
    26382676  };
    26392677
    2640   var handleSearchChange = function handleSearchChange(e) {
     2678  const handleSearchChange = e => {
    26412679    debouncedSearch(e.target.value);
    26422680    setSearchText(e.target.value);
     
    26442682  };
    26452683
    2646   var handleClear = function handleClear() {
     2684  const handleClear = () => {
     2685    var _searchInputRef$curre;
     2686
    26472687    setSearchTextForFilter("");
    26482688    setSearchText("");
     2689    searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();
    26492690  };
    26502691
    2651   var handleItemClicked = function handleItemClicked(index) {
    2652     return setFocusIndex(index);
    2653   };
    2654 
    2655   var handleKeyDown = function handleKeyDown(e) {
     2692  const handleItemClicked = index => setFocusIndex(index);
     2693
     2694  const handleKeyDown = e => {
    26562695    switch (e.which) {
    26572696      case 38:
     
    26812720  };
    26822721
    2683   var handleSearchFocus = function handleSearchFocus() {
     2722  const handleSearchFocus = () => {
    26842723    setFocusIndex(FocusType.SEARCH);
    26852724  };
    26862725
    2687   var filteredOptions = function filteredOptions() {
    2688     return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);
    2689   };
    2690 
    2691   var updateFocus = function updateFocus(offset) {
    2692     var newFocus = focusIndex + offset;
     2726  const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);
     2727
     2728  const updateFocus = offset => {
     2729    let newFocus = focusIndex + offset;
    26932730    newFocus = Math.max(1, newFocus);
    26942731    newFocus = Math.min(newFocus, options.length + 1);
     
    26962733  };
    26972734
    2698   var _useMemo = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () {
    2699     var filteredOptionsList = filteredOptions().filter(function (o) {
    2700       return !o.disabled;
    2701     });
    2702     return [filteredOptionsList.every(function (o) {
    2703       return value.findIndex(function (v) {
    2704         return v.value === o.value;
    2705       }) !== -1;
    2706     }), filteredOptionsList.length !== 0]; // eslint-disable-next-line
    2707   }, [searchText, value]),
    2708       isAllOptionSelected = _useMemo[0],
    2709       hasSelectableOptions = _useMemo[1];
    2710 
     2735  const [isAllOptionSelected, hasSelectableOptions] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => {
     2736    const filteredOptionsList = filteredOptions.filter(o => !o.disabled);
     2737    return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line
     2738  }, [filteredOptions, value]);
     2739  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
     2740    getFilteredOptions().then(setFilteredOptions);
     2741  }, [searchTextForFilter, options]);
    27112742  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    27122743    className: "select-panel",
     
    27172748  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
    27182749    autoFocus: focusSearchOnOpen,
    2719     placeholder: getString("search", overrideStrings),
     2750    placeholder: t("search"),
    27202751    type: "text",
    2721     "aria-describedby": getString("search", overrideStrings),
    2722     onKeyDown: function onKeyDown(e) {
    2723       return e.stopPropagation();
    2724     },
     2752    "aria-describedby": t("search"),
     2753    onKeyDown: e => e.stopPropagation(),
    27252754    onChange: handleSearchChange,
    27262755    onFocus: handleSearchFocus,
    2727     value: searchText
     2756    value: searchText,
     2757    ref: searchInputRef
    27282758  }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
    27292759    type: "button",
    2730     className: SearchClearButton + " search-clear-button",
     2760    className: cn(SearchClearButton, "search-clear-button"),
    27312761    hidden: !searchText,
    27322762    onClick: handleClear,
    2733     "aria-label": getString("clearSearch", overrideStrings)
     2763    "aria-label": t("clearSearch")
    27342764  }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, {
    27352765    focused: focusIndex === 1,
     
    27382768    option: selectAllOption,
    27392769    onSelectionChanged: selectAllChanged,
    2740     onClick: function onClick() {
    2741       return handleItemClicked(0);
    2742     },
     2770    onClick: () => handleItemClicked(1),
    27432771    itemRenderer: ItemRenderer,
    27442772    disabled: disabled
    2745   }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, {
    2746     options: filteredOptions(),
     2773  }), filteredOptions.length ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, {
     2774    options: filteredOptions,
    27472775    focusIndex: focusIndex,
    2748     onClick: function onClick(_e, index) {
    2749       return handleItemClicked(index);
    2750     },
    2751     ItemRenderer: ItemRenderer,
    2752     disabled: disabled
    2753   })));
     2776    onClick: (_e, index) => handleItemClicked(index)
     2777  }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     2778    className: cn(NoOptions, "no-options")
     2779  }, t("noOptions")));
    27542780};
    27552781
    2756 function Arrow(_ref) {
    2757   var expanded = _ref.expanded;
    2758   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
    2759     width: "24",
    2760     height: "24",
    2761     fill: "none",
    2762     stroke: "currentColor",
    2763     strokeWidth: "2",
    2764     className: "dropdown-heading-dropdown-arrow gray"
    2765   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", {
    2766     d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9"
    2767   }));
    2768 }
    2769 
    2770 var Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2782const Arrow = ({
     2783  expanded
     2784}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2785  width: "24",
     2786  height: "24",
     2787  fill: "none",
     2788  stroke: "currentColor",
     2789  strokeWidth: "2",
     2790  className: "dropdown-heading-dropdown-arrow gray"
     2791}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("path", {
     2792  d: expanded ? "M18 15 12 9 6 15" : "M6 9L12 15 18 9"
     2793}));
     2794
     2795const DropdownHeader = () => {
     2796  const {
     2797    t,
     2798    value,
     2799    options,
     2800    valueRenderer
     2801  } = useMultiSelect();
     2802  const noneSelected = value.length === 0;
     2803  const allSelected = value.length === options.length;
     2804  const customText = valueRenderer && valueRenderer(value, options);
     2805
     2806  const getSelectedText = () => value.map(s => s.label).join(", ");
     2807
     2808  return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
     2809    className: "gray"
     2810  }, customText || t("selectSomeItems")) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? t("allItemsAreSelected") : getSelectedText()));
     2811};
     2812
     2813const Spinner = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    27712814  animation: "rotate 2s linear infinite",
    27722815  "& .path": {
     
    27962839  }
    27972840});
    2798 
    2799 function Loading(_ref) {
    2800   var _ref$size = _ref.size,
    2801       size = _ref$size === void 0 ? 24 : _ref$size;
    2802   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    2803     style: {
    2804       width: size,
    2805       marginRight: "0.2rem"
    2806     }
    2807   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2841const Loading = ({
     2842  size = 24
     2843}) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
     2844  style: {
    28082845    width: size,
    2809     height: size,
    2810     className: Spinner,
    2811     viewBox: "0 0 50 50",
    2812     style: {
    2813       display: "inline",
    2814       verticalAlign: "middle"
    2815     }
    2816   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", {
    2817     cx: "25",
    2818     cy: "25",
    2819     r: "20",
    2820     fill: "none",
    2821     className: "path"
    2822   })));
    2823 }
     2846    marginRight: "0.2rem"
     2847  }
     2848}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("svg", {
     2849  width: size,
     2850  height: size,
     2851  className: Spinner,
     2852  viewBox: "0 0 50 50",
     2853  style: {
     2854    display: "inline",
     2855    verticalAlign: "middle"
     2856  }
     2857}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("circle", {
     2858  cx: "25",
     2859  cy: "25",
     2860  r: "20",
     2861  fill: "none",
     2862  className: "path"
     2863})));
    28242864
    28252865/**
     
    28282868 * drops-down the contentComponent and applies the contentProps.
    28292869 */
    2830 var PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2870const PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28312871  position: "absolute",
    28322872  zIndex: 1,
     
    28422882  }
    28432883});
    2844 var DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2884const DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28452885  position: "relative",
    28462886  outline: 0,
     
    28532893  }
    28542894});
    2855 var DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2895const DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28562896  position: "relative",
    28572897  padding: "0 var(--rmsc-p)",
     
    28692909  }
    28702910});
    2871 var ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     2911const ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    28722912  cursor: "pointer",
    28732913  background: "none",
     
    28772917});
    28782918
    2879 var Dropdown = function Dropdown(_ref) {
    2880   var children = _ref.children,
    2881       ContentComponent = _ref.contentComponent,
    2882       contentProps = _ref.contentProps,
    2883       isLoading = _ref.isLoading,
    2884       disabled = _ref.disabled,
    2885       shouldToggleOnHover = _ref.shouldToggleOnHover,
    2886       labelledBy = _ref.labelledBy,
    2887       onMenuToggle = _ref.onMenuToggle,
    2888       ArrowRenderer = _ref.ArrowRenderer,
    2889       ClearSelectedIcon = _ref.ClearSelectedIcon,
    2890       defaultIsOpen = _ref.defaultIsOpen,
    2891       isOpen = _ref.isOpen;
    2892 
    2893   var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true),
    2894       isInternalExpand = _useState[0],
    2895       setIsInternalExpand = _useState[1];
    2896 
    2897   var _useState2 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen),
    2898       expanded = _useState2[0],
    2899       setExpanded = _useState2[1];
    2900 
    2901   var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false),
    2902       hasFocus = _useState3[0],
    2903       setHasFocus = _useState3[1];
    2904 
    2905   var FinalArrow = ArrowRenderer || Arrow;
    2906   var wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
    2907   /* eslint-disable react-hooks/exhaustive-deps */
    2908 
    2909   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2919const Dropdown = () => {
     2920  const {
     2921    t,
     2922    onMenuToggle,
     2923    ArrowRenderer,
     2924    shouldToggleOnHover,
     2925    isLoading,
     2926    disabled,
     2927    onChange,
     2928    labelledBy,
     2929    value,
     2930    isOpen,
     2931    defaultIsOpen,
     2932    ClearSelectedIcon
     2933  } = useMultiSelect();
     2934  const [isInternalExpand, setIsInternalExpand] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(true);
     2935  const [expanded, setExpanded] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(defaultIsOpen);
     2936  const [hasFocus, setHasFocus] = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false);
     2937  const FinalArrow = ArrowRenderer || Arrow;
     2938  const wrapper = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])();
     2939  useDidUpdateEffect(() => {
    29102940    onMenuToggle && onMenuToggle(expanded);
    29112941  }, [expanded]);
    2912   Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
     2942  Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(() => {
    29132943    if (defaultIsOpen === undefined && typeof isOpen === "boolean") {
    29142944      setIsInternalExpand(false);
     
    29172947  }, [isOpen]);
    29182948
    2919   var handleKeyDown = function handleKeyDown(e) {
     2949  const handleKeyDown = e => {
    29202950    var _wrapper$current;
    29212951
     
    29472977  };
    29482978
    2949   var handleHover = function handleHover(iexpanded) {
     2979  const handleHover = iexpanded => {
    29502980    isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);
    29512981  };
    29522982
    2953   var handleFocus = function handleFocus() {
    2954     return !hasFocus && setHasFocus(true);
    2955   };
    2956 
    2957   var handleBlur = function handleBlur(e) {
     2983  const handleFocus = () => !hasFocus && setHasFocus(true);
     2984
     2985  const handleBlur = e => {
    29582986    if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {
    29592987      setHasFocus(false);
     
    29622990  };
    29632991
    2964   var handleMouseEnter = function handleMouseEnter() {
    2965     return handleHover(true);
    2966   };
    2967 
    2968   var handleMouseLeave = function handleMouseLeave() {
    2969     return handleHover(false);
    2970   };
    2971 
    2972   var toggleExpanded = function toggleExpanded() {
     2992  const handleMouseEnter = () => handleHover(true);
     2993
     2994  const handleMouseLeave = () => handleHover(false);
     2995
     2996  const toggleExpanded = () => {
    29732997    isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);
    29742998  };
    29752999
    2976   var handleClearSelected = function handleClearSelected(e) {
     3000  const handleClearSelected = e => {
    29773001    e.stopPropagation();
    2978     contentProps["onChange"]([]);
     3002    onChange([]);
    29793003    isInternalExpand && setExpanded(false);
    29803004  };
     
    29823006  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    29833007    tabIndex: 0,
    2984     className: DropdownContainer + " dropdown-container",
     3008    className: cn(DropdownContainer, "dropdown-container"),
    29853009    "aria-labelledby": labelledBy,
    29863010    "aria-expanded": expanded,
     
    29943018    onMouseLeave: handleMouseLeave
    29953019  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    2996     className: DropdownHeading + " dropdown-heading",
     3020    className: cn(DropdownHeading, "dropdown-heading"),
    29973021    onClick: toggleExpanded
    29983022  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    29993023    className: "dropdown-heading-value"
    3000   }, children), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), contentProps["value"].length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
     3024  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, null)), isLoading && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Loading, null), value.length > 0 && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
    30013025    type: "button",
    3002     className: ClearSelectedButton + " clear-selected-button",
     3026    className: cn(ClearSelectedButton, "clear-selected-button"),
    30033027    onClick: handleClearSelected,
    3004     "aria-label": getString("clearSelected", contentProps["overrideStrings"])
     3028    disabled: disabled,
     3029    "aria-label": t("clearSelected")
    30053030  }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, {
    30063031    expanded: expanded
    30073032  })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    3008     className: PanelContainer + " dropdown-content"
     3033    className: cn(PanelContainer, "dropdown-content")
    30093034  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    30103035    className: "panel-content"
    3011   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ContentComponent, Object.assign({}, contentProps)))));
     3036  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectPanel, null))));
    30123037};
    30133038
    3014 var DropdownHeader = function DropdownHeader(_ref) {
    3015   var value = _ref.value,
    3016       options = _ref.options,
    3017       valueRenderer = _ref.valueRenderer,
    3018       overrideStrings = _ref.overrideStrings;
    3019   var noneSelected = value.length === 0;
    3020   var allSelected = value.length === options.length;
    3021   var customText = valueRenderer && valueRenderer(value, options);
    3022 
    3023   var getSelectedText = function getSelectedText() {
    3024     return value.map(function (s) {
    3025       return s.label;
    3026     }).join(", ");
    3027   };
    3028 
    3029   return noneSelected ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    3030     className: "gray"
    3031   }, customText || getString("selectSomeItems", overrideStrings)) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null, customText || (allSelected ? getString("allItemsAreSelected", overrideStrings) : getSelectedText()));
    3032 };
    3033 
    3034 var MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
     3039const MultiSelectBox = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({
    30353040  "--rmscMain": "#4285f4",
    30363041  "--rmscHover": "#f1f3f5",
     
    30513056});
    30523057
    3053 var MultiSelect = function MultiSelect(_ref) {
    3054   var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,
    3055       focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,
    3056       _ref$hasSelectAll = _ref.hasSelectAll,
    3057       hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,
    3058       shouldToggleOnHover = _ref.shouldToggleOnHover,
    3059       _ref$className = _ref.className,
    3060       className = _ref$className === void 0 ? "multi-select" : _ref$className,
    3061       options = _ref.options,
    3062       value = _ref.value,
    3063       valueRenderer = _ref.valueRenderer,
    3064       overrideStrings = _ref.overrideStrings,
    3065       onChange = _ref.onChange,
    3066       disabled = _ref.disabled,
    3067       ItemRenderer = _ref.ItemRenderer,
    3068       ArrowRenderer = _ref.ArrowRenderer,
    3069       selectAllLabel = _ref.selectAllLabel,
    3070       isLoading = _ref.isLoading,
    3071       disableSearch = _ref.disableSearch,
    3072       filterOptions = _ref.filterOptions,
    3073       labelledBy = _ref.labelledBy,
    3074       onMenuToggle = _ref.onMenuToggle,
    3075       ClearIcon = _ref.ClearIcon,
    3076       _ref$debounceDuration = _ref.debounceDuration,
    3077       debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,
    3078       ClearSelectedIcon = _ref.ClearSelectedIcon,
    3079       defaultIsOpen = _ref.defaultIsOpen,
    3080       isOpen = _ref.isOpen;
    3081   var nvalue = value || [];
    3082   return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    3083     className: MultiSelectBox + " " + className
    3084   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, {
    3085     isLoading: isLoading,
    3086     contentComponent: SelectPanel,
    3087     shouldToggleOnHover: shouldToggleOnHover,
    3088     contentProps: {
    3089       ItemRenderer: ItemRenderer,
    3090       options: options,
    3091       value: nvalue,
    3092       hasSelectAll: hasSelectAll,
    3093       selectAllLabel: selectAllLabel,
    3094       onChange: onChange,
    3095       disabled: disabled,
    3096       disableSearch: disableSearch,
    3097       focusSearchOnOpen: focusSearchOnOpen,
    3098       filterOptions: filterOptions,
    3099       overrideStrings: overrideStrings,
    3100       ClearIcon: ClearIcon,
    3101       debounceDuration: debounceDuration
    3102     },
    3103     disabled: disabled,
    3104     labelledBy: labelledBy,
    3105     onMenuToggle: onMenuToggle,
    3106     ArrowRenderer: ArrowRenderer,
    3107     ClearSelectedIcon: ClearSelectedIcon,
    3108     defaultIsOpen: defaultIsOpen,
    3109     isOpen: isOpen
    3110   }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownHeader, {
    3111     value: nvalue,
    3112     options: options,
    3113     valueRenderer: valueRenderer,
    3114     overrideStrings: overrideStrings
    3115   })));
    3116 };
     3058const MultiSelect = props => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MultiSelectProvider, {
     3059  props: props
     3060}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
     3061  className: cn(MultiSelectBox, props.className || "multi-select")
     3062}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Dropdown, null)));
    31173063
    31183064/* harmony default export */ __webpack_exports__["default"] = (MultiSelect);
     
    32373183    if (!Object(_helpers_is_valid_blocktype__WEBPACK_IMPORTED_MODULE_11__["default"])(props.name)) {
    32383184      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props);
    3239     } // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
     3185    }
     3186
     3187    // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.
    32403188    // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's
    32413189    // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both
    32423190    // get updated when a block is updated.
    3243 
    3244 
    32453191    var showControls = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? 'show-controls' : 'hide-controls';
    32463192    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(BlockEdit, props), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_blockEditor__WEBPACK_IMPORTED_MODULE_4__["InspectorControls"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    32653211}, 'contentVisibilityControls');
    32663212Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);
     3213
    32673214/**
    32683215 * Filters registered block settings, extending attributes with our custom data.
     
    32723219 * @return {Object} Filtered block settings.
    32733220 */
    3274 
    32753221function addContentVisibilityRulesAttribute(settings) {
    32763222  // If this is a valid block
     
    32803226      contentVisibilityRulesEnabled: false,
    32813227      userAuthenticated: ''
    3282     }); // Use Lodash's assign to gracefully handle if attributes are undefined
    3283 
     3228    });
     3229
     3230    // Use Lodash's assign to gracefully handle if attributes are undefined
    32843231    settings.attributes = lodash_assign__WEBPACK_IMPORTED_MODULE_8___default()(settings.attributes, {
    32853232      contentVisibilityRules: {
     
    32893236    });
    32903237  }
    3291 
    32923238  return settings;
    32933239} // end addContentVisibilityRulesAttribute()
     
    33033249 * @return {Object} Filtered props applied to save element.
    33043250 */
    3305 
    33063251function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {
    33073252  // If the current block is valid, add our prop.
     
    33093254    extraProps.contentVisibilityRules = attributes.contentVisibilityRules;
    33103255  }
    3311 
    33123256  return extraProps;
    33133257} // end addContentVisibilityRulesPropOnSave()
     
    33153259Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);
    33163260Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_3__["addFilter"])('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);
     3261
    33173262/* --------------
    33183263
     
    33743319})(function (_ref) {
    33753320  var option = _ref.option,
    3376       setState = _ref.setState,
    3377       props = _ref.props;
     3321    setState = _ref.setState,
     3322    props = _ref.props;
    33783323  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    3379 
    33803324  if (!rulesEnabled) {
    33813325    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], {
     
    33833327    }));
    33843328  }
    3385 
    33863329  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_shown_or_hidden_content_visibility_shown_hidden_control__WEBPACK_IMPORTED_MODULE_6__["ContentVisibilityShownHiddenControl"], {
    33873330    props: props
    33883331  });
    33893332});
     3333
    33903334/**
    33913335 * Filters registered block settings, extending attributes with our custom data.
     
    33953339 * @return {Object} Filtered block settings.
    33963340 */
    3397 
    33983341function addContentVisibilityAttribute(settings) {
    33993342  // If this is a valid block
     
    34063349    });
    34073350  }
    3408 
    34093351  return settings;
    34103352} // end addContentVisibilityAttribute()
     
    34203362 * @return {Object} Filtered props applied to save element.
    34213363 */
    3422 
    34233364function addBlockVisibilityPropOnSave(extraProps, blockType, attributes) {
    34243365  // If the current block is valid, add our prop.
     
    34263367    extraProps.contentVisibility = attributes.contentVisibility;
    34273368  }
    3428 
    34293369  return extraProps;
    34303370} // end addBlockVisibilityPropOnSave()
     
    34673407
    34683408
    3469 
    3470 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    3471 
    3472 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
    3473 
     3409function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     3410function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    34743411
    34753412
     
    34823419})(function (_ref) {
    34833420  var rulesEnabled = _ref.rulesEnabled,
    3484       setState = _ref.setState,
    3485       props = _ref.props;
     3421    setState = _ref.setState,
     3422    props = _ref.props;
    34863423  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__["ToggleControl"], {
    34873424    label: props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Enabled', 'content-visibility') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__["__"])('Rules Disabled', 'content-visibility'),
     
    34903427      return setState(function (state) {
    34913428        var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules);
    3492 
    34933429        newBVRules.contentVisibilityRulesEnabled = rulesEnabled;
    34943430        props.setAttributes({
    34953431          contentVisibilityRules: newBVRules
    3496         }); // Fire an action so we can see what's happened in other controls. This can be useful,
     3432        });
     3433
     3434        // Fire an action so we can see what's happened in other controls. This can be useful,
    34973435        // for example when setting rules for roles - pointless if a user isn't signed in.
    3498 
    3499         Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props); // Sets the state
    3500 
     3436        Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props);
     3437
     3438        // Sets the state
    35013439        return {
    35023440          rulesEnabled: !state.rulesEnabled
     
    35063444  });
    35073445});
     3446
    35083447/**
    35093448 * Filters registered block settings, extending attributes with our custom data.
     
    35133452 * @return {Object} Filtered block settings.
    35143453 */
    3515 
    35163454function addContentVisibilityRulesEnabledAttribute(settings) {
    35173455  // If this is a valid block
     
    35243462    });
    35253463  }
    3526 
    35273464  return settings;
    35283465} // end addContentVisibilityRulesEnabledAttribute()
     
    35383475 * @return {Object} Filtered props applied to save element.
    35393476 */
    3540 
    35413477function addContentVisibilityRulesEnabledPropOnSave(extraProps, blockType, attributes) {
    35423478  // If the current block is valid, add our prop.
     
    35443480    extraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;
    35453481  }
    3546 
    35473482  return extraProps;
    35483483} // end addContentVisibilityRulesEnabledPropOnSave()
     
    35553490 * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.
    35563491 */
    3557 
    35583492var withCustomClassName = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["createHigherOrderComponent"])(function (BlockListBlock) {
    35593493  return function (props) {
     
    35613495      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, props);
    35623496    }
    3563 
    35643497    var iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;
    35653498    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(BlockListBlock, _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, props, {
     
    36053538})(function (_ref) {
    36063539  var option = _ref.option,
    3607       setState = _ref.setState,
    3608       props = _ref.props;
     3540    setState = _ref.setState,
     3541    props = _ref.props;
    36093542  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    36103543  var contentVisibility = props.attributes.hasOwnProperty('contentVisibility');
    3611 
    36123544  if (!rulesEnabled || !contentVisibility) {
    36133545    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], {
     
    36153547    }));
    36163548  }
    3617 
    36183549  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_user_authentication_user_authentication_panel_body_control__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilityUserAuthenticationPanelBodyControl"], {
    36193550    props: props
    36203551  });
    36213552});
     3553
    36223554/**
    36233555 * Render the <ContentVisibilityUserAuthenticationControl> component by adding
     
    36263558 * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.
    36273559 */
    3628 
    36293560function BlockVisibilityUserAuthenitcationFill() {
    36303561  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], {
     
    36353566    });
    36363567  });
    3637 } // Add our component to the Slot provided by BlockVisibilityControls
    3638 
    3639 
     3568}
     3569
     3570// Add our component to the Slot provided by BlockVisibilityControls
    36403571Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', {
    36413572  render: BlockVisibilityUserAuthenitcationFill
     
    36633594
    36643595
    3665 
    3666 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    3667 
    3668 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
     3596function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     3597function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    36693598
    36703599
     
    37083637})(function (_ref) {
    37093638  var option = _ref.option,
    3710       setState = _ref.setState,
    3711       props = _ref.props,
    3712       data = _ref.data,
    3713       labelledBy = _ref.labelledBy,
    3714       type = _ref.type;
    3715 
     3639    setState = _ref.setState,
     3640    props = _ref.props,
     3641    data = _ref.data,
     3642    labelledBy = _ref.labelledBy,
     3643    type = _ref.type;
    37163644  /**
    37173645   * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for
     
    37313659    });
    37323660  };
    3733 
    37343661  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", {
    37353662    className: "content-visibility-multi-select"
     
    37413668    ItemRenderer: function ItemRenderer(_ref2) {
    37423669      var checked = _ref2.checked,
    3743           option = _ref2.option,
    3744           onClick = _ref2.onClick,
    3745           disabled = _ref2.disabled;
     3670        option = _ref2.option,
     3671        onClick = _ref2.onClick,
     3672        disabled = _ref2.disabled;
    37463673      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", {
    37473674        className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled")
     
    37533680        disabled: disabled
    37543681      }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label));
    3755     } // isOpen={ true }
    3756 
     3682    }
     3683    // isOpen={ true }
    37573684  }));
    37583685});
     
    37863713})(function (_ref) {
    37873714  var option = _ref.option,
    3788       setState = _ref.setState,
    3789       props = _ref.props;
     3715    setState = _ref.setState,
     3716    props = _ref.props;
    37903717  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
    37913718    title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Shown or Hidden', 'content-visibility-user-role'),
     
    38513778})(function (_ref) {
    38523779  var isVisible = _ref.isVisible,
    3853       setState = _ref.setState,
    3854       props = _ref.props;
    3855 
     3780    setState = _ref.setState,
     3781    props = _ref.props;
    38563782  /**
    38573783   * Our data, passed from PHP and manipulated to be useful here in JS.
    38583784   */
    38593785  var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])();
     3786
    38603787  /**
    38613788   * This controls the key used where the data is stored.
    38623789   */
    3863 
    38643790  var type = 'pages';
     3791
    38653792  /**
    38663793   * Helps with the content of the inserter button.
    38673794   */
    3868 
    38693795  var niceName = {
    38703796    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'),
    38713797    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility')
    38723798  };
     3799
    38733800  /**
    38743801   * Toggle the visible state. Detemines whether the popup is open or not.
    38753802   */
    3876 
    38773803  var toggleVisible = function toggleVisible() {
    38783804    setState(function (state) {
     
    38823808    });
    38833809  };
    3884 
    38853810  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    38863811    className: "content-visibility-special-page-inserter"
     
    39603885})(function (_ref) {
    39613886  var isVisible = _ref.isVisible,
    3962       setState = _ref.setState,
    3963       props = _ref.props;
    3964 
     3887    setState = _ref.setState,
     3888    props = _ref.props;
    39653889  /**
    39663890   * Our data, passed from PHP and manipulated to be useful here in JS.
    39673891   */
    39683892  var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])();
     3893
    39693894  /**
    39703895   * This controls the key used where the data is stored.
    39713896   */
    3972 
    39733897  var type = 'posts';
     3898
    39743899  /**
    39753900   * Helps with the content of the inserter button.
    39763901   */
    3977 
    39783902  var niceName = {
    39793903    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'),
    39803904    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility')
    39813905  };
     3906
    39823907  /**
    39833908   * Toggle the visible state. Detemines whether the popup is open or not.
    39843909   */
    3985 
    39863910  var toggleVisible = function toggleVisible() {
    39873911    setState(function (state) {
     
    39913915    });
    39923916  };
    3993 
    39943917  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    39953918    className: "content-visibility-special-page-inserter"
     
    40693992})(function (_ref) {
    40703993  var isVisible = _ref.isVisible,
    4071       setState = _ref.setState,
    4072       props = _ref.props;
    4073 
     3994    setState = _ref.setState,
     3995    props = _ref.props;
    40743996  /**
    40753997   * Our data, passed from PHP and manipulated to be useful here in JS.
    40763998   */
    40773999  var data = Object(_helpers_get_categories__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4000
    40784001  /**
    40794002   * This controls the key used where the data is stored.
    40804003   */
    4081 
    40824004  var type = 'categories';
     4005
    40834006  /**
    40844007   * Helps with the content of the inserter button.
    40854008   */
    4086 
    40874009  var niceName = {
    40884010    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Category', 'content-visibility'),
    40894011    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Categories', 'content-visibility')
    40904012  };
     4013
    40914014  /**
    40924015   * Toggle the visible state. Detemines whether the popup is open or not.
    40934016   */
    4094 
    40954017  var toggleVisible = function toggleVisible() {
    40964018    setState(function (state) {
     
    41004022    });
    41014023  };
    4102 
    41034024  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    41044025    className: "content-visibility-special-page-inserter"
     
    41744095})(function (_ref) {
    41754096  var option = _ref.option,
    4176       setState = _ref.setState,
    4177       props = _ref.props;
     4097    setState = _ref.setState,
     4098    props = _ref.props;
    41784099  var rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;
    41794100  var contentVisibility = props.attributes.hasOwnProperty('contentVisibility');
    4180 
    41814101  if (!rulesEnabled || !contentVisibility) {
    41824102    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], {
     
    41844104    }));
    41854105  }
    4186 
    41874106  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_panel__WEBPACK_IMPORTED_MODULE_5__["ContentVisibilitySpecialPagePanelBodyControl"], {
    41884107    props: props
    41894108  });
    41904109});
     4110
    41914111/**
    41924112 * Render the <ContentVisibilitySpecialPageControls> component by adding
     
    41954115 * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.
    41964116 */
    4197 
    41984117function ContentVisibilitySpecialPageFill() {
    41994118  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Fill"], {
     
    42044123    });
    42054124  });
    4206 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.
    4207 
    4208 
     4125}
     4126
     4127// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.
    42094128if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) {
    42104129  // Add our component to the Slot provided by BlockVisibilityControls
     
    42514170})(function (_ref) {
    42524171  var isVisible = _ref.isVisible,
    4253       setState = _ref.setState,
    4254       props = _ref.props;
    4255 
     4172    setState = _ref.setState,
     4173    props = _ref.props;
    42564174  /**
    42574175   * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages
     
    42594177   */
    42604178  var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4179
    42614180  /**
    42624181   * This controls the key used where the data is stored.
    42634182   */
    4264 
    42654183  var type = 'specialPages';
     4184
    42664185  /**
    42674186   * Helps with the content of the inserter button.
    42684187   */
    4269 
    42704188  var niceName = {
    42714189    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'),
    42724190    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility')
    42734191  };
     4192
    42744193  /**
    42754194   * Toggle the visible state. Detemines whether the popup is open or not.
    42764195   */
    4277 
    42784196  var toggleVisible = function toggleVisible() {
    42794197    setState(function (state) {
     
    42834201    });
    42844202  };
    4285 
    42864203  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    42874204    className: "content-visibility-special-page-inserter"
     
    43694286})(function (_ref) {
    43704287  var option = _ref.option,
    4371       setState = _ref.setState,
    4372       props = _ref.props;
     4288    setState = _ref.setState,
     4289    props = _ref.props;
    43734290  var hasRulesClass = Object(_helpers_has_rules__WEBPACK_IMPORTED_MODULE_10__["default"])(props, 'specialPage') ? ' has-active-rules' : '';
    43744291  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    43914308    className: "special-page-help-intro content-visibility-help-text"
    43924309  }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility')));
    4393 }); // Register our visibility rule in the main rules object.
    4394 
     4310});
     4311
     4312// Register our visibility rule in the main rules object.
    43954313Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule);
    4396 
    43974314function registerSpecialPageVisibilityRule(defaultRules) {
    43984315  defaultRules.specialPage = {
     
    44434360})(function (_ref) {
    44444361  var isVisible = _ref.isVisible,
    4445       setState = _ref.setState,
    4446       props = _ref.props;
    4447 
     4362    setState = _ref.setState,
     4363    props = _ref.props;
    44484364  /**
    44494365   * Our data, passed from PHP and manipulated to be useful here in JS.
    44504366   */
    44514367  var data = Object(_helpers_get_tags__WEBPACK_IMPORTED_MODULE_3__["default"])();
     4368
    44524369  /**
    44534370   * This controls the key used where the data is stored.
    44544371   */
    4455 
    44564372  var type = 'tags';
     4373
    44574374  /**
    44584375   * Helps with the content of the inserter button.
    44594376   */
    4460 
    44614377  var niceName = {
    44624378    singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tag', 'content-visibility'),
    44634379    plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Tags', 'content-visibility')
    44644380  };
     4381
    44654382  /**
    44664383   * Toggle the visible state. Detemines whether the popup is open or not.
    44674384   */
    4468 
    44694385  var toggleVisible = function toggleVisible() {
    44704386    setState(function (state) {
     
    44744390    });
    44754391  };
    4476 
    44774392  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
    44784393    className: "content-visibility-special-page-inserter"
     
    45414456
    45424457
    4543 
    4544 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
    4545 
    4546 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
    4547 
     4458function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
     4459function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
    45484460
    45494461
     
    45544466})(function (_ref) {
    45554467  var option = _ref.option,
    4556       setState = _ref.setState,
    4557       props = _ref.props;
     4468    setState = _ref.setState,
     4469    props = _ref.props;
    45584470  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["RadioControl"], {
    45594471    label: "",
     
    45734485        option: option
    45744486      });
    4575 
    45764487      var newBVRules = _objectSpread({}, props.attributes.contentVisibilityRules);
    4577 
    45784488      newBVRules.userAuthenticated = option;
    45794489      props.setAttributes({
    45804490        contentVisibilityRules: newBVRules
    4581       }); // Fire an action so we can see what's happened in other controls. This can be useful,
     4491      });
     4492
     4493      // Fire an action so we can see what's happened in other controls. This can be useful,
    45824494      // for example when setting rules for roles - pointless if a user isn't signed in.
    4583 
    45844495      Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__["doAction"])('contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props);
    45854496    }
     
    46174528})(function (_ref) {
    46184529  var option = _ref.option,
    4619       setState = _ref.setState,
    4620       props = _ref.props;
     4530    setState = _ref.setState,
     4531    props = _ref.props;
    46214532  var hasRulesClass = props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ? ' has-active-rules' : '';
    46224533  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelBody"], {
     
    46564567/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    46574568
     4569
    46584570/**
    46594571 * PHP sends through a list of all the categories on the site. We massage that data to be
     
    46614573 *
    46624574 */
    4663 
    46644575function getCategories() {
    46654576  var categories = [];
    4666 
    46674577  if (ContentVisibility.categories.length === 0) {
    46684578    return [{
     
    46724582    }];
    46734583  }
    4674 
    46754584  for (var category in ContentVisibility.categories) {
    46764585    categories.push({
     
    46804589    });
    46814590  }
    4682 
    46834591  return categories;
    46844592} // end getCategories()
    4685 
    46864593
    46874594/* harmony default export */ __webpack_exports__["default"] = (getCategories);
     
    47014608/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    47024609
     4610
    47034611/**
    47044612 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be
     
    47064614 *
    47074615 */
    4708 
    47094616function getPages() {
    47104617  var pages = [];
    4711 
    47124618  if (ContentVisibility.pages.length === 0) {
    47134619    return [{
     
    47174623    }];
    47184624  }
    4719 
    47204625  for (var page in ContentVisibility.pages) {
    47214626    pages.push({
     
    47254630    });
    47264631  }
    4727 
    47284632  return pages;
    47294633} // end getPages()
    4730 
    47314634
    47324635/* harmony default export */ __webpack_exports__["default"] = (getPages);
     
    47464649/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    47474650
     4651
    47484652/**
    47494653 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be
     
    47514655 *
    47524656 */
    4753 
    47544657function getPosts() {
    47554658  var posts = [];
    4756 
    47574659  if (ContentVisibility.posts.length === 0) {
    47584660    return [{
     
    47624664    }];
    47634665  }
    4764 
    47654666  for (var post in ContentVisibility.posts) {
    47664667    posts.push({
     
    47704671    });
    47714672  }
    4772 
    47734673  return posts;
    47744674} // end getPosts()
    4775 
    47764675
    47774676/* harmony default export */ __webpack_exports__["default"] = (getPosts);
     
    47944693
    47954694
     4695
    47964696/**
    47974697 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages
     
    47994699 *
    48004700 */
    4801 
    48024701function getSpecialPages() {
    48034702  var specialPages = [];
    4804 
    48054703  for (var specialPage in ContentVisibility.specialPages) {
    48064704    specialPages.push({
     
    48144712    });
    48154713  }
    4816 
    48174714  return specialPages;
    48184715} // end getSpecialPages()
    4819 
    48204716
    48214717/* harmony default export */ __webpack_exports__["default"] = (getSpecialPages);
     
    48354731/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    48364732
     4733
    48374734/**
    48384735 * PHP sends through a list of all the tags on the site. We massage that data to be
     
    48404737 *
    48414738 */
    4842 
    48434739function getTags() {
    48444740  var tags = [];
    4845 
    48464741  if (ContentVisibility.tags.length === 0) {
    48474742    return [{
     
    48514746    }];
    48524747  }
    4853 
    48544748  for (var tag in ContentVisibility.tags) {
    48554749    tags.push({
     
    48594753    });
    48604754  }
    4861 
    48624755  return tags;
    48634756} // end getTags()
    4864 
    48654757
    48664758/* harmony default export */ __webpack_exports__["default"] = (getTags);
     
    48794771/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
    48804772/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
    4881 
    48824773
    48834774/**
     
    49004791} //end hasParentWithClass()
    49014792
    4902 
    49034793/* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass);
    49044794
     
    49174807/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__);
    49184808
     4809
    49194810/**
    49204811 * Determine if the passed block props contain rules of the passed type.
     
    49254816 * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.
    49264817 */
    4927 
    49284818function hasRules(props, type) {
    49294819  if (!props.attributes.contentVisibilityRules) {
    49304820    return false;
    49314821  }
    4932 
    49334822  if (!props.attributes.contentVisibilityRules[type]) {
    49344823    return false;
    4935   } // Default to false. Passed through a filter later.
    4936 
    4937 
     4824  }
     4825
     4826  // Default to false. Passed through a filter later.
    49384827  var hasRules = false;
    4939 
    49404828  switch (type) {
    49414829    case 'userAuthenticated':
     
    49434831        hasRules = true;
    49444832      }
    4945 
    49464833      break;
    4947 
    49484834    case 'specialPage':
    4949       var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage; // If *any* of the special pages contains rules, then this is true. Is an array of arrays.
    4950 
    4951       var specialPageRulesValues = Object.values(allSpecialPageRules); // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.
    4952 
     4835      var allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;
     4836
     4837      // If *any* of the special pages contains rules, then this is true. Is an array of arrays.
     4838      var specialPageRulesValues = Object.values(allSpecialPageRules);
     4839
     4840      // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.
    49534841      hasRules = specialPageRulesValues.some(function (el) {
    49544842        return el.length > 0;
    49554843      });
    49564844      break;
    4957 
    49584845    default:
    49594846      break;
    49604847  }
    4961 
    49624848  return Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__["applyFilters"])('content-visibility-has-rules', hasRules, props, type);
    49634849} // end hasRules()
    4964 
    49654850
    49664851/* harmony default export */ __webpack_exports__["default"] = (hasRules);
     
    49874872} // end isValidBlockType()
    49884873
    4989 
    49904874/* harmony default export */ __webpack_exports__["default"] = (isValidBlockType);
    49914875
     
    50034887/* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js");
    50044888
     4889
    50054890/**
    50064891 * The Popup component closes if it loses focus by default. For us, we want to ensure it
     
    50114896 * @return null
    50124897 */
    5013 
    50144898var keepPopupOpen = function keepPopupOpen(event) {
    50154899  if (false === event) {
    50164900    return;
    5017   } // Determine if what has been clicked on is in the popover or not.
    5018 
    5019 
     4901  }
     4902
     4903  // Determine if what has been clicked on is in the popover or not.
    50204904  var eTarget = event.target;
    5021 
    50224905  if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) {
    50234906    event.stopPropagation();
    50244907  }
    5025 
    50264908  return;
    50274909};
    5028 
    50294910/* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen);
    50304911
     
    50434924/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
    50444925
     4926
    50454927/**
    50464928 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are
     
    50554937 * @return string the text to be used for the button.
    50564938 */
    5057 
    50584939var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) {
    50594940  // if nothing is set, return a prompt to select special pages.
     
    50614942    return defaultVal;
    50624943  }
    5063 
    50644944  var shownOrHidden = props.attributes.contentVisibility;
    50654945  var specialPages = props.attributes.contentVisibilityRules.specialPage[type];
     
    50694949  return insertText;
    50704950};
    5071 
    50724951/* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText);
    50734952
     
    50934972  if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) {
    50944973    return 'content-visibility-special-page-inserter-toggle';
    5095   } // We have some items selected, so we have a couple classes.
    5096 
    5097 
     4974  }
     4975
     4976  // We have some items selected, so we have a couple classes.
    50984977  return 'content-visibility-special-page-inserter-toggle has-items';
    50994978};
    5100 
    51014979/* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass);
    51024980
  • content-visibility/trunk/build/index.js.map

    r2589501 r2833193  
    1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/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 || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n    // Add our component to the Slot provided by BlockVisibilityControls\n    registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n     * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n     */\n    const specialPages = getSpecialPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'specialPages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Special Page', 'content-visibility' ),\n        plural: __( 'Special Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"text-page\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n                        <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n                        { specialPages.map( specialPage => (\n                            <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n                        ) ) }\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n    option: [],\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'Special Page', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n        >\n\n            <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n                <SpecialPagePageInserter props={ props } />\n                <PagePageInserter props={ props } />\n                <PostPageInserter props={ props } />\n                <CategoryPageInserter props={ props } />\n                <TagPageInserter props={ props } />\n            </PanelRow>\n\n            { props.attributes.contentVisibility && (\n                <p className=\"special-page-help-intro content-visibility-help-text\">\n                    { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n                </p>\n            ) }\n\n        </PanelBody>\n    );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n    defaultRules.specialPage = {\n        pages: [],\n        specialPages: [],\n        posts: [],\n        categories: [],\n        tags: []\n    };\n\n    return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getTags();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'tags';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Tag', 'content-visibility' ),\n        plural: __( 'Tags', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"tag\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-tags-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n\n        <RadioControl\n            label=''\n            help=''\n            className=\"content-visibility-user-authenticated-control\"\n            selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n            options={ [\n                { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n                { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n            ] }\n            onChange={ ( option ) => {\n\n                // Set the state and props.\n                setState( { option } );\n\n                let newBVRules = { ...props.attributes.contentVisibilityRules };\n                newBVRules.userAuthenticated = option;\n\n                props.setAttributes( {\n                    contentVisibilityRules: newBVRules,\n                } );\n\n                // Fire an action so we can see what's happened in other controls. This can be useful,\n                // for example when setting rules for roles - pointless if a user isn't signed in.\n                doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n            } }\n        />\n\n    );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'User Authentication', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n        >\n            <PanelRow>\n                <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n                { props.attributes.contentVisibility && (\n                    <p className=\"user-auth-help-intro content-visibility-help-text\">\n                        { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n                    </p>\n                ) }\n\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n    const categories = [];\n\n    if ( ContentVisibility.categories.length === 0 ) {\n        return [ {\n            label: __( 'No categories found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const category in ContentVisibility.categories ) {\n    \n        categories.push( { \n            label: ContentVisibility.categories[category].label,\n            value: ContentVisibility.categories[category].id,\n            notes: ContentVisibility.categories[category].notes\n        } );\n    \n    }\n\n    return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n    const pages = [];\n\n    if ( ContentVisibility.pages.length === 0 ) {\n        return [ {\n            label: __( 'No pages found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const page in ContentVisibility.pages ) {\n    \n        pages.push( { \n            label: ContentVisibility.pages[page].label,\n            value: ContentVisibility.pages[page].id,\n            notes: ContentVisibility.pages[page].notes\n        } );\n    \n    }\n\n    return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n    const posts = [];\n\n    if ( ContentVisibility.posts.length === 0 ) {\n        return [ {\n            label: __( 'No posts found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const post in ContentVisibility.posts ) {\n    \n        posts.push( { \n            label: ContentVisibility.posts[post].label,\n            value: ContentVisibility.posts[post].id,\n            notes: ContentVisibility.posts[post].notes\n        } );\n    \n    }\n\n    return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n    const specialPages = [];\n\n    for ( const specialPage in ContentVisibility.specialPages ) {\n    \n        specialPages.push( { \n            label: ContentVisibility.specialPages[specialPage].label,\n            value: ContentVisibility.specialPages[specialPage].keyValue,\n            notes: ContentVisibility.specialPages[specialPage].notes,\n            icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n        } );\n    \n    }\n\n    return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n    const tags = [];\n\n    if ( ContentVisibility.tags.length === 0 ) {\n        return [ {\n            label: __( 'No tags found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const tag in ContentVisibility.tags ) {\n    \n        tags.push( { \n            label: ContentVisibility.tags[tag].label,\n            value: ContentVisibility.tags[tag].id,\n            notes: ContentVisibility.tags[tag].notes\n        } );\n    \n    }\n\n    return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n    // SVGs are weird, man.\n    if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n        return true;\n    } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n        return element.parentNode && hasParentWithClass( element.parentNode, classname );\n    } else {\n        return false;\n    }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n    if ( ! props.attributes.contentVisibilityRules ) {\n        return false;\n    }\n\n    if ( ! props.attributes.contentVisibilityRules[type] ) {\n        return false;\n    }\n\n    // Default to false. Passed through a filter later.\n    let hasRules = false;\n\n    switch ( type ) {\n        \n        case 'userAuthenticated':\n\n            if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n                hasRules = true;\n            }\n\n            break;\n        \n        case 'specialPage':\n\n            let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n            // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n            let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n            // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n            hasRules = specialPageRulesValues.some( function( el ) {\n                return el.length > 0;\n            });\n\n            break;\n\n        default:\n            break;\n    }\n\n    return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n    const invalidBlockTypes = [\n        'something/unsupported',\n    ];\n\n    return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n    if ( false === event ) {\n        return;\n    }\n\n    // Determine if what has been clicked on is in the popover or not.\n    let eTarget = event.target;\n\n    if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n        event.stopPropagation();\n    }\n\n    return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n *                        object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n    \n    // if nothing is set, return a prompt to select special pages.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return defaultVal;\n    }\n\n    let shownOrHidden     = props.attributes.contentVisibility;\n    let specialPages      = props.attributes.contentVisibilityRules.specialPage[type];    \n    let specialPagesCount = specialPages.length;\n\n    let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n    let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount  + ' ' + niceType;\n\n    return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n    // If we don't have any items selected, just basic class.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return 'content-visibility-special-page-inserter-toggle';\n    }\n\n    // We have some items selected, so we have a couple classes.\n    return 'content-visibility-special-page-inserter-toggle has-items';\n    \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.esm.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-category-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/special-page/content-visibility-special-page-tag-inserter.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-categories.js","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/get-tags.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/has-rules.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"editPost\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","CategoryPageInserter","getCategories","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","hasRulesClass","hasRules","registerSpecialPageVisibilityRule","pages","posts","categories","tags","TagPageInserter","getTags","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","category","push","id","page","post","keyValue","tag","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","allSpecialPageRules","specialPageRulesValues","Object","values","some","el","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,+G;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wG;;;;;;;;;;;ACdA,cAAc,mBAAO,CAAC,oEAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4G;;;;;;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACjBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAK,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B,4CAAK;;AAElC;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAM;AAC5B,EAAE,uDAAS;AACX,kCAAkC;AAClC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,kDAAkD,cAAc;AACnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,iBAAiB,cAAc;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,4CAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,4CAAK;;AAET;AACA;AACA;AACA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,oDAAM;AACxB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,2CAA2C,kDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B,kDAAG;AAClC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,oDAAM;AAC/B,sCAAsC,sDAAQ;AAC9C,gDAAgD,sDAAQ;AACxD,wDAAwD,sDAAQ;AAChE,sCAAsC,sDAAQ;AAC9C,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,qDAAO;AAC7D;AACA,gIAAgI;AAChI,GAAG;AACH,EAAE,uDAAS;AACX;AACA,GAAG;AACH,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,4BAA4B,4CAAK;AACpC;AACA;AACA;AACA,GAAG,IAAI,4CAAK;AACZ;AACA,GAAG;AACH;;AAEA;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,wCAAwC,4CAAK;AAChD;;AAEA,6BAA6B,kDAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,KAAK,4CAAK;AACX;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,4CAAK;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD,sDAAQ;AAC1D,kCAAkC,sDAAQ;AAC1C,kCAAkC,sDAAQ;AAC1C;AACA,kBAAkB,oDAAM;AACxB;AACA;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,oDAAoD,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/|  +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isIndex = require('./_isIndex'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n    eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n    isLength = require('./isLength'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n    nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n    overRest = require('./_overRest'),\n    setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n    defineProperty = require('./_defineProperty'),\n    identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n    baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n    isArrayLike = require('./isArrayLike'),\n    isIndex = require('./_isIndex'),\n    isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n    shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n    copyObject = require('./_copyObject'),\n    createAssigner = require('./_createAssigner'),\n    isArrayLike = require('./isArrayLike'),\n    isPrototype = require('./_isPrototype'),\n    keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * function Bar() {\n *   this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n  if (isPrototype(source) || isArrayLike(source)) {\n    copyObject(source, keys(source), object);\n    return;\n  }\n  for (var key in source) {\n    if (hasOwnProperty.call(source, key)) {\n      assignValue(object, key, source[key]);\n    }\n  }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n    isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n    isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n    stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n    baseUnary = require('./_baseUnary'),\n    nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeys = require('./_baseKeys'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nconst defaultStrings = {\n  allItemsAreSelected: \"All items are selected.\",\n  clearSearch: \"Clear Search\",\n  clearSelected: \"Clear Selected\",\n  noOptions: \"No options\",\n  search: \"Search\",\n  selectAll: \"Select All\",\n  selectSomeItems: \"Select...\"\n};\nconst defaultProps = {\n  value: [],\n  focusSearchOnOpen: true,\n  hasSelectAll: true,\n  className: \"multi-select\",\n  debounceDuration: 200,\n  options: []\n};\nconst MultiSelectContext = /*#__PURE__*/React.createContext({});\nconst MultiSelectProvider = ({\n  props,\n  children\n}) => {\n  const t = key => {\n    var _props$overrideString;\n\n    return ((_props$overrideString = props.overrideStrings) == null ? void 0 : _props$overrideString[key]) || defaultStrings[key];\n  };\n\n  return React.createElement(MultiSelectContext.Provider, {\n    value: {\n      t,\n      ...defaultProps,\n      ...props\n    }\n  }, children);\n};\nconst useMultiSelect = () => React.useContext(MultiSelectContext);\n\n/**\r\n * combines classNames in a friendly way\r\n *\r\n * @param {*} classes\r\n */\nconst cn = (...classes) => classes.join(\" \");\n\n/**\r\n * similar to `useEffect` but gets triggered only when value changes\r\n * @param fn executable function on dependency updates\r\n * @param inputs dependency array\r\n */\n\nfunction useDidUpdateEffect(fn, inputs) {\n  const didMountRef = useRef(false);\n  useEffect(() => {\n    if (didMountRef.current) fn();else didMountRef.current = true;\n  }, inputs);\n}\n\nconst debounce = (func, wait) => {\n  let timeout;\n  return function (...args) {\n    clearTimeout(timeout);\n    timeout = setTimeout(() => {\n      func.apply(null, args);\n    }, wait);\n  };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param  options  An unfiltered list of Options.\r\n * @param? filter  A string to compare against Option labels.\r\n * @param? substitutions  Strings with multiple spellings or variations that we\r\n *           expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n  // If the filter is blank, return the full list of Options.\n  if (!filter) {\n    return options;\n  }\n\n  const cleanFilter = cleanUpText(filter, substitutions);\n  return options // Filter out undefined or null Options.\n  .filter(({\n    label,\n    value\n  }) => label != null && value != null) // Create a {score, Option} pair for each Option based on its label's\n  // similarity to the filter text.\n  .map(option => ({\n    option: option,\n    score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n  })) // Only include matches of the entire substring, with a slight\n  // affordance for transposition or extra characters.\n  .filter(pair => pair.score >= cleanFilter.length - 2) // Sort 'em by order of their score.\n  .sort((a, b) => b.score - a.score) // …and grab the original Options back from their pairs.\n  .map(pair => pair.option);\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param  a  The longer string (though, we flip them if it's shorter).\r\n * @param  b  The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n *           closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n  const aLength = a.length;\n  const bLength = b.length;\n  const table = [];\n\n  if (!aLength || !bLength) {\n    return 0;\n  } // Ensure `a` isn't shorter than `b`.\n\n\n  if (aLength < bLength) {\n    [a, b] = [b, a];\n  } // Early exit if `a` includes `b`; these will be scored higher than any\n  // other options with the same `b` (filter string), with a preference for\n  // shorter `a` strings (option labels).\n\n\n  if (a.indexOf(b) !== -1) {\n    return bLength + 1 / aLength;\n  } // Initialize the table axes:\n  //\n  //    0 0 0 0 ... bLength\n  //    0\n  //    0\n  //\n  //   ...\n  //\n  // aLength\n  //\n\n\n  for (let x = 0; x <= aLength; ++x) {\n    table[x] = [0];\n  }\n\n  for (let y = 0; y <= bLength; ++y) {\n    table[0][y] = 0;\n  } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n  for (let x = 1; x <= aLength; ++x) {\n    for (let y = 1; y <= bLength; ++y) {\n      table[x][y] = a[x - 1] === b[y - 1] ? 1 + table[x - 1][y - 1] : Math.max(table[x][y - 1], table[x - 1][y]);\n    }\n  }\n\n  return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param  input  An unsanitized input string.\r\n * @param  substitutions  Strings with multiple spellings or variations that we\r\n *          expect to match, for example accented characters or abbreviated\r\n *          words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n  if (!input) {\n    return \"\";\n  } // Uppercase and remove all non-alphanumeric, non-accented characters.\n  // Also remove underscores.\n\n\n  input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n  if (!substitutions) {\n    return input;\n  }\n\n  const safeSubstitutions = substitutions; // For Flow.\n  // Replace all strings in `safeSubstitutions` with their standardized\n  // counterparts.\n\n  return Object.keys(safeSubstitutions).reduce((output, substitution) => {\n    const unsubbed = new RegExp(substitution, \"g\");\n    return output.replace(unsubbed, safeSubstitutions[substitution]);\n  }, input);\n}\n\nconst Cross = () => React.createElement(\"svg\", {\n  width: \"24\",\n  height: \"24\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeWidth: \"2\",\n  className: \"dropdown-search-clear-icon gray\"\n}, React.createElement(\"line\", {\n  x1: \"18\",\n  y1: \"6\",\n  x2: \"6\",\n  y2: \"18\"\n}), React.createElement(\"line\", {\n  x1: \"6\",\n  y1: \"6\",\n  x2: \"18\",\n  y2: \"18\"\n}));\n\nconst DefaultRenderer = /*#__PURE__*/css({\n  \"& input,& span\": {\n    verticalAlign: \"middle\",\n    margin: 0\n  },\n  span: {\n    display: \"inline-block\",\n    paddingLeft: \"5px\"\n  },\n  \"&.disabled\": {\n    opacity: 0.5\n  }\n});\n\nconst DefaultItemRenderer = ({\n  checked,\n  option,\n  onClick,\n  disabled\n}) => React.createElement(\"div\", {\n  className: cn(DefaultRenderer, \"item-renderer\", disabled && \"disabled\")\n}, React.createElement(\"input\", {\n  type: \"checkbox\",\n  onChange: onClick,\n  checked: checked,\n  tabIndex: -1,\n  disabled: disabled\n}), React.createElement(\"span\", null, option.label));\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nconst ItemContainer = /*#__PURE__*/css({\n  boxSizing: \"border-box\",\n  cursor: \"pointer\",\n  display: \"block\",\n  padding: \"var(--rmsc-p)\",\n  outline: 0,\n  \"&:hover,&:focus\": {\n    background: \"var(--rmsc-hover)\"\n  },\n  \"&.selected\": {\n    background: \"var(--rmsc-selected)\"\n  }\n});\n\nconst SelectItem = ({\n  itemRenderer: ItemRenderer = DefaultItemRenderer,\n  option,\n  checked,\n  focused,\n  tabIndex,\n  disabled,\n  onSelectionChanged,\n  onClick\n}) => {\n  const itemRef = useRef();\n  useEffect(() => {\n    updateFocus(); // eslint-disable-next-line\n  }, [checked, focused]);\n\n  const toggleChecked = () => {\n    onSelectionChanged(!checked);\n  };\n\n  const handleClick = e => {\n    toggleChecked();\n    onClick(e);\n  };\n\n  const updateFocus = () => {\n    if (focused && !disabled && itemRef) {\n      itemRef.current.focus();\n    }\n  };\n\n  const handleKeyDown = e => {\n    switch (e.which) {\n      case 13: // Enter\n\n      case 32:\n        // Space\n        toggleChecked();\n        break;\n\n      default:\n        return;\n    }\n\n    e.preventDefault();\n  };\n\n  return React.createElement(\"label\", {\n    className: cn(ItemContainer, \"select-item\", checked && \"selected\"),\n    role: \"option\",\n    \"aria-selected\": checked,\n    tabIndex: tabIndex,\n    ref: itemRef,\n    onKeyDown: handleKeyDown\n  }, React.createElement(ItemRenderer, {\n    option: option,\n    checked: checked,\n    onClick: handleClick,\n    disabled: disabled\n  }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nconst SelectListUl = /*#__PURE__*/css({\n  margin: 0,\n  paddingLeft: 0,\n  li: {\n    listStyle: \"none\",\n    margin: 0\n  }\n});\nconst skipIndex = 2;\n\nconst SelectList = ({\n  options,\n  focusIndex,\n  onClick\n}) => {\n  const {\n    disabled,\n    value,\n    onChange,\n    ItemRenderer\n  } = useMultiSelect();\n\n  const handleSelectionChanged = (option, checked) => {\n    if (disabled) {\n      return;\n    }\n\n    onChange(checked ? [...value, option] : value.filter(o => o.value !== option.value));\n  };\n\n  return React.createElement(\"ul\", {\n    className: SelectListUl\n  }, options.map((o, i) => {\n    const tabIndex = i + skipIndex;\n    return React.createElement(\"li\", {\n      key: (o == null ? void 0 : o.key) || i\n    }, React.createElement(SelectItem, {\n      focused: focusIndex === tabIndex,\n      tabIndex: tabIndex,\n      option: o,\n      onSelectionChanged: c => handleSelectionChanged(o, c),\n      checked: value.find(s => s.value === o.value) ? true : false,\n      onClick: e => onClick(e, tabIndex),\n      itemRenderer: ItemRenderer,\n      disabled: o.disabled || disabled\n    }));\n  }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component.  It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n  FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n  FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nconst SelectSearchContainer = /*#__PURE__*/css({\n  width: \"100%\",\n  position: \"relative\",\n  borderBottom: \"1px solid var(--rmsc-border)\",\n  input: {\n    height: \"var(--rmsc-h)\",\n    padding: \"0 var(--rmsc-p)\",\n    width: \"100%\",\n    outline: 0,\n    border: 0\n  }\n});\nconst SearchClearButton = /*#__PURE__*/css({\n  cursor: \"pointer\",\n  position: \"absolute\",\n  top: 0,\n  right: 0,\n  bottom: 0,\n  background: \"none\",\n  border: 0,\n  padding: \"0 calc(var(--rmsc-p)/2)\",\n  \"[hidden]\": {\n    display: \"none\"\n  }\n});\nconst NoOptions = /*#__PURE__*/css({\n  padding: \"var(--rmsc-p)\",\n  textAlign: \"center\",\n  color: \"var(--rmsc-gray)\"\n});\n\nconst SelectPanel = () => {\n  const {\n    t,\n    onChange,\n    options,\n    value,\n    filterOptions: customFilterOptions,\n    selectAllLabel,\n    ItemRenderer,\n    disabled,\n    disableSearch,\n    focusSearchOnOpen,\n    hasSelectAll,\n    ClearIcon,\n    debounceDuration\n  } = useMultiSelect();\n  const searchInputRef = useRef();\n  const [searchText, setSearchText] = useState(\"\");\n  const [filteredOptions, setFilteredOptions] = useState(options);\n  const [searchTextForFilter, setSearchTextForFilter] = useState(\"\");\n  const [focusIndex, setFocusIndex] = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE);\n  const debouncedSearch = useCallback(debounce(query => setSearchTextForFilter(query), debounceDuration), []);\n  const selectAllOption = {\n    label: selectAllLabel || t(\"selectAll\"),\n    value: \"\"\n  };\n\n  const selectAllValues = checked => {\n    const filteredValues = filteredOptions.filter(o => !o.disabled).map(o => o.value);\n\n    if (checked) {\n      const selectedValues = value.map(o => o.value);\n      const finalSelectedValues = [...selectedValues, ...filteredValues];\n      return filteredOptions.filter(o => finalSelectedValues.includes(o.value));\n    }\n\n    return value.filter(o => !filteredValues.includes(o.value));\n  };\n\n  const selectAllChanged = checked => {\n    const newOptions = selectAllValues(checked);\n    onChange(newOptions);\n  };\n\n  const handleSearchChange = e => {\n    debouncedSearch(e.target.value);\n    setSearchText(e.target.value);\n    setFocusIndex(FocusType.SEARCH);\n  };\n\n  const handleClear = () => {\n    var _searchInputRef$curre;\n\n    setSearchTextForFilter(\"\");\n    setSearchText(\"\");\n    searchInputRef == null ? void 0 : (_searchInputRef$curre = searchInputRef.current) == null ? void 0 : _searchInputRef$curre.focus();\n  };\n\n  const handleItemClicked = index => setFocusIndex(index);\n\n  const handleKeyDown = e => {\n    switch (e.which) {\n      case 38:\n        // Up Arrow\n        if (e.altKey) {\n          return;\n        }\n\n        updateFocus(-1);\n        break;\n\n      case 40:\n        // Down Arrow\n        if (e.altKey) {\n          return;\n        }\n\n        updateFocus(1);\n        break;\n\n      default:\n        return;\n    }\n\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  const handleSearchFocus = () => {\n    setFocusIndex(FocusType.SEARCH);\n  };\n\n  const getFilteredOptions = async () => customFilterOptions ? await customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n\n  const updateFocus = offset => {\n    let newFocus = focusIndex + offset;\n    newFocus = Math.max(1, newFocus);\n    newFocus = Math.min(newFocus, options.length + 1);\n    setFocusIndex(newFocus);\n  };\n\n  const [isAllOptionSelected, hasSelectableOptions] = useMemo(() => {\n    const filteredOptionsList = filteredOptions.filter(o => !o.disabled);\n    return [filteredOptionsList.every(o => value.findIndex(v => v.value === o.value) !== -1), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n  }, [filteredOptions, value]);\n  useEffect(() => {\n    getFilteredOptions().then(setFilteredOptions);\n  }, [searchTextForFilter, options]);\n  return React.createElement(\"div\", {\n    className: \"select-panel\",\n    role: \"listbox\",\n    onKeyDown: handleKeyDown\n  }, !disableSearch && React.createElement(\"div\", {\n    className: SelectSearchContainer\n  }, React.createElement(\"input\", {\n    autoFocus: focusSearchOnOpen,\n    placeholder: t(\"search\"),\n    type: \"text\",\n    \"aria-describedby\": t(\"search\"),\n    onKeyDown: e => e.stopPropagation(),\n    onChange: handleSearchChange,\n    onFocus: handleSearchFocus,\n    value: searchText,\n    ref: searchInputRef\n  }), React.createElement(\"button\", {\n    type: \"button\",\n    className: cn(SearchClearButton, \"search-clear-button\"),\n    hidden: !searchText,\n    onClick: handleClear,\n    \"aria-label\": t(\"clearSearch\")\n  }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n    focused: focusIndex === 1,\n    tabIndex: 1,\n    checked: isAllOptionSelected,\n    option: selectAllOption,\n    onSelectionChanged: selectAllChanged,\n    onClick: () => handleItemClicked(1),\n    itemRenderer: ItemRenderer,\n    disabled: disabled\n  }), filteredOptions.length ? React.createElement(SelectList, {\n    options: filteredOptions,\n    focusIndex: focusIndex,\n    onClick: (_e, index) => handleItemClicked(index)\n  }) : React.createElement(\"div\", {\n    className: cn(NoOptions, \"no-options\")\n  }, t(\"noOptions\")));\n};\n\nconst Arrow = ({\n  expanded\n}) => React.createElement(\"svg\", {\n  width: \"24\",\n  height: \"24\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeWidth: \"2\",\n  className: \"dropdown-heading-dropdown-arrow gray\"\n}, React.createElement(\"path\", {\n  d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n}));\n\nconst DropdownHeader = () => {\n  const {\n    t,\n    value,\n    options,\n    valueRenderer\n  } = useMultiSelect();\n  const noneSelected = value.length === 0;\n  const allSelected = value.length === options.length;\n  const customText = valueRenderer && valueRenderer(value, options);\n\n  const getSelectedText = () => value.map(s => s.label).join(\", \");\n\n  return noneSelected ? React.createElement(\"span\", {\n    className: \"gray\"\n  }, customText || t(\"selectSomeItems\")) : React.createElement(\"span\", null, customText || (allSelected ? t(\"allItemsAreSelected\") : getSelectedText()));\n};\n\nconst Spinner = /*#__PURE__*/css({\n  animation: \"rotate 2s linear infinite\",\n  \"& .path\": {\n    stroke: \"var(--rmsc-border)\",\n    strokeWidth: \"4px\",\n    strokeLinecap: \"round\",\n    animation: \"dash 1.5s ease-in-out infinite\"\n  },\n  \"@keyframes rotate\": {\n    \"100%\": {\n      transform: \"rotate(360deg)\"\n    }\n  },\n  \"@keyframes dash\": {\n    \"0%\": {\n      strokeDasharray: \"1,150\",\n      strokeDashoffset: 0\n    },\n    \"50%\": {\n      strokeDasharray: \"90,150\",\n      strokeDashoffset: \"-35\"\n    },\n    \"100%\": {\n      strokeDasharray: \"90,150\",\n      strokeDashoffset: \"-124\"\n    }\n  }\n});\nconst Loading = ({\n  size = 24\n}) => React.createElement(\"span\", {\n  style: {\n    width: size,\n    marginRight: \"0.2rem\"\n  }\n}, React.createElement(\"svg\", {\n  width: size,\n  height: size,\n  className: Spinner,\n  viewBox: \"0 0 50 50\",\n  style: {\n    display: \"inline\",\n    verticalAlign: \"middle\"\n  }\n}, React.createElement(\"circle\", {\n  cx: \"25\",\n  cy: \"25\",\n  r: \"20\",\n  fill: \"none\",\n  className: \"path\"\n})));\n\n/**\r\n * A generic dropdown component.  It takes the children of the component\r\n * and hosts it in the component.  When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nconst PanelContainer = /*#__PURE__*/css({\n  position: \"absolute\",\n  zIndex: 1,\n  top: \"100%\",\n  width: \"100%\",\n  paddingTop: \"8px\",\n  \".panel-content\": {\n    maxHeight: \"300px\",\n    overflowY: \"auto\",\n    borderRadius: \"var(--rmsc-radius)\",\n    background: \"var(--rmsc-bg)\",\n    boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n  }\n});\nconst DropdownContainer = /*#__PURE__*/css({\n  position: \"relative\",\n  outline: 0,\n  backgroundColor: \"var(--rmsc-bg)\",\n  border: \"1px solid var(--rmsc-border)\",\n  borderRadius: \"var(--rmsc-radius)\",\n  \"&:focus-within\": {\n    boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n    borderColor: \"var(--rmsc-main)\"\n  }\n});\nconst DropdownHeading = /*#__PURE__*/css({\n  position: \"relative\",\n  padding: \"0 var(--rmsc-p)\",\n  display: \"flex\",\n  alignItems: \"center\",\n  width: \"100%\",\n  height: \"var(--rmsc-h)\",\n  cursor: \"default\",\n  outline: 0,\n  \".dropdown-heading-value\": {\n    overflow: \"hidden\",\n    textOverflow: \"ellipsis\",\n    whiteSpace: \"nowrap\",\n    flex: 1\n  }\n});\nconst ClearSelectedButton = /*#__PURE__*/css({\n  cursor: \"pointer\",\n  background: \"none\",\n  border: 0,\n  padding: 0,\n  display: \"flex\"\n});\n\nconst Dropdown = () => {\n  const {\n    t,\n    onMenuToggle,\n    ArrowRenderer,\n    shouldToggleOnHover,\n    isLoading,\n    disabled,\n    onChange,\n    labelledBy,\n    value,\n    isOpen,\n    defaultIsOpen,\n    ClearSelectedIcon\n  } = useMultiSelect();\n  const [isInternalExpand, setIsInternalExpand] = useState(true);\n  const [expanded, setExpanded] = useState(defaultIsOpen);\n  const [hasFocus, setHasFocus] = useState(false);\n  const FinalArrow = ArrowRenderer || Arrow;\n  const wrapper = useRef();\n  useDidUpdateEffect(() => {\n    onMenuToggle && onMenuToggle(expanded);\n  }, [expanded]);\n  useEffect(() => {\n    if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n      setIsInternalExpand(false);\n      setExpanded(isOpen);\n    }\n  }, [isOpen]);\n\n  const handleKeyDown = e => {\n    var _wrapper$current;\n\n    if (isInternalExpand) {\n      switch (e.which) {\n        case 27: // Escape\n\n        case 38:\n          // Up Arrow\n          setExpanded(false);\n          wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n          break;\n\n        case 32: // Space\n\n        case 13: // Enter Key\n\n        case 40:\n          // Down Arrow\n          setExpanded(true);\n          break;\n\n        default:\n          return;\n      }\n    }\n\n    e.preventDefault();\n  };\n\n  const handleHover = iexpanded => {\n    isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n  };\n\n  const handleFocus = () => !hasFocus && setHasFocus(true);\n\n  const handleBlur = e => {\n    if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n      setHasFocus(false);\n      setExpanded(false);\n    }\n  };\n\n  const handleMouseEnter = () => handleHover(true);\n\n  const handleMouseLeave = () => handleHover(false);\n\n  const toggleExpanded = () => {\n    isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n  };\n\n  const handleClearSelected = e => {\n    e.stopPropagation();\n    onChange([]);\n    isInternalExpand && setExpanded(false);\n  };\n\n  return React.createElement(\"div\", {\n    tabIndex: 0,\n    className: cn(DropdownContainer, \"dropdown-container\"),\n    \"aria-labelledby\": labelledBy,\n    \"aria-expanded\": expanded,\n    \"aria-readonly\": true,\n    \"aria-disabled\": disabled,\n    ref: wrapper,\n    onKeyDown: handleKeyDown,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    onMouseEnter: handleMouseEnter,\n    onMouseLeave: handleMouseLeave\n  }, React.createElement(\"div\", {\n    className: cn(DropdownHeading, \"dropdown-heading\"),\n    onClick: toggleExpanded\n  }, React.createElement(\"div\", {\n    className: \"dropdown-heading-value\"\n  }, React.createElement(DropdownHeader, null)), isLoading && React.createElement(Loading, null), value.length > 0 && React.createElement(\"button\", {\n    type: \"button\",\n    className: cn(ClearSelectedButton, \"clear-selected-button\"),\n    onClick: handleClearSelected,\n    disabled: disabled,\n    \"aria-label\": t(\"clearSelected\")\n  }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n    expanded: expanded\n  })), expanded && React.createElement(\"div\", {\n    className: cn(PanelContainer, \"dropdown-content\")\n  }, React.createElement(\"div\", {\n    className: \"panel-content\"\n  }, React.createElement(SelectPanel, null))));\n};\n\nconst MultiSelectBox = /*#__PURE__*/css({\n  \"--rmscMain\": \"#4285f4\",\n  \"--rmscHover\": \"#f1f3f5\",\n  \"--rmscSelected\": \"#e2e6ea\",\n  \"--rmscBorder\": \"#ccc\",\n  \"--rmscGray\": \"#aaa\",\n  \"--rmscBg\": \"#fff\",\n  \"--rmscP\": \"10px\",\n  \"--rmscRadius\": \"4px\",\n  \"--rmscH\": \"38px\",\n  \"*\": {\n    boxSizing: \"border-box\",\n    transition: \"all 0.2s ease\"\n  },\n  \".gray\": {\n    color: \"var(--rmsc-gray)\"\n  }\n});\n\nconst MultiSelect = props => React.createElement(MultiSelectProvider, {\n  props: props\n}, React.createElement(\"div\", {\n  className: cn(MultiSelectBox, props.className || \"multi-select\")\n}, React.createElement(Dropdown, null)));\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot, Fill } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n    return (props) => {\n\n        if ( ! isValidBlockType( props.name ) ) {\n            return <BlockEdit {...props} />;\n        }\n\n        // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n        // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n        // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n        // get updated when a block is updated.\n        let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n        return (\n            <Fragment>\n                <BlockEdit {...props} />\n                <InspectorControls>\n                    <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n                        <PanelRow className=\"content-visibility-rules-enabled\">\n                            <ContentVisibilityRulesEnabled props={props} />\n                        </PanelRow>\n\n                        <div className={showControls + \" content-visibility-controls-container\"}>\n                            <PanelRow className=\"content-visibility-displayed-control\">\n                                <ContentVisibilityDisplayedControl props={props} />\n                            </PanelRow>\n\n                            <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n                        </div>\n\n                    </PanelBody>\n                </InspectorControls>\n            </Fragment>\n        );\n\n    };\n}, 'contentVisibilityControls');\n\naddFilter( 'editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n    // If this is a valid block\n    if (isValidBlockType(settings.name)) {\n\n        // Run the rules through a filter so we're able to add rules externally.\n        let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n            contentVisibilityRulesEnabled: false,\n            userAuthenticated: ''\n        });\n\n        // Use Lodash's assign to gracefully handle if attributes are undefined\n        settings.attributes = assign(settings.attributes, {\n            contentVisibilityRules: {\n                type: 'object',\n                default: defaultRules\n            },\n        });\n    }\n\n    return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n    // If the current block is valid, add our prop.\n    if (isValidBlockType(blockType.name)) {\n        extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n    }\n\n    return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave );\n\n\n\n/* -------------- \n\nconst ContentVisibilityPluginBlockSettingsMenuItem = () => (\n    <PluginBlockSettingsMenuItem\n        allowedBlocks={ [ 'core/paragraph' ] }\n        icon=\"smiley\"\n        label=\"Menu item text\"\n        onClick={ () => {\n            console.log( [wp.data.select( 'core/block-editor' ).getSelectedBlock()] );\n        } }\n    />\n);\n \nregisterPlugin( 'block-settings-menu-group-test', {\n    render: ContentVisibilityPluginBlockSettingsMenuItem,\n} );\n\n-------------- */\n","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n    if ( ! rulesEnabled ) {\n        return (\n            <Disabled>\n                <ContentVisibilityShownHiddenControl props={ props } />\n            </Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilityShownHiddenControl props={ props } />\n    );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n    rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n    <ToggleControl\n        label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n        checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n        onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n            let newBVRules = { ...props.attributes.contentVisibilityRules };\n            newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n            props.setAttributes( {\n                contentVisibilityRules: newBVRules,\n            } );\n\n            // Fire an action so we can see what's happened in other controls. This can be useful,\n            // for example when setting rules for roles - pointless if a user isn't signed in.\n            doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n            // Sets the state\n            return (\n                { rulesEnabled: ! state.rulesEnabled }\n            );\n        } ) }\n    />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n    }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n    return ( props ) => {\n\n        if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n            return <BlockListBlock {...props} />;\n        }\n\n        let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n        return <BlockListBlock {...props} className={ iconClassName } />\n\n    };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled    = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n    let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n    if ( ! rulesEnabled || ! contentVisibility ) {\n        return (\n            <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n    );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n    return (\n        <Fill name=\"content-visibility-extra-controls\">\n            {\n                ( fillProps ) => {\n                    return (\n                        <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n                    )\n                }\n            }\n        </Fill>\n    );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n *     // Set the state and props.\n *     setState( { option } );\n *     props.setAttributes( {\n *         contentVisibilityRules: {\n *             ...props.attributes.contentVisibilityRules,\n *             specialPage: {\n *                 ...props.attributes.contentVisibilityRules.specialPage,\n *                 pages: option\n *             }\n *         },\n *     } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n    option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n    /**\n     * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n     * this instance of the component.\n     * \n     * @param {array} option current value of what is selected.\n     */\n    const onChange = ( option ) => {\n\n        // Set the state and props.\n        setState( { option } );\n\n        props.setAttributes( {\n            contentVisibilityRules: {\n                ...props.attributes.contentVisibilityRules,\n                specialPage: {\n                    ...props.attributes.contentVisibilityRules.specialPage,\n                    [type]: option\n                }\n            },\n        } );\n\n    };\n\n    return (\n        <div className=\"content-visibility-multi-select\">\n            <MultiSelect\n                options={ data }\n                value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n                onChange={ onChange }\n                labelledBy={ labelledBy }\n                ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n                    return (\n                        <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n                            <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n                            <span>{option.icon || \"\"} {option.label}</span>\n                        </div>\n                    );\n                } }\n                // isOpen={ true }\n            />\n        </div>\n    );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n        <PanelBody\n            title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n            initialOpen={ true }\n            className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n        >\n            <PanelRow>\n                <RadioControl\n                    label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n                    help=\"\"\n                    selected={ props.attributes.contentVisibility || option }\n                    options={ [\n                        { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n                        { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n                    ] }\n                    onChange={ ( option ) => {\n\n                        setState( { option } );\n\n                        props.setAttributes( {\n                            contentVisibility: option,\n                        } );\n\n                    } }\n                />\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'pages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Page', 'content-visibility' ),\n        plural: __( 'Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"networking\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getPosts();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'posts';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Post', 'content-visibility' ),\n        plural: __( 'Posts', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"admin-post\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default PostPageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getCategories from '../../helpers/get-categories';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst CategoryPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getCategories();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'categories';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Category', 'content-visibility' ),\n        plural: __( 'Categories', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"category\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific categories', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Categories', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the categories upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Category\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-categories-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-categories\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more categories from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that category. If you want this block to be ${props.attributes.contentVisibility} on ALL categories, please use the 'Special Pages' option and select 'Any Category'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default CategoryPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let rulesEnabled    = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n    let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n    if ( ! rulesEnabled || ! contentVisibility ) {\n        return (\n            <Disabled>\n                <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n            </Disabled>\n        );\n    }\n\n    return (\n        <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n    );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n\n    return (\n        <Fill name=\"content-visibility-extra-controls\">\n            {\n                ( fillProps ) => {\n                    return (\n                        <ContentVisibilitySpecialPageControls props={ fillProps } />\n                    )\n                }\n            }\n        </Fill>\n    );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || 'widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n    // Add our component to the Slot provided by BlockVisibilityControls\n    registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n     * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n     */\n    const specialPages = getSpecialPages();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'specialPages';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Special Page', 'content-visibility' ),\n        plural: __( 'Special Pages', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"text-page\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-special-pages-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n                        <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n                        { specialPages.map( specialPage => (\n                            <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n                        ) ) }\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\nimport CategoryPageInserter from './content-visibility-special-page-category-inserter';\nimport TagPageInserter from './content-visibility-special-page-tag-inserter';\n\nimport hasRules from '../../helpers/has-rules';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n    option: [],\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( hasRules( props, 'specialPage' ) ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'Special Page', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel block-visibility-special-page-controls\" + hasRulesClass }\n        >\n\n            <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n                <SpecialPagePageInserter props={ props } />\n                <PagePageInserter props={ props } />\n                <PostPageInserter props={ props } />\n                <CategoryPageInserter props={ props } />\n                <TagPageInserter props={ props } />\n            </PanelRow>\n\n            { props.attributes.contentVisibility && (\n                <p className=\"special-page-help-intro content-visibility-help-text\">\n                    { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n                </p>\n            ) }\n\n        </PanelBody>\n    );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n    defaultRules.specialPage = {\n        pages: [],\n        specialPages: [],\n        posts: [],\n        categories: [],\n        tags: []\n    };\n\n    return defaultRules;\n\n}","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getTags from '../../helpers/get-tags';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst TagPageInserter = withState( {\n    isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n    /**\n     * Our data, passed from PHP and manipulated to be useful here in JS.\n     */\n    const data = getTags();\n\n    /**\n     * This controls the key used where the data is stored.\n     */\n    const type = 'tags';\n\n    /**\n     * Helps with the content of the inserter button.\n     */\n    const niceName = {\n        singular: __( 'Tag', 'content-visibility' ),\n        plural: __( 'Tags', 'content-visibility' ),\n    }\n\n    /**\n     * Toggle the visible state. Detemines whether the popup is open or not.\n     */\n    const toggleVisible = () => {\n        setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n    };\n\n    return (\n        <div className=\"content-visibility-special-page-inserter\">\n            <Icon icon=\"tag\" iconSize=\"12\" />\n            <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n                { specialPagesInsertText( props, type, __( 'Select specific tags', 'content-visibility' ), niceName ) }\n                { isVisible && (\n                    <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n                        <h1>{ __( 'Select Tags', 'content-visibility' ) }</h1>\n\n                        <p className=\"content-visibility-help-text\">{ __( 'Select the tags upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n                        <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Tag\" props={ props } type={ type } />\n                        <p className=\"content-visibility-submit-tags-button-container\">\n                            <Button isPrimary className=\"content-visibility-submit-tags\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n                        </p>\n\n                        <HorizontalRule />\n\n                        <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n                        <p>{ __( `Selecting one or more tags from this list will mean that this block will only be ${props.attributes.contentVisibility} when the post being viewed is in that tag. If you want this block to be ${props.attributes.contentVisibility} on ALL tags, please use the 'Special Pages' option and select 'Any tag'`, 'content-visibility' ) }</p>\n\n                        <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n                    </Popover>\n                ) }\n            </Button>\n        </div>\n    );\n} );\n\nexport default TagPageInserter;","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    return (\n\n        <RadioControl\n            label=''\n            help=''\n            className=\"content-visibility-user-authenticated-control\"\n            selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n            options={ [\n                { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n                { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n            ] }\n            onChange={ ( option ) => {\n\n                // Set the state and props.\n                setState( { option } );\n\n                let newBVRules = { ...props.attributes.contentVisibilityRules };\n                newBVRules.userAuthenticated = option;\n\n                props.setAttributes( {\n                    contentVisibilityRules: newBVRules,\n                } );\n\n                // Fire an action so we can see what's happened in other controls. This can be useful,\n                // for example when setting rules for roles - pointless if a user isn't signed in.\n                doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n            } }\n        />\n\n    );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n    option: '',\n} )( ( { option, setState, props } ) => {\n\n    let hasRulesClass = ( props.attributes.contentVisibilityRules && props.attributes.contentVisibilityRules.userAuthenticated && props.attributes.contentVisibilityRules.userAuthenticated !== '' ) ? ' has-active-rules' : '';\n\n    return (\n        <PanelBody\n            title={ __( 'User Authentication', 'content-visibility' ) }\n            initialOpen={ false }\n            className={\"content-visibility-control-panel content-visibility-user-authenticated-controls\" + hasRulesClass}\n        >\n            <PanelRow>\n                <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n                { props.attributes.contentVisibility && (\n                    <p className=\"user-auth-help-intro content-visibility-help-text\">\n                        { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n                    </p>\n                ) }\n\n            </PanelRow>\n        </PanelBody>\n    );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the categories on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getCategories() {\n\n    const categories = [];\n\n    if ( ContentVisibility.categories.length === 0 ) {\n        return [ {\n            label: __( 'No categories found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const category in ContentVisibility.categories ) {\n    \n        categories.push( { \n            label: ContentVisibility.categories[category].label,\n            value: ContentVisibility.categories[category].id,\n            notes: ContentVisibility.categories[category].notes\n        } );\n    \n    }\n\n    return categories;\n\n}// end getCategories()\n\nexport default getCategories;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n    const pages = [];\n\n    if ( ContentVisibility.pages.length === 0 ) {\n        return [ {\n            label: __( 'No pages found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const page in ContentVisibility.pages ) {\n    \n        pages.push( { \n            label: ContentVisibility.pages[page].label,\n            value: ContentVisibility.pages[page].id,\n            notes: ContentVisibility.pages[page].notes\n        } );\n    \n    }\n\n    return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n    const posts = [];\n\n    if ( ContentVisibility.posts.length === 0 ) {\n        return [ {\n            label: __( 'No posts found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const post in ContentVisibility.posts ) {\n    \n        posts.push( { \n            label: ContentVisibility.posts[post].label,\n            value: ContentVisibility.posts[post].id,\n            notes: ContentVisibility.posts[post].notes\n        } );\n    \n    }\n\n    return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n    const specialPages = [];\n\n    for ( const specialPage in ContentVisibility.specialPages ) {\n    \n        specialPages.push( { \n            label: ContentVisibility.specialPages[specialPage].label,\n            value: ContentVisibility.specialPages[specialPage].keyValue,\n            notes: ContentVisibility.specialPages[specialPage].notes,\n            icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n        } );\n    \n    }\n\n    return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the tags on the site. We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getTags() {\n\n    const tags = [];\n\n    if ( ContentVisibility.tags.length === 0 ) {\n        return [ {\n            label: __( 'No tags found.', 'content-visibility' ),\n            value: 0,\n            notes: '',\n        } ]\n    }\n\n    for ( const tag in ContentVisibility.tags ) {\n    \n        tags.push( { \n            label: ContentVisibility.tags[tag].label,\n            value: ContentVisibility.tags[tag].id,\n            notes: ContentVisibility.tags[tag].notes\n        } );\n    \n    }\n\n    return tags;\n\n}// end getTags()\n\nexport default getTags;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n    // SVGs are weird, man.\n    if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n        return true;\n    } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n        return element.parentNode && hasParentWithClass( element.parentNode, classname );\n    } else {\n        return false;\n    }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","import { applyFilters } from '@wordpress/hooks';\n\n/**\n * Determine if the passed block props contain rules of the passed type.\n *\n * @param {object} props The currently selected block's props.\n * @param {string} type The type of the rules i.e. userAuthenticated or specialPage (or ones from add-ons).\n *\n * @return {bool} true if the passed props contain non-empty rules of the passed type. False otherwise.\n */\n function hasRules( props, type ) {\n\n    if ( ! props.attributes.contentVisibilityRules ) {\n        return false;\n    }\n\n    if ( ! props.attributes.contentVisibilityRules[type] ) {\n        return false;\n    }\n\n    // Default to false. Passed through a filter later.\n    let hasRules = false;\n\n    switch ( type ) {\n        \n        case 'userAuthenticated':\n\n            if ( props.attributes.contentVisibilityRules[type] !== '' ) {\n                hasRules = true;\n            }\n\n            break;\n        \n        case 'specialPage':\n\n            let allSpecialPageRules = props.attributes.contentVisibilityRules.specialPage;\n\n            // If *any* of the special pages contains rules, then this is true. Is an array of arrays.\n            let specialPageRulesValues = Object.values( allSpecialPageRules );\n\n            // if any of the arrays in specialPageRulesValues is non-empty then we have SOME rules.\n            hasRules = specialPageRulesValues.some( function( el ) {\n                return el.length > 0;\n            });\n\n            break;\n\n        default:\n            break;\n    }\n\n    return applyFilters( 'content-visibility-has-rules', hasRules, props, type );\n\n}// end hasRules()\n\nexport default hasRules;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n    const invalidBlockTypes = [\n        'something/unsupported',\n    ];\n\n    return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n    if ( false === event ) {\n        return;\n    }\n\n    // Determine if what has been clicked on is in the popover or not.\n    let eTarget = event.target;\n\n    if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n        event.stopPropagation();\n    }\n\n    return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n *                        object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n    \n    // if nothing is set, return a prompt to select special pages.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return defaultVal;\n    }\n\n    let shownOrHidden     = props.attributes.contentVisibility;\n    let specialPages      = props.attributes.contentVisibilityRules.specialPage[type];    \n    let specialPagesCount = specialPages.length;\n\n    let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n    let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount  + ' ' + niceType;\n\n    return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n    // If we don't have any items selected, just basic class.\n    if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n        return 'content-visibility-special-page-inserter-toggle';\n    }\n\n    // We have some items selected, so we have a couple classes.\n    return 'content-visibility-special-page-inserter-toggle has-items';\n    \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"editPost\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""}
  • content-visibility/trunk/content-visibility.php

    r2589501 r2833193  
    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.7
     14 * Version:     0.2.9
    1515 * Author:      Rich Tape
    1616 * Author URI:  https://richardtape.com/
  • content-visibility/trunk/includes/content-visibility.php

    r2568520 r2833193  
    1414
    1515add_action( 'plugins_loaded', __NAMESPACE__ . '\\plugins_loaded__bv_loader' );
     16
     17// An issue has been reported that any blocks registered with PHP and renders to the
     18// editor using the ServerSideRender component will fail due to validation error from rest API endpoint.
     19//
     20// This is due to the default attributes were originally added on the client side only. And the server does not know they are/should exist.
     21//
     22// The solution is to make sure that any blocks registered through PHP does also have the required attributes on the server side by override the block attributes
     23// when blocks are registered with PHP. The WordPress core blocks are excluded.
     24add_filter( 'register_block_type_args', __NAMESPACE__ . '\\add_block_default_attributes', 10, 2 );
     25
     26/**
     27 * Fires when new blocks are registered
     28 *
     29 * @param array $args an array of block settings
     30 * @param string $name the name of the block
     31 *
     32 * @return array $args an array of modified block settings
     33 *
     34 * @since 0.2.8
     35 */
     36function add_block_default_attributes( $args, $name ) {
     37
     38    $args['attributes']['contentVisibilityRules'] = array(
     39        'type' => 'object',
     40        'default' => array(
     41            'contentVisibilityRulesEnabled' => false,
     42            'userAuthenticated' => '',
     43        )
     44    );
     45
     46    return $args;
     47}//end add_block_default_attributes()
    1648
    1749/**
  • content-visibility/trunk/readme.txt

    r2589501 r2833193  
    44Tags: contentvisibility, block, content, visibility, show, hide
    55Requires at least: 5.0
    6 Tested up to: 5.8.0
    7 Stable tag: 0.2.7
     6Tested up to: 6.1.1
     7Stable tag: 0.2.9
    88Requires PHP: 7.0
    99License: GPLv2 or later
     
    6969== Changelog ==
    7070
     71= 0.2.9 =
     72* WordPress 6.1.1 compatibility.
     73* Fixed the styling weirdness causing some blocks to be misaligned when they have rules set.
     74* Tweaked styling of block inspector controls to fall more in line with newer WP rules.
     75* Fixed styles of multi-select field for widgets.
     76
     77= 0.2.8 =
     78* Fixed an issue where blocks registered with PHP throwing error when rendering it with ServerSideRender components in the editor.
     79
    7180= 0.2.7 =
    7281* Fixed an issue where in some cases the block controls for widgets still weren't appearing on the new 5.8 widgets screen.
Note: See TracChangeset for help on using the changeset viewer.